问题标签 [opengl-es-2.0]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
2158 浏览

opengl-es - 矩阵乘法 - glTranslate 的自己实现?错误的矩阵

假设我有以下投影矩阵(它使用gluPerspective(40, 1.0, 0.2, 200.0);单位矩阵计算):

并想glTranslatef(0.0, 0.0, -10.0);对该矩阵执行命令。使用 openGL ES 1.1 功能,我收到了(我认为这似乎是正确的):

但是如果我使用自己的实现(openGL ES 2.0),我会遇到一些奇怪的行为:

我的代码与苹果的 openGLES1/2 示例和本网站http://iphonedevelopment.blogspot.com/2009/06/opengl-es-from-ground-up-part-7_04.html非常相似:

我现在调试了 2 天,现在知道我错过了什么......有什么想法吗?

0 投票
1 回答
2207 浏览

java - 如何检测纹理何时被破坏

我如何检测我的纹理何时在 android 上被破坏?我的 GLSurfaceView 的渲染器类目前如下所示:

问题是这并不总是有效。当我从我的游戏中按下主页按钮然后再次启动它时,它就像一个魅力。但是当我锁定设备,然后再次解锁时,所有纹理都是黑色的。当我锁定它时,一切似乎都重置了(我的游戏总是回到主菜单中)。当我使用主页按钮退出游戏并在此之后进行锁定/解锁时,游戏不会重置。

0 投票
1 回答
1365 浏览

android - 如何在 android 的本机代码中使用 GLUt?

我目前正在使用 NDK for android,尝试使用 OpenGL ES 2.0 功能。但我不知道如何将图像加载到 OpenGL 纹理中。我的计划是使用本机函数调用发送位图,然后使用 GLUt 从中制作纹理。那么,我如何在 android platorm 的本机代码中使用 GLUt?

或者这是他对这个问题的错误看法?

(抱歉英语不好)。

提前谢谢!

0 投票
2 回答
18360 浏览

opengl-es - GLSL 中的纹理和颜色?

我不知道如何使用 OpenGL ES 2.0 获得与 OpenGL ES 1.1 类似的结果。我想实际使用一个 Sampler2D(将我的纹理与 Alpha 通道混合到帧缓冲区)并设置一个颜色。纹理应该以颜色绘制 - 就像在 OpenGL ES 1.1 中我的 FragmentShader 看起来像这样:

但是“+ colorVarying”部分用黑色破坏了我的alpha通道(因为我还添加了colorVarying,如果AlphaValue为0)并产生奇怪的渐变效果......纹理和颜色通道如何在固定功能管道中结合?我对 glColor4f 的替换是:

我正在使用 glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); 如果这在某种程度上相关......

对于颜色 1.0、0.0、1.0、1.0,这是我现在得到的: 现在

我想得到:

我想看的

一些想法来实现这一点?任何帮助,将不胜感激。

0 投票
2 回答
8464 浏览

java - 带有 OpenGL ES 2.0 的 Android 动态壁纸?

有没有人设法让 OpenGL ES 2.0 在动态壁纸中工作?我有一个使用 OpenGL ES 2.0 的类,并且作为 GLSurfaceView 的渲染器运行良好。但是,我希望它可以用作动态壁纸。我找到了 Robert Green 的 GLWallpaperService,但它基于旧版本的 GLSurfaceView,不支持运行 OpenGL ES 2.0 所需的 setEGLContextClientVersion。

0 投票
2 回答
28105 浏览

glsl - GLSL 用于简单的水面效果

我正在寻找一些关于如何在 OpenGL ES 2.0 中实现简单水面效果的指针。没有什么比反射或折射更花哨的了,只是一种随时间调制的基本波纹/波浪效果。性能至关重要。我假设这最好在着色器中完成。

关于如何最好地处理这个问题的任何指示?

0 投票
1 回答
564 浏览

opengl-es - 移动+缩放单个 OpenGL UI 控件

我是 OpenGL 的新手,我刚刚阅读了一篇关于 OpenGL 2.0 的不错的教程。我的目标是 OpenGL ES 2.0。

我需要创建一个由控件组成的 UI。控件可以在编辑模式下移动。我认为为每个控件创建顶点并将它们上传到 GPU,然后使用简单的顶点着色器将所有这些映射到屏幕在移动和缩放单个部分(控件)时有其局限性。我在这里吗?

我认为为每个控件创建统一属性会更好,例如宽度/高度/左/顶部/其他控件定义的属性,如滑块位置等......然后使用智能着色器将恒定顶点智能地映射到屏幕。然后,宿主应用程序只需更新控件的统一属性,而不是每次都上传新的顶点集。

你有什么建议吗?有没有针对此的示例或教程?

0 投票
1 回答
3127 浏览

opengl-es - OpenGL ES 2.0 中的 glTexGen

我已经尝试了几个小时来用 GL_OBJECT_LINEAR 实现 glTexGen 的 GLSL 替换。对于 OpenGL ES 2.0。在 Ogl GLSL 中有 gl_TextureMatrix 使这更容易,但这在 OpenGL ES 2.0 / OpenGL ES Shader Language 1.0 上不可用

一些网站已经提到这在 GLSL 垂直着色器中应该很“容易”。但我就是无法让它工作。

我的预感是我没有正确设置飞机,或者我的理解中遗漏了一些东西。

我已经仔细研究了网络。但是大多数网站都在谈论投影纹理,我只是想根据平面投影创建 UV。模型在 Maya 中构建,有 50k 多边形,建模器使用平面贴图,但 Maya 不会导出 UV。所以我试图弄清楚这一点。

我查看了 glTexGen 联机帮助页信息:

g = p1xo + p2yo + p3zo + p4wo

什么是克?g 是 texture2d 调用中 s 的值吗?

我看过网站:

http://www.opengl.org/wiki/Mathematics_of_glTexGen

另一个尺寸解释了相同的功能:

坐标 = P1*X + P2*Y + P3*Z + P4*W

我不明白坐标(我心中的 UV vec2)与点积(标量值)有多相等?我以前用“g”遇到过同样的问题。

我将飞机设置为什么?在我的 opengl c++ 3.0 代码中,我将其设置为 [0, 0, 1, 0] (基本上是单位 z)并且 glTexGen 效果很好。

我仍然缺少一些东西。

我的垂直着色器看起来基本上是这样的:WVPMatrix = World View Project Matrix。POSITION 是模型顶点位置。

碎片着色器

我在片段着色器中尝试过 texture2DProj

这是我查找的其他一些链接

http://www.gamedev.net/topic/407961-texgen-not-working-with-glsl-with-fixed-pipeline-is-ok/

先感谢您。

0 投票
2 回答
1526 浏览

opengl-es-2.0 - 用于 Nvidia Tegra 的 OpenGL ES 2.0 离线着色器编译器

任何人都知道如何为 Nvidia Tegra 芯片离线编译 OpenGL ES 2.0 着色器?我应该使用什么工具?谢谢。

0 投票
2 回答
6223 浏览

android - OpenGL ES 中的 GPU 分析和回调

有没有办法在 OpenGL ES 中添加类似于 DirectX 的回调?我正在尝试分析 GPU 性能,因此我试图弄清楚执行 GPU 的某些部分需要多长时间。

理想情况下,我“推送”一个标记/回调,然后调用一堆 GL 绘制调用,然后推送另一个标记,然后找出一帧后这两个标记之间经过了多少毫秒。

(任何其他分析 GPU 性能的方法也会有所帮助。)