我们有一个球体,我们想要以 3D 方式显示它,并给定一个依赖于球坐标的函数。
使用 (theta, phi) 中的规则网格对球体进行三角测量,但这会在两极附近产生许多小三角形。为了减少极点处的三角形数量,我们更改了网格生成,以在表面上生成尺寸更均匀的三角形。
第一种三角测量方法的优点是我们可以轻松创建纹理并将其覆盖在表面上。似乎在 WPF 中不可能像在 OpenGL 或 Direct3D 中那样为顶点分配颜色。
使用第二种三角测量方法,如何生成纹理和设置纹理坐标并不明显,因为顶点不再与网格对齐。
也许可以创建一个包含每个顶点颜色的线性纹理,但这将如何影响着色呢?通过应用每个顶点着色,它仍然会在三角形表面上平滑地渲染吗?
最佳答案
我已经将算法转换为使用线性纹理,这实际上只是对颜色图的查找。这似乎很有效,并且是比前一个更好的解决方案。我现在只创建 256 x 1 的固定纹理,而不是创建大小为 ThetaSamples * PhiSamples 的纹理。
关于c# - 如何在 WPF 3D 中使用顶点处的值对网格着色?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2765070/