利用dirtmap代替finalgather来完成gi的教程.docx
《利用dirtmap代替finalgather来完成gi的教程.docx》由会员分享,可在线阅读,更多相关《利用dirtmap代替finalgather来完成gi的教程.docx(14页珍藏版)》请在冰豆网上搜索。
利用dirtmap代替finalgather来完成gi的教程
前两天翻了一个老外利用dirtmap代替finalgather来完成gi的教程
这个教程的方法是一开始使用光子贴图来完成大体的gi分布
然后把最费时间的finalgather用dirtmap的效果来替代
然后在合成软件里合成
昨天晚上玩游戏时又想了一下
干脆不用gi只用dirtmap来替代gi快速制作效果图
今天早上被蚊子咬醒
干脆起来实践一下
先来张图看看
首先声明一下
这不是真正的gi而只是个看起来像是gi的效果
如果深究的话它是经不起推敲的
但如果作为赶图对付客户的话
效果也还可以
首先说一下思路
最重要的就是利用dirtmap生成类似于gi的效果
不过dirtmap生成的都是单色图(如果不设置贴图的话)
那么我们还需要一个diffusepass来将纹理合成进来
最后还需要的就是主要的灯光
不然整个图就缺少灯光的趋向了
当然反射也是个很大的问题
我现在还没想出好的解决方法
目前图中的反射是错误的
只是不那么明显罢了
希望大家也帮忙想想
下面来讲解步骤
首先你需要有max6、dirtmap这个shader(我翻译的那个帖子里有下载)
另外需要一个场景
你可以自己建或者用这个
这是从另外一个帖子里下的
感谢作者
贴图大概齐赋吧
为了反射模糊我的地板给的是mr的dgs
为了速度你也可以选择不用
现在你的场景应该都赋好贴图了
ok
我们首先来用dirtmap生成一个模拟的gi效果
新建一个mentalray材质
取名为dirt
给surface项一个dirtmap
照图中设置(如果你没用这个场景,那么farclip值需要自己斟酌一下)
打开渲染面板
进入pocessing栏
在如图的地方打勾
并且把dirt材质关联复制到后面的空白栏
现在把场景中的玻璃隐藏
设定好抗锯齿采样和过滤模式以及分辨率
渲染
得到如图效果
存为dirt.tif
以上是整个图的基础
大家可能已经注意到我一直没有提灯光
实际上dirtmap是不需要灯光的
基本的原理我那个帖子里有
它的效果取决于rayspread、farclip之类的参数
现在我们给场景打光
首先是阳光
位置如图
参数自己看着办吧
然后是天光
我用了3个mrareaspot来模拟
亮度是0.4
偏蓝色
范围0至15000
位置如图
现在我们需要一个diiffusepass
进入renderelement加入一个diffuse
如图设置
注意红框位置
渲染
得到如图效果
存为diffuse.tif
接着渲染一个反射
这是最有问题的一个地方
因为反射贴图没法带有dirtmap模拟的gi效果
好在一般的效果图反射看着大概过得去就好了
如果你想做的逼真点那么粗略地给场景布下光最好
这里就从简了
把玻璃解除隐藏
我的玻璃没有给反射
所以看着没什么区别
在环境里随便添加一个hdr作为环境贴图
在renderelement里加入一个reflection
渲染
效果如图
存为ref.tif
最后渲染一个只有直接光照的场景
你可以选择把材质的反射关掉
不过我发现就这个场景来说加入反射会好些
没什么说的
渲染得到如图效果
存为light.tif
现在我们有了4张图
接下来就要将它们合成
打开photoshop加载这4张图片
新建一个画布
把这4张图依次copy如新画布
次序如下(实际上次序并不重要)
把diffuse层的blend模式设为multiply
light和ref层设为screen
得到如图效果
接下来就调整明度、饱和度、对比度什么的
总之就是后期了
效果如图
总结一下哈
dirt.tif7分06秒
diffuse.tif22秒
light.tif8分22秒
ref.tif2分58秒
加上后期什么的整个制作时间也不超过半小时
而且非常好调整
算是比较快的了
如果想得到细腻的效果
可以为场景中的物体分别设置参数不同的dirtmap
另外还可以多打些辅助光来增强场景效果
dirtmap这个东西我个人觉得应用的潜力很大
实际上制作脏污效果也是相当不错的
只可惜不能与光子贴图一块使用
希望以后能改进
现在很希望finalshader的sp1快点出来
如果我估计没错那个dirtshader也是和dirtmap同样技术的话
那么fr的gi一样也可以用类似的方法模拟
这个方法现在的问题就在于折射反射
如何能把dirtmap得到的明暗效果也带入折射反射中是个难题
我还没想出办法
大家一起探讨吧