Softimage(3D顶点着色教程)
大家好,综合小编来为大家讲解下Softimage,3D顶点着色教程这个很多人还不知道,现在让我们一起来看看吧!
结果的质量很大程度上取决于多边形的密度。
顶点着色在游戏开发中非常有用,因为它允许您将基本的纹理信息和光照信息直接烘焙到场景对象中。这样,可以删除一些灯光,以减少计算量和整个场景的大小。
这种方法不依赖于图片或最终采集,在某些方面优于传统方法,但也有一定的局限性,即设置繁琐。
这里我们使用一个简单的场景。这个场景只有一个大盒子,盒子里有一辆没有轮子的汽车(汽车的多边形密度比较大,墙脚下的多边形密度比较小,可以注意两者的效果)。
盒子的内壁已经指定了顶点颜色(名为蓝蓝_墙),但是没有灯光和材质。我们将在盒子的顶部放一个大灯箱。
首先要准确的为场景设置传统的灯光。每个光源必须具有平方反比衰减,因此它们的阴影必须设置为黑色,这意味着场景对象的表面反射的光比它们接收的光少。如果使用Phong,
为了确保镜面反射不太亮,环境设置为黑色。
然后,我们使用渲染图(烘焙成CAV)将渲染树的信息烘焙成顶点颜色属性(CAVs)。
CAV表示原始灯光的第一次灯光反弹,用于后期渲染。此外,还将用于加速下一步的下一次轻反弹的计算。当这种光反弹不重复影响原始光(直接照明)时,
另一个CAV用于表示原始光线的第二次反弹,然后添加到第一次反弹(以及原始光线)中,以增加场景的真实性。
创建灯光和材质
1.因为场景没有灯光和材质,所以您应该首先创建这些元素。
删除资源管理器中的默认灯光。然后从渲染工具栏中选择“获取灯光灯箱”命令,创建一个灯箱,将其放置在箱体的内部顶部,并将其大小设置为顶部的1/4。
并在打开的属性编辑器中设置相关属性。如右图所示。
2.为物体指定一个phong材质。按7键打开Box物体的Render Tree,获取一个Map Lookups Vertex RGBA节点,并将它连接到Phong材质的diffuse节点。
双击Vertex RGBA节点打开它的属性编辑器,将Vertex Property设置为lanlan_wall(内壁的颜色属性),如右图所示。
3. 双击Phong节点,打开Phong属性编辑器,
将Diffuse Ambient的RGB设置为黑色;将Specular Color的RGB都设置为0.05;将Specular Decay设置为23。如右图所示。
创建lightmap
如果没有使用大的区域光(Area Light),第4和5步骤可以省略。但在这个场景中,我们使用了一个大的区域光,因为它能加速第一个光反弹(bounce)的计算。
这样就可以从区域光烘焙直接光照(dirct illumination)为一个新的CAV。
4.为Box物体创建一个RenderMap属性(选择Box物体,然后选取Render Get Property Render Map命令)。如左图所示。
然后单击Edit按钮重命名为lanlan_light;勾选Disable区域中的Refraction和Reflection项以及Sampling区域中的Average colors around vertices项。
锁定RenderMap属性编辑器,使它处于活动状态,以便于下次使用。如右图所示。
6.单击Regenerate Map…按钮重建Render Map(这样就将渲染树的信息烘焙成lanlan_light)。
在Material属性编辑器中预览,它看起来与步骤3的渲染图像一样。如左图所示。
创建第1次光反弹(bounce)
7.在Render Map属性编辑器,创建一个新的CAV,并且命名为lanlan_bounce1;取消勾选Disable区域中的Reflections项。如右图所示。
8.在Render Tree视图中,从Nodes菜单获取Reflection_diffuse和Ray_type节点,将前者连接到后者的eye上,
将Vertex RGBA节点连接到Ray type的reflection上,然后再将Ray type节点连接到Material的Surface上。
在Vertex_rgba属性编辑器中,将Vertex Property设置为lanlan_light。在Reflection_diffuse属性编辑器中,
将Reflection的RGB都设置为1,设置Gloss为1,设置Samples为12。如右图所示。
注意:
通常,光泽反射会分配到被反射的eye light的采样点上,渲染它们而不用于GI计算。当使用Render Map,被反射的eye light就会指向表面法线的同一个方向,这是GI采样点的来源地。
Render Map会将光泽反射物体作为反射物体,因此通过Ray_type节点将一个标准的表面shader附加到reflections,将光泽反射shader附加到eye上。
9.在RenderMap属性编辑器中,单击Regenerate Map…按钮重建lanlan_bounce1。如右图所示。
注意:
RM/reflection diffuse shader有个bug,就是当多边形面与坐标平面正对齐的时候,会显示为黑色。所以在这里我们要稍微旋转一下Box物体(0.1,0.1,0.1),
使多边形不再平行于正交平面(XY,YZ,XZ)。
创建第2次bounce
创建好第1次bounce后,接着为直接光创建第2次bounce。这是来自第1次bounce的光。直接光照(lanlan_light)不被列入计算范围,因为它已经被反弹过了。
在最终渲染中就不用重复渲染它了。
10.在RenderMap属性编辑器,创建一个新的CAV,并且命名为lanlan_bounce2。
11.在Render Tree视图中,从Nodes菜单中获取两个Vertex_RGBA节点(Map Lookup节点),分别命名为wallcolors和bounce。连接节点后,
在wallcolors节点的属性编辑器中,将Vertex Property设置为lanlan_wall;在bounce的属性编辑器中,
将Vertex Property设置为lanlan_bounce1;在Mix_2colors节点的属性编辑器中,将Weight color的RGB都设置为1,
并且设置Mode为Hide/Reveal(Multiply)。如右图所示。
12.重建lanlan_bounce2。在Material属性编辑器中预览,它看起来有点黑。如右图所示。
创建更多的光反弹(bounce)
要产生一个真实的效果,最好创建一个总数大约为6-8次的bounce。在这里,因为bounce能很快地变黑,所以4个就足够了。否则,材质容易会出错。
13.打开Render Map属性编辑器,创建一个新的CAV,并且命名为lanlan_bounce3。
14.将渲染树的wallcolors节点的Vertex Property设置为上次产生的bounce (也就是lanlan_bounce2),然后重建lanlan_bounce3,
它看起来会更黑。如左图所示。
15.重复13和14步骤,创建lanlan_bounce4,并重建它。如右图所示。
创建总光照的CAV
16.在Render Map属性编辑器中,创建一个新的CAV,并且命名为lanlan_total。
17.在Render Tree视图中,从Nodes菜单中获取4个Vertex RGBA节点(Map Lookup节点)和一个Mix_8colors节点。
将这4个节点(在此重命名为bounce1、bounce2…)分别连接到Mix_8colors节点的color1、color2…,然后在它们各自的属性编辑器中,
将Vertex Property分别设置为lanlan_bounce1、lanlan_bounce2,以此类推。如左图所示。
18.在Mix节点的属性编辑器中,将Base Color的RGB都设置为0。将Layer1、Layer2、Layer3和Layer4设置为In Use,
将这4层的Weight RGB都设置为1,将Mode设置为Add。如右图所示。
19.重建total,在Material属性面板中预览,效果如下图所示。如左图所示。
最终渲染
20.在Render Tree视图中,从Nodes菜单中获取两个Vertex RGBA节点(Map Lookup节点),分别将它们命名为lanlan_color和bouncetotal。
在lanlan_color的属性编辑器中,将Vertex Property设置为lanlan_wall;在bouncetotal的属性编辑器中,
将Vertex Property设置为total;在Mix_2colors属性编辑器中,
将Mode设置为Hide/Reveal(Mutiply),设置Weight的RGB都为1;在Mix_2colors1属性编辑器中,将Mode设置为add,
设置weight的RGB都为1;Phong节点的设置与步骤一相同。如右图所示。
本文[高级伪原创标题]到此分享完毕,希望对大家有所帮助。
免责声明:本文由用户上传,与本网站立场无关。财经信息仅供读者参考,并不构成投资建议。投资者据此操作,风险自担。 如有侵权请联系删除!
-
关于安徽蚌埠地区大众CC的落地价格以及各车型的售价信息,以下是一些参考数据。请注意,这些价格可能会因市场...浏览全文>>
-
关于2023款安庆途铠的落地价格,具体金额会因地区、配置以及促销活动等因素有所不同。以下是一些参考信息供您...浏览全文>>
-
根据您的描述,生活家PHEV 2025款的价格确实有较大幅度的优惠,达到了历史最低点,这无疑提升了其性价比。不...浏览全文>>
-
途昂X是上汽大众推出的一款中大型SUV,以其豪华的内饰、宽敞的空间和强劲的动力受到广泛关注。如果你计划在安...浏览全文>>
-
截至2023年,天津滨海宝来是一款由一汽大众生产的紧凑型轿车。以下是一些常见的配置和大致的价格范围(具体价...浏览全文>>
-
在安徽安庆购买大众揽巡时,需要综合考虑车辆的价格、配置、优惠政策以及市场行情等因素,以确保购车过程顺利...浏览全文>>
-
途观X是大众汽车推出的一款跨界SUV,以其时尚的外观和较高的配置受到不少消费者的青睐。如果您在亳州地区考虑...浏览全文>>
-
关于天津滨海地区的宝来车型价格信息,以下是一些参考数据。请注意,这些价格可能会因市场波动、促销活动以及...浏览全文>>
-
安徽安庆的揽巡价格分析可以帮助您更好地了解这款车型的市场行情和购车优惠。以下是对揽巡价格的全方面分析:1...浏览全文>>
-
关于购买途观X的具体价格,以及如何选择适合自己的车型,以下是一份详细的选车秘籍全攻略。这份指南将帮助你了...浏览全文>>
- 生活家PHEV最新价格2025款,价格再创新低,性价比爆棚
- 安徽亳州途昂X多少钱?购车攻略与优惠全在这
- 天津滨海宝来价格,各配置车型售价全知晓
- 安徽安庆揽巡价格全分析,买车不踩坑
- 东莞ID.4 CROZZ新款价格2025款多少钱?选车秘籍与性价比大公开
- 28.5亿美元卖身腾讯音乐,是喜马拉雅最好的归宿
- 蚌埠途铠 2023新款价格大起底,买车超详细
- 天津滨海ID.6 CROZZ多少钱?不同配置性价比分析
- 安徽阜阳探影多少钱?经销商报价及市场优惠情况
- 安徽滁州途昂X多少钱 2025款落地价大揭秘,买车前必看
- 天津滨海探岳X多少钱 2024款落地价,买车前的全方位指南
- 天津滨海ID.6 X新款价格2023款多少钱?购车攻略助你轻松选车
- 济南途安L最新价格2022款,优惠购车,最低售价16.68万起
- 安徽滁州长安猎手K50新车报价2025款,最低售价18.29万起,现车充足
- 广汽传祺传祺向往M8试驾的流程是什么
- 江淮悍途EV预约试驾,畅享豪华驾乘,体验卓越性能
- 安徽池州ID.7 VIZZION多少钱?买车技巧与性价比全奉上
- 济南长安启源E07 2024新款价格,最低售价19.99万起现在该入手吗?
- 安徽安庆ID.4 CROZZ 2025新款价格,优惠购车,最低售价13.99万起
- 天津滨海大众CC落地价全解买车必看