是否有可能在OpenGL中创建基元的联合?

时间:2014-03-17 19:31:28

标签: opengl

我在谷歌上找不到任何东西,但是想知道我是否有办法在OpenGL中建立原语联盟?类似于POV-Ray的东西会很酷。

1 个答案:

答案 0 :(得分:2)

OpenCSG听起来可能会做你想做的事情:

  

OpenCSG是一个使用OpenGL进行基于图像的CSG渲染的库。 OpenCSG是用C ++编写的,支持使用Microsoft Windows或Linux操作系统的大多数现代图形硬件。

     

CSG是Constructive Solid Geometry的缩写,表示使用更简单的方法对复杂的3D形状进行建模的方法。即,可以通过将它们结合起来,通过交叉它们,或者通过减去另一个的一个形状来组合两个形状。最基本的形状,不是这种CSG操作的结果,被称为基元。基元必须是实心的,即它们必须具有明确的内部和外部。通过构造,CSG形状也是坚固的。

     

基于图像的CSG渲染(也称为z缓冲区CSG渲染)是表示用于渲染CSG形状而不明确计算CSG形状的几何边界的算法的术语。这种算法使用图形硬件的帧缓冲设置,例如深度和模板缓冲,来组成CSG形状。 OpenCSG实现了各种算法,即Goldfeather算法和SCS算法,它们都有几种变体。

     

PovRay等光线传感器很久以前就已经将CSG用于形状建模。