【发布时间】:2026-01-27 10:05:01
【问题描述】:
当我想绘制一个对象时,一切都可以,例如一个立方体。我为立方体创建顶点,创建缓冲区,创建 MVP 矩阵并将其发送到着色器,效果很好。
但是,当我想绘制 2 个或更多对象时该怎么办,例如立方体和三角形?我相信三角形和立方体的视图和投影矩阵应该相同,我只需要不同的模型矩阵,对吗? 所以这意味着我将有两个 MVP?
//Example (using GLM):
glm::mat4 MVPC = Projection * View * ModelCube;
glm::mat4 MVPT = Projection * View * ModelTriangle;
那我现在怎么处理这两个?这是适用于立方体的顶点着色器
//vertex shader
#version 330 core
layout(location = 0) in vec3 verticesCube;
uniform mat4 MVPC;
void main(){
gl_Position = MVPC * vec4(verticesCube,1);
}
我应该如何在着色器中处理 MVPT(三角形),我尝试处理不同的东西,但我无法让它工作,我无法同时显示立方体和三角形。
【问题讨论】: