在曲面细分着色器

时间:2016-01-07 01:44:27

标签: shader normals procedural-generation tessellation

我花了一些时间研究这个,但找不到一个好的解决方案。

我的问题是找到一种在曲面细分着色器中创建法线的有效方法。我在程序上为洞穴系统创建网格,然后实时对其进行细分以提高分辨率。我的大部分系统都在工作,但我很难找到合理的方法来创建法线。

以下是我的论文的链接,描述了感兴趣的人的完整系统:

https://cs.anu.edu.au/courses/CSPROJECTS/15S2/Reports/Tony_Oakden_Report.pdf

我使用triplanar着色器来合成纹理坐标,我使用高度图来在tesselation评估着色器中变形网格。变形工作正常,但我发现可靠地创建法线的唯一方法是在几何着色器中,它可以工作,但GS实际上太慢了。

我有一个想法,我可以使用TextureGather从高度图中拾取四个纹素,并使用它们来找到该点的近似法线(得到x和y渐变,然后得到边缘向量,然后是叉积和规范化等以获得正常)但我不能得到它给出好的结果。我在网上找到了这个问题的一些链接,但没有具体的答案。

似乎在着色器中为程序生成的网格合成法线是一个棘手的问题,我想知道是否存在我可以看到的这些类型问题的已知解决方案。任何建议,链接,技术,博客,人们都可以指出我也将非常感激。

0 个答案:

没有答案