4.顶点着色器

输入

    属性:用顶点数组提供的逐顶点数据

    统一变量和统一变量缓冲区:顶点着色器使用的不变数据

    采样器:顶点着色器使用的纹理的特殊统一变量类型

    着色器程序:顶点着色器程序源代码或者描述在操作顶点的可执行文件

内建变量

  • gl_VertexID:顶点的整数索引,highp精度
  • gl_IntanceID:实例化绘图调用中图元的实例编号,整数型,highp精度
  • gl_Position:输出顶点位置的裁剪坐标,浮点型,highp精度
  • gl_PointSize:用于写入以像素表示的点精灵尺寸,浮点型,highp精度
  • gl_FrontFacing:特殊变量,布尔变量

内建统一状态

    窗口坐标范围 :唯一一个内建统一状态。gl_DepthRange给出。变量为 gl_DepthRangeParameters

内建常量:2.0与3.0规范支持的最大数量最小值不一致

3.0

const mediump int gl_MaxVertexAttribs = 16; 
const mediump int gl_MaxVertexUniformVectors = 256;
const mediump int gl_MaxVertexOutputVectors = 16; 

const mediump int gl_MaxVertexTextureImageUnits = 16; //顶点着色器中可使用纹理单元的最大数量最小值
const mediump int gl_MaxCombinedTextureImageUnits = 32;//顶点和片段着色器可用的纹理单元最大数量的总和最小值

2.0

const mediump int gl_MaxVertexAttribs = 8; 
const mediump int gl_MaxVertexUniformVectors = 128;
const mediump int gl_MaxVaryingVectors = 8; 
const mediump int gl_MaxVertexTextureImageUnits = 0; 
const mediump int gl_MaxCombinedTextureImageUnits = 8;
const mediump int gl_MaxTextureImageUnits = 8; 
const mediump int gl_MaxFragmentUniformVectors = 16;
const mediump int gl_MaxDrawBuffers = 1; 

注:代码使用的字面值每次引用都会被计如同一边来给你存储,所以使用不止一次的字面值应该使用宏定义,这样只会被计数一次,不占用统一变量的数量。

矩阵变换

模型矩阵:物体坐标变换为世界坐标

视图矩阵:世界坐标变换为眼睛坐标

投影矩阵:眼睛坐标变换为裁剪坐标

 

模型-视图矩阵:无api,由应用程序实现
投影矩阵

顶点生成纹理坐标?

顶点蒙皮?游戏?

变换反馈? 粒子动画、物理学模拟?

顶点纹理,位移贴图--渲染地形或水面?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值