如何使用WPF 3D顶点的值为网格着色?

时间:2010-05-04 12:04:47

标签: c# wpf 3d colors mesh

我们有一个球体,我们希望以3D和颜色显示给定一个取决于球面坐标的函数。

球体在(theta,phi)中使用规则网格进行三角测量,但这在极点附近产生了许多小三角形。为了减少极点上的三角形数量,我们改变了网格生成,以在表面上生成更均匀大小的三角形。

第一种三角测量方法的优点是我们可以轻松地创建纹理并将其覆盖在表面上。似乎在WPF中,无法按照OpenGL或Direct3D中的方式为顶点指定颜色。

使用第二种三角测量方法,如何生成纹理和设置纹理坐标并不明显,因为顶点不再与网格对齐。

也许有可能为每个顶点创建一个包含颜色的线性纹理,但那会对着色产生什么影响呢?它是否仍然可以在三角形表面上平滑渲染,就像通过应用每个顶点着色一样?

1 个答案:

答案 0 :(得分:1)

我已经将算法转换为使用线性纹理,这实际上只是对色彩图的查找。这似乎工作得很好,是一个比前一个更好的解决方案。我现在只创建256 x 1的固定纹理,而不是创建大小为ThetaSamples * PhiSamples的纹理。