问题标签 [glsles]
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.
opengl-es - 纹理图集平铺
我正在尝试在 ios opengl es 2.0 (ipad) 上进行简单的纹理喷溅。我在 pvrt 压缩图集(2x2 瓷砖)中有 4 个平铺纹理。4 个纹理单元上的 4 个单一纹理非常慢。
顶点着色器:
片段着色器:
显示这个:
(来源:inputwish.com)
我的问题可能是纹理单元插值器,但我不知道如何解决。我没有在我的着色器中看到错误。请问有什么建议吗?
android - 动画纹理坐标不起作用
我正在努力学习 GLSL ES,以便我可以将一堆动画从 CPU 卸载到 GPU。我的问题是创建一个使用精灵表的简单动画着色器。着色器根本不使用灯光,我只显示完整的纹理值以保持非常基本的内容。我选择的 OpenGL ES 框架是 Rajawali,所以我的一些值和参数是从这些类中提取的。
当我使用此着色器时isAnimated = false
,纹理会按预期应用。但是,当isAnimated = true
模型全黑时,就好像没有应用纹理一样。
我能够确认顶点和片段着色器正在评估ifdef ANIMATED
为true
,所以这似乎是我的纹理坐标修改引起的问题。
任何帮助是极大的赞赏!
这是我完整的非工作着色器类:
}
objective-c - Objective-C GLSL mix() 等效
我试图弄清楚如何编写等效于 GLSL(ES) 的混合方法。我试图添加/划分 rgb 值,但还没有运气。任何指向 GLSL 方法如何工作的指针都将受到欢迎。
opengl-es - GLSLES 使用统一浮点数而不是例如 0.5 损失 5-6 毫秒
我有这个片段着色器。在一些“精灵”上,我想要纹理的不同“饱和度”。目前我只设置一次,但后来我会根据绘制的精灵蜜蜂设置每次绘制。如代码中所述,如果我只写 * 0.5,我不会看到性能下降,但如果我使用 * u_test,速度会降低约 5-7 毫秒。这可能吗?你能想到其他解决方案吗?我完全走错了吗?
opengl-es - 何时确定在 gl_VertexID 中使用的顶点索引
我试图了解 gl_vertexID 在顶点着色器中的行为。为此,我尝试使用两个 glDrawArrays 调用一个接一个地渲染 2 个正方形。并希望在顶点中使用 gl_VertexID 仅将红色应用于一个正方形:
将颜色传递给片段着色器。
方坐标为:
进行绘图调用:
使用 Nvidia 卡,并调用两个 glDrawArrays 调用正在显示预期的结果,即将一个正方形渲染为红色,将另一个渲染为白色。
因此,想知道在 glDrawArrays 调用期间是否应该生成正确的行为或 gl_VertexID 索引,以便两个正方形具有相同的红色?
我正在使用 2 个 glDrawArrays 调用,所以我的理解是根据规范,两个方块都应该是红色的:
http://www.opengl.org/sdk/docs/manglsl/xhtml/gl_VertexID.xml
想为 glsl 300 es 测试它。
android - Opengl ES 2.0:模型的某些部分在不应该被遮挡的地方被遮挡。z-buffer 是罪魁祸首吗?
我正在使用 Assimp 使用 OpenGL ES 2.0 渲染 3D 模型。我目前遇到一个奇怪的问题,其中模型的某些部分不可见,即使它们应该可见。在这些图片中很容易看到它:
在第二张图片中,我将 z-buffer(的线性化版本)渲染到屏幕上,看看它是否可能是 z-buffer 问题。黑色像素靠近相机:
我试图更改 z-near 和 z-far 的值而没有任何效果。现在我在初始化时这样做:
我也在为每一帧都这样做:
我认为这可能是面部缠绕问题,所以我尝试禁用 GL_CULL_FACE,但它不起作用。我很确定模型很好,因为 Blender 可以正确渲染它。
我现在正在使用这些着色器:
这是片段着色器:
我正在使用带有索引的 VBO 来加载几何图形和东西。
当然,我可以粘贴一些您认为可能相关的其他代码,但现在我很高兴了解可能导致这种奇怪行为的一些想法,或者我可以做的一些可能的测试。
android - Android Openg GL ES 2 绘制大纹理缓慢
我对 OpenGL很陌生。
我正在尝试绘制带纹理的四边形(2 个三角形)。纹理大小为 900x900px。我对一个四边形没有任何问题,但是当我尝试绘制 5-10 个四边形时,我发现速度明显变慢。
也许我做错了什么......
代码:
顶点着色器:
片段着色器:
测试平台为 Galaxy S3。在分析器中,我看到大约 60 毫秒需要 eglSwapBuffers 调用。
如何快速绘制具有大纹理的四边形?
android - OpenGLES2无法渲染位图
这是在 android 平台上使用 OpenGLES2.0 开发移动应用程序(针对 API 8,如果有任何区别)。
我正在尝试在我当前工作的渲染系统上添加一个 UI 层,但它不起作用,我不知道为什么。任何帮助将不胜感激。
这就是我正在做的事情:
1)初始化时,我正在加载一整堆要显示的网格,这些网格使用各种程序进行渲染。其中一个网格显示纹理,这是有效的。
2) 在我加载了所有网格之后,我加载了一个“按钮”,它基本上是一个正方形,具有相同的纹理,已经在上面的 (1) 中使用过。
3)我的主渲染循环使深度蒙版可写,并且依次为每个程序渲染任何不透明的内容,然后将深度蒙版设为只读,然后依次为每个程序渲染任何具有任何透明度的内容,然后清除深度缓冲区位并依次渲染每个 UI 组件。
我正在做一件事,这可能不是正确的做事方式——渲染我的 UI 组件的程序没有执行任何模型-视图-投影转换——我将标准化的设备坐标直接传递给它,它只是一个通过。据我所知,这应该可行 - 我只提到它是因为我对此持怀疑态度。UI组件程序的顶点和片段着色器代码如下:
int vShader = compileShader(GLES20.GL_VERTEX_SHADER,
"attribute vec4 aPosition;" +
"attribute vec2 aTexCoord;" +
"varying vec2 vTexCoord;" +
"void main() {" +
" vTexCoord = aTexCoord;" +
" gl_Position = aPosition;" +
"}");
int fShader = compileShader(GLES20.GL_FRAGMENT_SHADER,
"precision mediump float;" +
"uniform sampler2D uTexture;" +
"varying vec2 vTexCoord;" +
"void main() {" +
" gl_FragColor = texture2D(uTexture,vTexCoord);" +
"}");
这是我尝试过的:
1)我尝试过阻止不透明和透明的程序运行。在这种情况下,我得到一个完全充满垃圾的屏幕(带状规则间隔的水平条纹,在纯黑色和看似随机的东西之间交替 - 每个带可能大约 50 像素高)。
2)我检查了我FloatBuffer
所基于的浮点数组的内容(我不知道如何FloatBuffer
直接检查。这对我来说看起来不错。
我有点难过!有人有什么想法吗?
opengl-es - Writing to gl_FragColor causes glUseProgram to throw GL_INVALID_OPERATION
I'm trying to write a blur filter in GLSL ES 2.0 and I'm getting an Error with the line assigning gl_FragColor. I've not been able to figure out why
The assignment of gl_FragColor
causes calls to glUseProgram
to error with GL_INVALID_OPERATION
. I've tried this without it and it compiles and operates without the error. I'm hoping someone can point me in a direction i haven't looked yet at least because I can't see any reason this isn't working.
EDIT: I solved this. As best I can tell the GLSL-ES on android doesn't allow indexing arrays with non-constant variables. GLSE-ES 2.0 specification page 97 10.25 states it's not directly supported by all implementations and on page 109 it states that loop indices can be considered constant-expressions but not must. I rolled out my loop and it's linking fine now.
Thank you everyone who responded, I was able to narrow this down thanks to your insight.
ios - ios - 使用 openframeworks 导入并使用它 glview
只是一个想法,是否可以使用 openframeworks 导入一些 3d 对象,然后将其从 ios 传递给 glview,然后与 glsl 混淆?我目前正在使用 of_ios_074,根据进一步阅读,似乎还没有移植到 Opengles 2.0,这意味着我们还不能使用 glsl 对吗?