【发布时间】:2015-06-20 01:27:08
【问题描述】:
据我所知,OpenGL 不支持每个面的属性 [需要引用]。我决定使用 .obj 文件的材料文件,并且已经成功地将它们加载到我的项目中。但是,我认为材质是按对象组使用的,我意识到 .obj 格式实际上可以使用每个面的材质。因此,一个顶点组(或者说,网格)可以有多个特定面的材质。
我可以将镜面反射等小变量转换为每个顶点,但整个材质可能因面而异;照明、环境、镜面反射、纹理贴图(漫反射法线等)。如果材质是 per-mesh 会很容易,这样我就可以将它们加载为子网格并在它们上附加相应的材质。
我将如何处理一个网格的多种材料,其中材料在其中的面之间分布不均匀?
【问题讨论】:
-
如果所有面都是三角形属性+glVertexAttribDivisor。但是,除非您真的每种材料的面孔很少,否则按材料对粪便进行分组可能更有效。
-
那么,我是否应该将每个“材质组”都视为子网格?