如何动态地为3D对象着色/纹理?

时间:2010-02-25 05:21:15

标签: c++ opengl rendering 3d

我有一个由三角形组成的3D模型。我想要做的是,在模型附近有一个点,我想将模型(三角形)着色为另一种颜色,比如蓝色。

现在,我有一个关于模型的边界球体,当发生碰撞时,我只想近似为发生碰撞的模型部分着色。

有人可以告诉我一些我可以使用的东西并实现这一目标吗?

由于

1 个答案:

答案 0 :(得分:1)

如果您只需要测试一个或少量的点,那么最快渲染的方法可能是在GLSL中编写一个着色器,根据与点的世界空间距离有条件地修改片段颜色(s )。

如果您从未进行过GLSL编程,那么可能更简单的替代方法是使用顶点数组并维护从三角形顶点到坐标索引顶点数组的坐标图;然后你可以采取任何顶点触发碰撞测试,并手动修改每个帧上的相关颜色数据。