对象渲染顺序,场景图
object render order, scene graph?
我正在使用OpenGL渲染3D对象。三维世界中的每个对象都有一个边界框和一个关联的模型矩阵,用于将对象从零件坐标系(PCS)转换为世界(WCS)。边界框也在PCS中。每个对象的质心在WCS中计算,并与每个对象关联。
WCS中给定的摄影机位置和目标位置:->我想从前到后渲染所有不透明的对象(alpha==1)。->我想在渲染不透明对象后,从后到前渲染所有半透明对象。
由于这是我第一次尝试实现图形引擎,我不确定场景图在这里会对我有什么帮助。我想我必须根据离相机的距离手动对对象进行排序,然后根据不透明/半透明对象进行渲染。我真的需要一个场景图吗?我应该如何着手实现引擎。我可以使用其他可用的引擎,但我不喜欢,也希望自己实现。
这里不一定需要场景图,但确实需要渲染列表。也就是说,清除列表的每个渲染周期。每个要渲染的对象都会将自己添加到渲染列表中。完成后,根据与摄影机的距离对列表进行排序。
在您的情况下,可能需要使用两个渲染列表:一个用于半透明对象,另一个用于不透明对象。
对列表进行排序后,将对其进行翻录并按顺序渲染对象。
您可能混淆了对场景图的需求,因为几乎任何场景图实现都会渲染列表。
相关文章:
- CMake-按正确顺序将项目与C运行时对象文件链接
- 具有包含其他对象的类的对象创建顺序
- 按类成员的顺序对包含类对象的C++向量进行排序
- 如果在 C++ 构造函数中以错误的顺序初始化对象数据,会发生什么类型的错误
- QML 对象的销毁顺序
- 构造函数中没有参数的对象类成员按什么顺序初始化?
- 如何更改数组中2个对象的顺序
- 对象指针打印结果以相反的顺序进行
- 在C++中,当表达式涉及对象时,将表达式赋值到对象中时,是否有定义的操作顺序?
- 用QT形式顺序命名的UI对象填充数组
- 如何巩固 Bazel 构建对象的顺序
- 使用相同的文件对象按顺序写入和读取文件
- 共享库中静态对象的销毁顺序
- 当涉及单身对象时,克服静态初始化顺序惨败
- 对同一对象进行评估的链接操作和顺序
- 我可以按任意顺序将对象堆叠在qgraphicsscene中
- 保存对象并以任何特定顺序加载它们
- 返回对象时CTOR/DTOR的顺序
- 如何通过私有字符串变量按字母顺序对对象向量进行排序
- 对象渲染顺序,场景图