WebGL中的gl_Position gl_FragCoord gl_PointCoord 区别

316 阅读1分钟

gl_Positiongl_FragCoordgl_PointCoord分别描述渲染管线中的顶点片元点域图元(点精灵/PointSprite)光栅化后的片元在各自坐标系中的大小;可以借助下图区分记忆。 20210506135309209.png

区别

gl_Position

  1. gl_Position描述的是顶点在世界坐标系中的坐标
  2. 是绝对大小

gl_FragCoord

  1. gl_FragCoord描述的是片元在以Canvas画布窗口坐标系统中的坐标
  2. 是绝对大小
  3. 单位为像素

gl_PointCoord

  1. gl_PointCoord描述的是点域图元(点精灵/PointSprite)光栅化后的片元,表示的坐标就是gl_PointSize定义的区域内的片元坐标,点域图元对应片元在canvas画布上的位置根据其对应的顶点坐标变换而来。
  2. 是相对的大小
  3. 区间是[0.1]

以下图为实例:

  1. 该点域图元(点精灵/PointSprite)光栅化后的片元在gl_FragCoord描述的canvas画布窗口坐标系中坐标为(120,160)
  2. 该点域图元(点精灵/PointSprite)光栅化后的片元在gl_PointCoord所描述的坐标系中坐标为(0.5,0.5)

20210506140542377.png

版权声明:本文为CSDN博主「weixin_43787178」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:blog.csdn.net/weixin_4378…