gpt4 book ai didi

c++ - 如何重用相同的顶点着色器来绘制不同的 gl_Position

转载 作者:行者123 更新时间:2023-11-28 02:05:47 26 4
gpt4 key购买 nike

我正在阅读这些 tutorials关于现代 OpenGL。在教程 5 中,有一个练习,用于在立方体之外绘制一个额外的三角形。我的理解是我可以重用相同的顶点着色器来绘制多个三角形(即立方体的三角形和一个额外的独立三角形)。我的问题是顶点着色器是

#version 330 core

// Input vertex data, different for all executions of this shader.
layout(location = 0) in vec3 vertexPosition_modelspace;
layout(location = 1) in vec3 vertexColor;
layout(location = 2) in vec3 vertexTriangle_modelspace;


// Output data ; will be interpolated for each fragment.
out vec3 fragmentColor;
// Values that stay constant for the whole mesh.
uniform mat4 MVP;

void main(){

// Output position of the vertex, in clip space : MVP * position
gl_Position = MVP * vec4(vertexPosition_modelspace,1); // Cube

//gl_Position = MVP * vec4(vertexTriangle_modelspace,1); // Triangle

// The color of each vertex will be interpolated
// to produce the color of each fragment
fragmentColor = vertexColor;
}

它只绘制一个 gl_Position 和最后一个。是否可以为一个顶点着色器输出多个 gl_Position?

最佳答案

顶点着色器不渲染三角形。或立方体。管他呢。他们只是在一个顶点上执行操作。该顶点是否是三角形、线带、立方体、擎天柱等的一部分。没关系。

顶点着色器接收一个顶点并写出一个顶点。对象由多个顶点组成。因此,当您发出渲染命令时,该命令中的每个顶点都会转到 VS。 VS 为它接收到的每个顶点写入一个顶点。

关于c++ - 如何重用相同的顶点着色器来绘制不同的 gl_Position,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37592267/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com