gpt4 book ai didi

Android GLES20.glBlendEquation 不工作?

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:19:07 28 4
gpt4 key购买 nike

几周来我一直在尝试制作一个具有深度和法线贴图纹理的 2.5D 引擎,与这里使用的没什么不同 Linky .在考虑到由于 ES 2.0 缺少 gl_fragDepth 变量而无法从纹理在 fragment 着色器中绘制深度图之后,我找到了一个 iOS 教程,其中他们使用模式为 GL_MIN/GL_MAX 的 glBlendEquation 来“伪造” fragment 的深度缓冲到帧缓冲区纹理 Linky .不幸的是,GLES20.glBlendEquation 使应用程序在我的两部手机 (SGS 1/2) 上崩溃并出现 UnsupportedOperationException。所以我想知道是否有人使用此功能取得了成功? Android Opengl ES 2.0 规范中似乎也缺少 GL_MIN/GL_MAX,所以我在这里可能运气不好......有什么想法吗?

顺便说一句,它似乎在 GL11Ext 中工作,但由于我使用 fragment 着色器进行法线贴图,这对我来说不起作用。

最佳答案

我在我的 Vega 平板电脑 (Tegra) 上进行了试验,这对我很有效:

fragment 着色器:

#extension GL_NV_shader_framebuffer_fetch : require 
// makes gl_LastFragColor accessible

precision highp float;

varying vec2 v_texcoord;

uniform sampler2D n_sampler;

void main()
{
vec4 v_tex = texture2D(n_sampler, v_texcoord);
gl_FragColor = min(gl_LastFragColor, v_tex); // MIN blending
}

很简单,是吧?但恐怕这将仅限于 NV。

关于Android GLES20.glBlendEquation 不工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7841763/

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