[英]How to get a value from vec3 in vertex shader? OpenGL 3.3
我有以下頂點着色器:
#version 330
layout (location = 0) in vec3 Position;
uniform mat4 gWVP;
out vec4 Color;
void main()
{
gl_Position = gWVP * vec4(Position, 1.0);
};
例如,如何獲得vec3的第三個值? 我的第一個想法是:“也許我可以通過將這個向量(位置)乘以某個東西得到它?” 但我不確定是否存在類似“垂直矢量類型”的東西。 那么,最好的方法是什么? 我需要這個值來設置像素的顏色。
至少有4個選項:
x
, y
, z
, w
訪問矢量組件。 這主要用於表示點/向量的向量。 在您的示例中,這將是Position.z
。 r
, g
, b
, a
。 這主要用於表示顏色的矢量。 在您的示例中,您可以使用Position.b
,即使這不是非常易讀。 另一方面, Color.b
對於另一個變量來說是個不錯的選擇。 s
, t
, p
, q
。 這主要用於表示紋理坐標的矢量。 在我們的示例中, Position.p
還會為您提供第3個組件。 Position[2]
也給出了第3個元素。 每個向量都有對元素的重載訪問。 在這種情況下,使用Position.z
應該工作。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.