着色器_ 顶点着色器详解

本文详细介绍了OpenGL的顶点着色器,包括内置属性输入变量如顶点坐标、颜色、法线等,用户定义的属性变量的设置方法,以及如何向着色器传递自定义值。此外,还探讨了特殊输出变量gl_Position和gl_PointSize的使用,以及顶点着色器中控制点大小和实现裁剪的方法。最后提到了在顶点着色器中处理正面和背面颜色以及使用纹理贴图的技巧。
摘要由CSDN通过智能技术生成

本节学习目标

  • 内置的属性输入变量
  • 用户定义的属性变量
  • 如何把顶点数据通过应用程序发送到着色器程序
  • 特殊输出变量

在讲解内容之前,先看一张图

 

GLSL 顶点着色器的输入和输入变量

 

先讲讲这个图!箭头的方向表示输入和输出

  • uniform 变量,程序中保持常量
  • attribute 变量,除了标准的顶点状态,他们还可以根据顶点进行更新
  • varying 变量,用于向片段管线传递数据,这些数据包括颜色,纹理坐标和其它基于片段的数据

内置的属性输入变量

这些变量反应了当前的OpenGL 状态

|变量|类型|指定函数|描述|
|---|
|gl_Vertex|vec4|glVertex|顶点的全局空间坐标|
|gl_Color|vec4|glColor|主颜色值|
|gl_SecondaryColor|vec4|glSecondaryColor|辅助颜色|
|gl_Normal|vec4|glNormal|光照法线|
|gl_MultiTexCoordn|vec4|glMultiTexCoord(n,...)|纹理单元n的纹理坐标,n取值为0·7|
|gl_FogCoord|float|glFogCoord|雾坐标|
|gl_VertexID|int|-|自上次渲染开始,当前的索引|
|gl_InstanceID|int|glDrawArraysInstanced,<p>glDrawElementsInstanc

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值