OpenGL着色器中的坐标系

1、gl_Position 坐标

gl_Position 坐标为 裁剪空间坐标

vec3 ndc = gl_Position.xyz / gl_Position.w; (OpenGL 内部执行)
在这里插入图片描述

2、gl_FragCoord 坐标

在这里插入图片描述

gl_FragCoord的x和y分量代表了片段的屏幕空间坐标(其中(0, 0)位于左下角,第一个像素中心点为 (0.5, 0.5))。
gl_FragCoord中也包含了一个z分量,它包含了片段真正的深度值。z值就是需要与深度缓冲内容所对比的那个值。
gl_FragCoord 由顶点着色器插值而来。
gl_FragCoord 坐标值为屏幕分辨率,例如 vec4(1920.0, 1080.0, 1.0, 1.0);

3、顶点运算过程

① 相机观察矩阵 * 世界坐标 = 观察空间坐标
② 相机投影矩阵 * 观察空间坐标 = 裁剪空间坐标 (裁剪空间.z 取值为 camera.near ~ camera.fat)
③ 裁剪空间坐标.xyz / 裁剪空间坐标.w = 标准化设备坐标.xyz (由WebGL 内部自动执行)
④ 标准化设备坐标 * (视口变换 & 深度映射) = 屏幕空间坐标 & 深度(0~1) (由WebGL内部自动执行)

3、textureFetch

第一个纹素传入坐标为(0,0),最后一个纹素传入坐标为(宽-1, 高-1)

4、眼空间坐标

X轴:屏幕中心向右
Y轴:屏幕中心向上
Z轴:屏幕向里

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值