getScreenPosition
getScreenPosition
将三维视图空间中的点映射到二维屏幕坐标([0, 1]范围),用于实现屏幕空间特效或进行坐标变换调试。
核心优势
将复杂的坐标变换(投影、透视除法、范围重映射)封装为单个函数,极大地简化了屏幕空间效果的实现,提高了代码可读性并避免了手动计算中的常见错误。
常见用途
屏幕空间特效(如暗角、扫描线)
调试坐标变换(将屏幕坐标可视化为颜色)
非真实感渲染(使用屏幕坐标采样固定图案)
与后期处理效果交互(采样扰动图)
如何调整
此节点没有直接可调参数。其效果通过改变其隐式输入(视图位置和投影矩阵)来调整。例如,改变摄像机的视野(FOV)会改变投影矩阵,从而影响依赖屏幕坐标的特效(如暗角)的范围和强度。
代码示例
1// 将屏幕坐标可视化为颜色以进行调试
2// 物体表面会呈现一个固定的、从左上到右下的颜色渐变
3material.colorNode = vec4( getScreenPosition(), 0.0, 1.0 );