我有一个 3D 模型,由三角形组成。我想要做的是,给定模型附近的一个点,我想将模型(三角形)着色为另一种颜色,比如蓝色。
现在,我有一个关于模型的边界球体,当碰撞发生时,我只想对模型中发生碰撞的部分进行近似着色。
有人可以向我推荐一些我可以使用并实现这一目标的东西吗?
谢谢
最佳答案
如果你只有一个或少量的点来测试,最快的渲染方法可能是在 GLSL 中编写一个着色器,它根据到你的点的世界空间距离有条件地修改片段颜色).
如果您从未进行过 GLSL 编程,则可能更简单的替代方法是使用顶点数组并维护从三角形顶点到索引顶点数组的坐标的映射;然后您可以获取触发碰撞测试的任何顶点,并在每一帧上手动修改它们的相关颜色数据。
关于c++ - 如何动态地为 3d 对象着色/纹理化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2331819/