有什么方法可以在 OpenGL 中渲染多个实体剖切面吗?
对于纯色“切面”,我的意思是切掉部分网格并用例如纯色填充孔的平面。这给人的印象是网格是实心的,而不仅仅是一个壳。
使用单个切割平面渲染它的经典方法是拒绝平面不可见侧的样本,然后使用模板缓冲区计算剩余网格中正面和背面的数量。
但是,我不知道如何扩展该算法以处理多个切割平面。例如这种情况:
e
___
/ \
| A |
| |
----------- a
| C |
| |
----------- b
| B |
| |
\___/
d
切割平面“a”从网格中移除部分“A”。 切割平面“b”从网格中移除部分“B”。 网格的剩余可见部分“C”从位置“d”沿 e - d 方向(看“e”)呈现。
问题是“C”内的像素不会生成任何片段,因为切面删除了入口点和导出点。
我真的很想避免切割实际的网格,因为切割平面可以在每一帧改变位置。
我认为这是他们几年前在这里提出的同一个问题: How to render multiple solid cut planes?
最佳答案
是的,可以使用模板缓冲技术渲染任意 CSG 树。这里有一个很好的介绍:ftp://ftp.sgi.com/opengl/contrib/blythe/advanced99/notes/node22.html
关于algorithm - 任何渲染多个实体切割平面的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31240755/