我想渲染从波前 obj 文件导入的对象。该对象具有多个组和材质:
# group one
g one
v ...
vt ...
vn ...
# material A
usemtl ...
f ...
# material B
usemtl ...
f ..
# second group
g two
v ...
vt ...
vn ...
# material C
usemtl ...
f ...
# material D
usemtl ...
f ...
模型的不同部分需要单独渲染,因为它们具有不同的材质。
我将构建一个包含有关模型的信息的容器,并且我想知道组织要渲染的对象的“队列”的最佳/常用方法是什么。
我的想法,我不知道它是否好,如下(使用伪代码):对于每个组,g
将所有顶点信息存储在 object 中VertexInformation g1, g2
,并将每个usemtl
关于面(和使用的材料)的信息存储在FaceInformation f1, f2, f3, f4
.
然后渲染将如下所示:
load vertices g1
render f1 f2
load vertices g2
render f3 f4
g1
或者也许更好地一次加载所有顶点g2
?
是这样吗?或者它有一些巨大的缺点?