我的网格类有一个VAO索引,以及一个顶点,颜色,tex坐标,法线和索引(如果使用)缓冲区的索引。我正在将Wavefront .obj文件加载到该网格类中并将所有组视为一个VBO,然后我单独加载单个材质并在绘制网格之前将其绑定。这很好,但我现在正在寻找支持多种材料的.obj文件。
最简单的方法是为.obj中的每个组创建一个新的网格实例,它使用不同的材质并将它们组合成一个meshGroup对象,更好的(?)方式是支持多个VBO我的网格的VAO,在绘制每个缓冲区时分配不同的材质。第二种方式比另一种方式更快(因为每个网格只有VAO绑定而不是每组),或者我可以使用第一种方法进行检测吗?
编辑:我通过使用方法1并使用不同的材质为网格的每个部分创建单独的网格实例(以及关联的VAO)来实现它。我确信这不是最好的方式,所以如果有人有任何见解,我将非常感激!