上次分享了一下在虚幻四中如何仅用蓝图和材质来制作特殊排布的数据和贴图(三维纹理为主)本周的文章是上一篇文章的延续,来讲讲三维纹理的数据注入,和渲染方式。
最近鄙人精神状态不怎么好,原来想放弃本周的文章的,还是坚持下来决定写下这篇文章。
回顾一下文章目录:
二.材質中的偽體素(三維紋理)
2.三维纹理的生成和渲染(本文)
三.基於NS方程的流體模擬 在虚幻四中
1.用蓝图模拟pass,进行伪compute stage的运算
2.用蓝图模拟ubo,向材质系统传输数据
3.NS方程的解析和实际模拟
4.烟体、流体的渲染
四.metaball 的原理与在材质中的实现
五.在虚幻四中 path tracing
1.相机内参、简单物体变换信息的处理
2.path tracing的解析,temporal的思路
3.在材质中进行path tracing
六、透明物体的渲染/造假技巧
以后根据实际情况做稍微的改动。
下面正文
为了使以后的流体模拟和metaball的部分能方便debug,体数据的渲染部分也包括在此文中了。之所以封面又是那个典型的场景,是因为本文的技术在整个场景里全部有使用,大规模地使用。鄙人不才,文章多有纰漏,望各位斧正。
文章结构:
一.体数据的生成与注入
二.体数据的渲染
三.特别的渲染(对于光栅化通用)
一.体数据的生成与注入
这是上一节遗留下来的内容。关于上一节讲到的原理鄙人在此不再赘述。关于材质部分,这里使用了虚幻四中自带的一个噪声函数:
当然可以选择多层噪声函数叠加,得到柏林噪声。
经过上一节提到的二维-三维坐标转换和这个三维噪声的函数,可以得到最终的输出结果:
关于蓝图部分,由于在材质中得到了想要的结果是无法应用在任何的体渲染材质中的,因此需要一个将材质输出结果转换为实际数据(Texture)的函数。这个函数有如地球上的光合作用,没有这个函数我的文章到上一节就应该结束了(一起去用c++吧(雾))
关于这个十分十分十分十分十分重要的函数,我将在下下讲详细解说(flag),这里仅仅使用一下,先解决本文的需求。
使用方法很简单:
这样,体数据生成注入的结果就可以输出到其中一张Texture中了,也就是说,现在才真正“抓住了”这个实时生成的体数据。
对于动态体数据,可以选择实时生成注入,也可以选择在RayCast的时候实时获取,但是出于给文章加戏(霧)&#