2

我正在使用 OpenGL 渲染 3D 对象。3D 世界中的每个对象都有一个边界框和一个关联的模型矩阵,用于将对象从零件坐标系 (PCS) 转换为世界 (WCS)。边界框也在 PCS 中。每个对象的质心在 WCS 中计算并与每个对象相关联。

给定 WCS 中的相机位置和目标位置:-> 我想从前到后渲染所有不透明对象(alpha == 1)。-> 我想在渲染不透明对象后从后到前渲染所有半透明对象。

由于这是我第一次尝试实现图形引擎,我不确定场景图将如何帮助我。我想我必须根据与相机的距离手动对对象进行排序,然后根据不透明/半透明对象进行渲染。我真的需要场景图吗?我应该如何实施引擎。我可以使用其他可用的引擎,但我不喜欢并且想自己实现。

4

1 回答 1

5

好吧,这里不一定需要场景图,但确实需要渲染列表。也就是说,您清除列表的每个渲染周期。每个要渲染的对象都将自己添加到渲染列表中。完成后,根据与相机的距离对列表进行排序。

在您的情况下,您可能需要使用两个渲染列表:一个用于半透明对象,一个用于不透明对象。

对列表进行排序后,您可以翻阅它们并按顺序渲染对象。

您可能对场景图的需求感到困惑,因为几乎任何场景图实现都会渲染列表。

于 2012-09-17T05:59:21.087 回答