欢迎光临散文网 会员登陆 & 注册

unity urp管线 手把手教你实现可交互沙漠【刻俄柏表示已经学会了】(3)

2023-07-31 22:17 作者:今天摸鱼就好了  | 我要投稿

    本篇文章主要会去实现曲面细分与顶点便宜部分。

在litshader中声明HullShader 和DomainShader。

并给一个参数用来表示细分数

然后在litinput中声明一下

然后回到LitForawardPasss实现我们的主要功能,首先我们要确定如何细分三角面,GPU使用了四个细分因子,三角面的每个边缘都是一个因数。

然后我们需要定义hull输出的结构体,这部分参考litshader的顶点结构体即可

接下来是Hull函数

对于顶点便宜部分我们需要在DomainShader中进行。

我们回到LitInput.hlsl文件。我们需要一张RenderTexture去记录我们角色的脚印,先声明一张贴图(这里不要在Properties去声明属性,否则我们拿不到脚本传入的RT)

角色在移动时我们会用粒子系统发射一个粒子

我们会用红色代表凹陷,绿色代表突起

然后我们还需要另外一个相机去渲染足迹的RT,我们再声明两个变量,一个记录当前渲染足迹的相机的位置,一个为相机的尺寸



那么现在我们就回到LitForwardPass.hlsl中去

先声明Domain的结构体

然后是Domain函数

然后我们往上看

找到

这个函数

它的输入结构体为我们Domain输出的结构体

然后完善一下我们的片元着色器

这里用到了高度转法线的方法,为了简单我们直接抄ShaderGraph的就好


unity urp管线 手把手教你实现可交互沙漠【刻俄柏表示已经学会了】(3)的评论 (共 条)

分享到微博请遵守国家法律