有没有关于如何使用 Delphi GLScene 组件或 FireMonkey 在 3D 模型上绘制纯色的演示或文章?
最佳答案
在 GLScene Demos\interface\hfpick 中,您有一个在高度场上绘画的示例。
在更复杂的网格上绘画将需要查找光标下点的纹理坐标,这取决于纹理的映射方式可能或多或少复杂。
对利用 GPU 的小纹理的快速破解可以是使用纹理坐标作为 RGB 颜色,您可以在片段着色器中执行此操作,将 u,v 返回到 R,G fi,并将纹理索引返回到乙 channel 。在离屏缓冲区中渲染它并查找光标下点的颜色,这将为您提供纹理和坐标,以及对 256x256 纹理的微不足道的支持(如果您明智地使用纹理索引,甚至可以达到 4096x4096)。
要以数学上正确的方式(使用 CPU)执行此操作,您必须修改网格 RayCast 方法,这样不仅可以找到被击中的三角形,还可以返回被击中点的纹理坐标。