viewportCoordinate
viewportCoordinate
提供当前像素相对于其渲染视口(Viewport)左下角的局部坐标,原点始终为 (0,0)。
核心优势
它提供了一个相对于视口的局部坐标系,使得渐变、UI布局等效果的实现与视口在屏幕上的具体位置无关,极大地简化了着色器逻辑,增强了代码的模块化和可复用性。
常见用途
生成标准化的视口UV坐标
绘制视口边框或网格线
创建径向效果(如雷达扫描)
如何调整
该节点是只读的,无自身参数。其效果通过在着色器中对输出的坐标向量进行数学运算(如乘法缩放图案、或用函数扭曲坐标)来“调整”,以实现各种屏幕空间图案和畸变效果。
代码示例
1// 将相对于视口的像素坐标除以视口尺寸,得到归一化的UV坐标 [0, 1]。
2const viewportUV = viewportCoordinate.div( viewport.zw );
3
4// 使用UV坐标创建从左下角(黑)到右上角(黄)的渐变
5return vec3( viewportUV.x, viewportUV.y, 0 );