推荐日志

完善 可Alpha穿透的阴影渲染系统, 阴影渲染更加真实

[ 2007-09-11 19:24:45 | 作者: Admin ]
字体大小: | |
渲染效果图如下:
uploads/200709/11_195227_pic4.jpg


室外场景由于是美术或者关卡设计人员用编辑器制作而成, 不太方便借用第三方软件来布置场景, 所以场景的阴影渲染只有图形程序员自己写, 简单的射线和模型数据求交的光线追踪来渲染阴影的算法, 前段时间已经实现完好了, 对于大多数的物体的阴影渲染, 一切都会很完美.

但对于下面这种情况, 简单的与模型数据求交, 就显示出其拙劣之处了.

uploads/200709/11_193720_pic2.jpg


上图对于模型数据而言就两个面, 根本没有你想象中栅栏那么复杂的结构, 一切诡计都是其使用了带Alpha通道的贴图造成的, 但是如果我们这样用模型数据求交的算法渲染的阴影, 并不能如你所想渲染出栅栏纹路的影子.

接下来我改进了阴影渲染算法, 如果用户打开了Alpha通道追踪的选项, 我将使用动态拍照的方法, 将Alpha在被两个距离狭小的裁减平面逼迫用一种设定的颜色显示出来.

下图是用此方法将透明处提取出来了, 将提取出来的部分显示为黄色.

uploads/200709/11_194722_pic3.jpg


下图为没有柔化的最终渲染结果.

uploads/200709/11_194839_pic1.jpg


这个是柔化度为1, 影子最大渲染距离为40, 影子亮度为0.5, 的渲染结果.

uploads/200709/11_194950_pic5.jpg


这个是柔化度为2, 影子最大渲染距离为100, 影子亮度为0.2, 的渲染结果.

uploads/200709/11_195227_pic4.jpg


www.azure.com.cn
评论Feed 评论Feed: http://www.azure.com.cn/feed.asp?q=comment&id=367

浏览模式: 显示全部 | 评论: 3 | 引用: 0 | 排序 | 浏览: 4141
njw1985
[ 2007-09-13 08:09:00 ]
能不能把相应的代码贴出来啊?
笃志
[ 2007-11-19 13:16:15 ]
请问您是不是使用逐象素Shader的方法?那么效率问题怎么解决的呢?
Admin
[ 2007-11-19 20:30:15 ]
这个是静态影子,不是实时渲染的哦。

此日志不可发表评论.
ħ˽ ħ˽