转载请注明出处为KlayGE游戏引擎,本文的永久链接为http://www.klayge.org/?p=2796 上一篇我们提到了SSSSS,作为本系列的最后一篇,本文将介绍KlayGE 4.4的OpenGL和OpenGLES插件的改进. OpenGL 4.4 KlayGE在OpenGL方面一直是紧跟spec的步伐,这次也不例外.在八月份OpenGL 4.4发布的时候,glloader和KlayGE的OpenGL插件就很快加上了4.4的支持.并且这次把代码彻底过了一遍,很多原先通过扩展实现的功能…
转载请注明出处为KlayGE游戏引擎,本文的永久链接为http://www.klayge.org/?p=2761   本系列的上一篇讲了DR中的一些改进.本篇开始将描述这个版本加入的新功能,高质量地形. 原有的地形 以前的地形实现和水面的方法一样,都是从Crytek在2008年的老方法改进而来.虽然比projected grid的好得多,并且速度很快,但有一些很明显的缺点: 视点移动的时候会抖动.水面比较平,而且有波浪看不出抖动.如果用来做静态地形抖动就会非常明显.尤其是far plane变大之…
转载请注明出处为KlayGE游戏引擎,本文的永久链接为http://www.klayge.org/?p=2736 KlayGE从4.0开始引入deferred rendering层(DR),并且这几个版本都在持续地改进,以提高性能和降低使用难度.在即将发布的4.4里,deferred rendering更是往前跨了一大步,实现了一个初步的Tile-based Deferred Rendering(TBDR).和常见的TBDR不同之处在于,这里的方法只需要SM3.(其实SM2也没问题,只是如果光源…
转载请注明出处为KlayGE游戏引擎,本文的永久链接为http://www.klayge.org/?p=2774 本系列的上一篇提到了KlayGE 4.4将会出现的高质量地形渲染.本篇仍讲一个新功能,Screen Space Sub Surface Scattering(SSSSS)和Translucency.这两个效果都是由团队成员石裕隆实现的. Sub Surface Scattering(SSS)对渲染效果的提升有很明显的左右,尤其是皮肤和植被之类物体.早在GPU Gems 1里就有在te…
转载请注明出处为KlayGE游戏引擎,本文的永久链接为http://www.klayge.org/?p=2749   上一篇讲了TBDR的实现,本篇继续讲解deferred rendering层的一些重要改进. 切换到ESM 原先deferred系统用的是VSM,现在切换到开销更小的ESM.具体参见我之前的一篇文章.用ESM之后只需要一个通道,空间占用减少,性能也有所提升.下个版本会进一步改成支持打包到RGBA8的纹理,让不支持浮点纹理的硬件也可以使用ESM. Multi-resolution层…
MVVM模式解析和在WPF中的实现(五) View和ViewModel的通信 系列目录: MVVM模式解析和在WPF中的实现(一)MVVM模式简介 MVVM模式解析和在WPF中的实现(二)数据绑定 MVVM模式解析和在WPF中的实现(三)命令绑定 MVVM模式解析和在WPF中的实现(四)事件绑定 MVVM模式解析和在WPF中的实现(五)View和ViewModel的通信 MVVM模式解析和在WPF中的实现(六)用依赖注入的方式配置ViewModel并注册消息 0x00 还需要些什么呢 在前面几篇…
创建“漫画插画”的外观和感觉想必一定很有趣吧,但是,获得想要的精确外观有时也会令人相当沮丧,因此了解一些基本原则,创建类似于ZBrush漫画MatCaps的作品很有必要. 若有疑问亦或者想查看具体的视频教程大家可前往:http://www.zbrushcn.com/shili/zbrush-xr-mhch.html 使用2D外观渲染3D对象已经不是什么新鲜事了,今天我们一起来学习如何在ZBrush中渲染漫画角色—Hellboy(地狱男爵)的原创图片. 以下是Hellboy(地狱男爵)建模过程的快…
UEditor动态创建和textarea中渲染 http://ueditor.baidu.com/website/examples/textareaDemo.html <!DOCTYPE> <html> <head> <title>UEditor js动态创建和textarea中渲染</title> <meta http-equiv="Content-Type" content="text/html;chars…
在模板中渲染错误消息 如果form.valicate_on_submit()返回False,说明验证没有通过,对于没有验证通过的字段,WTForms会把错误信息添加到表单类的errors属性中,这是一个匹配作为表单字段的类属性到对应的错误消息列表的字典.我们一般会直接通过字段名来获取对应字段的错误消息列表,即”form.字段名.errors”.比如,form.name.errors返回name字段的错误消息列表. 像渲染flash()消息一样,我们在模板里用for循环遍历错误消息列表,例如:  …
在模板中渲染表单 为了能够在模板中渲染表单,我们需要把表单类实例传入模板.首先在视图函数里实例化表单类LoginForm,然后再render_template()函数中使用关键脑子参数form将表单实例传入模板,例如:form/app.py #传入表单类实例 from forms import LoginForm @app.route('/basic') def basic(): form=LoginForm() return render_template('login.html',form=…