让我感到困扰的是,我无法弄清楚网格物体,材质,纹理与模型的组成究竟有何关系。
我只想快速解释它们之间的关系。
答案 0 :(得分:4)
简而言之:
网格 - 它只是你要绘制的一些物体,就像汽车一样。它可以由许多子对象构建,但为了简单和易用,它实现为一个包装所需的对象。例如:当你想把汽车放在你的水平上时,你通常不希望单独放置每个轮子/轮胎 - 所以你只有一个网格:'汽车'。
子网格 - 渲染某些多边形列表时,需要在开始渲染之前设置一些执行操作的方法(这称为材质)。这意味着在单次渲染操作期间不能使用多种材质。因为汽车是由许多不同的材料制成的,如玻璃,金属等,你需要把它分成子网。您将拥有窗户,轮胎,车轮和车身的子网格 - 每个都将使用不同的材料,如玻璃,橡胶,铝等,每个都将采用不同的渲染操作,选择不同的材料。因此,材质定义不存储在网格对象中,而是存储在每个子网格中。
材料 - 它是“在屏幕上添加新三角形时要做什么”的定义,它可能因引擎和底层API版本而异,但它只存储您可能为您设置的所有参数材质,如不透明度,光泽度,颜色(纹理),像素/顶点着色器等
纹理 - 素材可以将图片用作输入的2D / 3D数据。当您阅读材料定义时,它会定义图像文件名,读取图像并将其放入GPU并分配一些ID。之后,当你选择材料时,GPU会根据他们的ID使用正确的纹理,我认为这就是你现在需要知道的全部内容:)
我无法帮助您使用子材料,因为我认为它非常依赖引擎,如果您告诉我们您使用的是什么,我们可能会告诉您更多信息。