GLSL有几个以gl_为前缀的变量(内建变量),它们在着色器中能直接获取和使用,并且都有着很重要的意义,gl_Position 和 gl_FragCoord 就是两个典型的内建变量
一、顶点着色器变量
gl_Position:
顶点着色器裁切空间输出的位置向量。想让屏幕上渲染出东西,那么就必须使用,否则将什么都看不到,在第一次接触顶点着色器之后,就一直在用它了
gl_PointSize:
渲染出的点的大小,需要满足以下两个条件,gl_PointSize才会是有效的:
- glEnable(GL_PROGRAM_POINT_SIZE):允许在着色器中设置点的大小
- 绘制时渲染的基本图形(primitive)是 GL_POINTS
它是一个float变量,可以以像素的方式设置点的高度和宽度,在着色器中描述每个顶点做为点被绘制出来的大小:
#version 330 core
layout (location = 0) in vec3 position;
layout (location = 1) in vec3 normal;
layout (location = 2) in vec2 texture;
out vec2 texIn;
out vec3 normalIn;
out vec3 fragPosIn;
uniform mat4 model; //模型矩阵
uniform mat4 view; //观察矩阵
uniform mat4 projection; //投影矩阵
void main

本文深入探讨GLSL中的关键内建变量,如gl_Position、gl_FragCoord等,解析其在顶点着色器和片段着色器中的作用及应用技巧。同时,介绍了接口块在着色器间数据传递的高效方式。
最低0.47元/天 解锁文章
720

被折叠的 条评论
为什么被折叠?



