用不同颜色渲染选定的三角形?

Render selected triangles in different colour?

我想知道在网格上以不同颜色渲染选定三角形的最佳方法是什么?我正在使用 OpenGL,但具体的渲染系统可能并不重要。

一种方法是在现有网格的顶部渲染选定的三角形,但我觉得必须有更好的方法来使用着色器来完成此操作?

我认为最简单的方法是为三角形创建一个单独的颜色缓冲区。您随后可以使用 glBufferSubData()(请参阅 here)恢复取消选择的三角形的颜色,并更新该帧新选择的三角形的颜色。

这假设您知道要更改其颜色的三角形的顶点位于缓冲区中的哪个索引。

也可以让附加缓冲区只包含布尔值,并用统一变量中指定的值覆盖所选三角形的颜色。