程序问答   发布时间:2022-06-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了如何在 WebGL 中的剪辑空间坐标中找到当前输出像素位置?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决如何在 WebGL 中的剪辑空间坐标中找到当前输出像素位置??

开发过程中遇到如何在 WebGL 中的剪辑空间坐标中找到当前输出像素位置?的问题如何解决?下面主要结合日常开发的经验,给出你关于如何在 WebGL 中的剪辑空间坐标中找到当前输出像素位置?的解决方法建议,希望对你解决如何在 WebGL 中的剪辑空间坐标中找到当前输出像素位置?有所启发或帮助;

所以,在我的顶点着色器中,我正在做这样的事情:

voID main() {
  gl_position = vec4((u_matrix * vec3(a_position,1)).xy,1);
}

但现在我在我的片段着色器中,我想访问那个位置。也就是说,我正在寻找一个变量来访问正在绘制的像素的当前位置,但在剪辑空间坐标中。这样做的原因是我希望将该像素与纹理中相同位置的像素混合。

看起来 gl_FragCoord 与我想要的相似,但它在窗口空间中。我想我可以像这样转换它:

vec2 what_i_want = vec2(gl_FragCoord.x / 1920.,gl_FragCoord.y / 1080.);

但是我需要知道我的画布尺寸。我可以将画布尺寸作为制服传入,但这似乎有点多。有没有办法在片段着色器中以某种方式访问​​这个值?

解决方法

您走在正确的轨道上。您必须在统一变量中设置视口(画布)的大小。没有其他选择。这就是每个人在 WebGL 和 OpenGL 中所做的。

uniform vec2 u_resolution;

void main()
{
    vec2 uv = gl_FragCoord.xy / u_resolution;

    // [...]
}

大佬总结

以上是大佬教程为你收集整理的如何在 WebGL 中的剪辑空间坐标中找到当前输出像素位置?全部内容,希望文章能够帮你解决如何在 WebGL 中的剪辑空间坐标中找到当前输出像素位置?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。