4

我正在 OpenGL 中开发一个可视化工具来可视化 3d 有限元建模应用程序的输出。该应用程序使用四面体网格(但我只查看外部面,即三角形)。输出是一个标量变量,我想将其映射到颜色图(我已经知道如何做到这一点)。棘手的部分是每个单元格中变量的值由该单元格中坐标的多项式函数(我认为它是 3 次,但尚未最终确定)给出。

在 OpenGL 中,如果我使用“平滑”着色模型,那么如果我创建一个多边形并为每个顶点赋予不同的值,那么它将自动(线性地)在顶点的值之间进行插值,以获得颜色值点在内部。但这只是在每个单元格中给出了一个线性函数,我希望它是我指定的非线性函数。有没有办法做到这一点?

(当然,一种解决方案是通过将每个单元格绘制为小得多的OpenGL多边形的组合来“手动”插值,这些多边形足够小,以至于每个单元的颜色都不会发生太大变化。但我想知道OpenGL本身是否有解决办法。)

4

1 回答 1

7

如果您有 GLSL 经验(或有时间学习它),您可以使用像素着色器,或者将标量值渲染到纹理并使用它对三角形进行纹理映射。

如果您使用着色器,您应该能够从三角形的顶点读取颜色值,并按照您认为合适的方式自行执行插值。

编辑

我找到了一篇处理这个确切问题的论文:http: //mgarland.org/files/papers/perpixel.pdf

于 2010-09-13T06:15:25.837 回答