gpt4 book ai didi

opengl-es - 如何在 GLSL ES 中确定纹理的偶数/奇数线

转载 作者:行者123 更新时间:2023-12-02 22:49:03 24 4
gpt4 key购买 nike

我需要从纹理中删除所有奇数线 - 这是简单的去隔行器的一部分。

在下面的代码示例中,我没有从纹理中获取 RGB,而是选择为奇数行输出白色,为偶数行输出红色 - 这样我就可以直观地检查结果是否符合我的预期。

_texcoord 从顶点着色器传入,x 和 y 的范围均为 [0, 1]

uniform sampler2D sampler0; /* not used here because we directly output White or Red color */
varying highp vec2 _texcoord;
void main() {
highp float height = 480.0; /* assume texture has height of 480 */
highp float y = height * _texcoord.y;
if (mod(y, 2.0) >= 1.0) {
gl_FragColor = vec4(1.0, 1.0, 1.0, 1.0);
} else {
gl_FragColor = vec4(0.0, 0.0, 1.0, 1.0);
}
}

渲染到屏幕时,输出不是预期的。垂直方向是 RRWWWRRWWW 但我真的很期待 RWRWRWRW (即红色和白色交替)

我的代码在 iOS 上运行并面向 GLES 2.0,因此在使用 GLES 2.0 的 Android 上应该没有什么不同

问题:我哪里做错了?

编辑

  1. 是的,纹理高度正确
  2. 我想我的问题是:给定一个_texcoord.y,如何判断它是指纹理的奇数行还是偶数行。

最佳答案

void main(void)
{
vec2 p= vec2(floor(gl_FragCoord.x), floor(gl_FragCoord.y));
if (mod(p.y, 2.0)==0.0)
gl_FragColor = vec4(texture2D(tex,uv).xyz ,1.0);
else
gl_FragColor = vec4(0.0,0.0,0.0 ,1.0);
}

关于opengl-es - 如何在 GLSL ES 中确定纹理的偶数/奇数线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19557217/

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