任何渲染多个实体切割平面的方法?
Any way of rendering multiple solid cut planes?
有什么方法可以在 OpenGL 中渲染多个实体剖切面吗?
使用纯色 "cut plane" 我的意思是切掉部分网格并用纯色填充孔的平面。这给人的印象是网格是实心的,而不仅仅是 shell.
使用单个切割平面渲染这个的经典方法是拒绝平面不可见侧的样本,然后使用模板缓冲区计算剩余网格中正面和背面的数量。
但是,我无法弄清楚如何扩展算法以处理多个剖切面。例如这种情况:
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
有什么方法可以在 OpenGL 中渲染多个实体剖切面吗?
使用纯色 "cut plane" 我的意思是切掉部分网格并用纯色填充孔的平面。这给人的印象是网格是实心的,而不仅仅是 shell.
使用单个切割平面渲染这个的经典方法是拒绝平面不可见侧的样本,然后使用模板缓冲区计算剩余网格中正面和背面的数量。
但是,我无法弄清楚如何扩展算法以处理多个剖切面。例如这种情况:
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