Ram*_*Ram 2 c++ opengl scenegraph
我正在使用OpenGL渲染3D对象.3D世界中的每个对象都有一个边界框和一个相关的模型矩阵,用于将对象从零件坐标系(PCS)转换为世界(WCS).边界框也在PCS中.每个对象的质心在WCS中计算并与每个对象相关联.
给定WCS中的摄像机位置和目标位置: - >我想从前到后渲染所有不透明对象(alpha == 1). - >我想在渲染不透明对象后从后向前渲染所有半透明对象.
由于这是我第一次尝试实现图形引擎,我不确定场景图将如何帮助我.我想我必须根据与相机的距离手动对对象进行排序,然后根据不透明/半透明对象渲染相同的对象.我真的需要场景图吗?我应该如何实施引擎.我可以使用其他可用的引擎,但我不愿意并希望自己实现.
嗯,你不一定需要这里的场景图,但你需要一个渲染列表.也就是说,每个渲染周期都会清除列表.每个要渲染的对象都会将自身添加到渲染列表中.完成后,您可以根据与相机的距离对列表进行排序.
在您的情况下,您可能想要使用两个渲染列表:一个用于半透明对象,另一个用于不透明对象.
对列表进行排序后,您可以浏览它们并按顺序渲染对象.
您可能已经混淆了对场景图的需求,因为几乎任何场景图实现也将呈现列表.