着色器斜切多维数据集的边缘?

Fat*_*tie 11 shader unity-game-engine

这个问题与使用着色器有关(可能在Unity3D环境中,但是Metal或OpenGL很好),

在网格最小的立方体上实现圆形边缘.

在此输入图像描述

  • 我只想使用12个三角形的极简主义网格立方体,

  • 然后通过着色器,

  • 实现每个块的边缘(/角)略微倾斜.

事实上,这可以用着色器完成吗?

谢谢,着色大师!

Iur*_*nyi 4

我最近完成了这样的着色器的创建。它可以工作的唯一方法是提供 4 个法向量,而不是为每个顶点提供一个法向量(平滑向量、锐向量以及给定顶点的三角形的每条边各一个)。您还需要一个 float3 来检测边缘。

为了在网格中添加此类数据,我制作了一个自定义网格编辑器,它附带了 Unity Asset Store 中的 Playtime Painter Asset。将在下次更新时发布着色器。还将发布到公共 GitHub。

尖锐的边缘 光滑边缘

您可以看到一些暗线,这是因为它开始插值到背对光源的法线向量,但由于没有额外的三角形,因此结果在面向相机的三角形上可见。

更新(2/12/2018) 意识到,通过剪裁最终法线远离相机的像素,可以平滑轮廓形状。它没有针对所有可能的场景进行测试,但对于简单的形状非常有效: 剪裁边缘

根据请求添加了一个比较立方体: 具有凹凸贴图的立方体

目前,Playtime Painter有该着色器的简化版本,它在 2 个法线向量之间进行插值,并在某些边缘上给出良好的结果。

写了一篇文章