blu*_*ale 4 opengl-es webgl opengl-es-2.0
我是 OpenGL 的初学者,正在尝试运行一些测试。GLSL Sandbox Gallexy上有很多可用的片段着色器,我想在 GLES 中尝试它们,重用代码。但是,对于大多数着色器来说,它似乎不起作用。
由于某种原因,在我尝试运行的着色器中,唯一能在 GLES 中工作的着色器就是这个。为了实现这一目标,我必须消除着色器的时间依赖性。
WebGL 和 GLES 中的某些变量名称似乎不同。如果是这样的话,具体是哪些?如果不是,从前者到后者的翻译过程到底是怎样的?
仅提供黑屏的简单片段着色器的一个示例。在我的特定情况下,我沿着这个最小的顶点着色器运行它:
precision mediump float;
uniform mat4 uMVPMatrix;
attribute vec4 aPosition;
attribute vec2 aTextureCoord;
varying vec2 vTextureCoord;
void main() {
vTextureCoord = aTextureCoord;
gl_Position = uMVPMatrix * aPosition;
}
Run Code Online (Sandbox Code Playgroud)
这个问题不是WebGL和OpenGL ES之间的差异,而是GLSL Sandbox Gallery和Shadertoy等网站提供的着色器编程环境与OpenGL\xc2\xa0ES平台上相应环境(或缺乏)之间的差异你的选择。
\n\n您在网络上看到的各种 WebGL 片段着色器沙箱通过统一变量为着色器代码提供输入。当您在另一个平台上开发自己的 OpenGL ES 应用程序时,您需要自己提供这些输入。
\n\n您链接到的沙盒站点通过计算适当的值本身并将它们传递给或类似的函数,在其 JavaScript 代码中提供time、mouse和制服(首先编译着色器,然后在编译的程序中查找每个制服名称resolution的数字位置) )。在另一个平台上,您需要使用该平台提供的 OpenGL ES 绑定执行相同的操作。backbuffergl.uniform1f
| 归档时间: |
|
| 查看次数: |
2087 次 |
| 最近记录: |