Android GLES20.glBlendEquation 不起作用?
几周来我一直在尝试制作一个具有深度和法线贴图纹理的 2.5D 引擎,与这里使用的没有什么不同 Linky 。在考虑到由于 ES 2.0 缺少 gl_fragDepth 变量而无法在片段着色器中从纹理绘制深度图之后,我找到了一个 iOS 教程,其中他们使用 glBlendEquation 和 GL_MIN/GL_MAX 模式来“假”片段的深度缓冲到帧缓冲区纹理 Linky。不幸的是,GLES20.glBlendEquation 导致应用程序在我的两部手机 (SGS 1/2) 上崩溃并出现 UnsupportedOperationException。所以我想知道是否有人使用此功能取得了成功? Android Opengl ES 2.0 规范中似乎也缺少 GL_MIN/GL_MAX ,所以我可能在这里运气不佳...... 有什么想法吗?
顺便说一句,它似乎在 GL11Ext 中工作,但由于我使用片段着色器进行法线贴图,这对我来说不起作用。
Ive been trying to make a 2.5D engine with depth and normal map textures for a few weeks now, not unlike whats used here Linky. After thinking the drawing of a depth map in the fragment shader from a texture was impossible due to ES 2.0 missing the gl_fragDepth variable I found a tutorial for iOS where they used glBlendEquation with the mode GL_MIN/GL_MAX to "fake" depth buffering of the fragment to a framebuffer-texture Linky. Unfortunely GLES20.glBlendEquation makes the application crash on both my phones (SGS 1/2) with UnsupportedOperationException. So Im wondering if anyone has used this function to any success? GL_MIN/GL_MAX also seems to be missing from the Android Opengl ES 2.0 spec so Im probably out of luck here...
Any ideas?
BTW It does seem to work in GL11Ext but since Im using the fragment shader for normal mapping this wont work from me.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我正在我的 Vega 平板电脑 (Tegra) 上进行实验,这对我有用:
片段着色器:
很简单,是吧?但恐怕这将仅限于 NV。
i was experimenting on my Vega tablet (Tegra) and this worked for me:
fragment shader:
Pretty easy, huh? But i'm afraid this will be NV-only.