openGL之API学习(一三七)shadertoy中纹理坐标范围分析

https://www.shadertoy.com/view/MssyRN文章中对纹理坐标计算过程的说明,最后uv的范围为-1到1,应该是不准确的,应该是x范围为-x/y到x/y,y的范围为-1到1。这样造成uv范围不在-1到1范围,超出范围的是否就不绘制了??

  float time = iTime;
  vec2 pos, size;
  vec2 npos = fragCoord.xy / iResolution.xy;   // 0.0 .. 1.0
  
  // get uv position with origin at window center
  float aspect = iResolution.x / iResolution.y;   // aspect ratio x/y
  vec2 ratio = vec2(aspect, 1.0);                 // aspect ratio (x/y,1)     
  uv = (2.0 * npos - 1.0) * ratio;             // -1.0 .. 1.0

正常opengl使用的纹理坐标范围是0到1,这里设置的uv不是opengl实际使用的uv,opengl还会对这里的uv进行处理,最终会将-x/y到x/y变换到0到1。

如果这里将uv设置为-1到1或其他范围,通过opengl变换后就不在0到1了,会造成显示异常。

 

 

 

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值