gpt4 book ai didi

opengl - 如何在glsl中计算gl_FragCoord

转载 作者:行者123 更新时间:2023-12-01 19:15:21 26 4
gpt4 key购买 nike

好的,在我的 GLSL 片段着色器中,我希望能够计算片段与空间中特定线的距离。

这样做的结果是,我首先尝试在顶点着色器中使用不同的 vec2 集来镜像 gl_FragCoord 中的最终结果:

varying vec2 fake_frag_coord;
//in vertex shader:
gl_Position = gl_ModelViewProjectionMatrix * gl_Vertex;
fake_frag_coord=(gl_ModelViewProjectionMatrix * gl_Vertex).xy;

现在在片段着色器中我期望:

gl_FragCoord.xy==fake_frag_coord

但事实并非如此。管道对 gl_Position 执行什么操作,将其转换为我在 fake_frag_coord 上忽略的 gl_FragCoord

最佳答案

gl_FragCoord 是屏幕坐标,因此您需要有关屏幕尺寸等信息才能根据位置生成它。我认为您生成的 fake_frag_coord 将对应于屏幕上标准化设备坐标中的一个点(-1 到 1)。因此,如果您将特定尺寸的屏幕尺寸乘以一半,然后添加该尺寸,您将获得实际的屏幕像素。

关于opengl - 如何在glsl中计算gl_FragCoord,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1288174/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com