use*_*291 0 shader lighting opengl-es glsl fragment-shader
我正在使用以下着色器源代码来实现顶点和片段.
顶点着色器源:
#define highp
attribute highp vec3 position;
uniform highp mat4 mvp;
void main(void)
{
gl_Position = mvp * vec4(position, 1.0);
}
Run Code Online (Sandbox Code Playgroud)
片段着色器源:
#define highp
uniform highp vec3 color;
void main(void)
{
gl_FragColor = vec4(color, 1.0);
}
Run Code Online (Sandbox Code Playgroud)
但是,着色器无法正常工作.如下面的屏幕截图所示,3D对象的颜色就像2D对象一样:
glGetShaderiv带有GL_COMPILE_STATUS返回success == TRUE,因此没有着色器编译错误.
glGetShaderiv(shaderObj, GL_COMPILE_STATUS, &success);
Run Code Online (Sandbox Code Playgroud)
我没有尝试glGetError()代码.我要去尝试一下.但我怀疑我没有收到任何OpenGL错误.
我相信我需要调整color顶点和片段着色器.我应该如何调整着色器源中的颜色?任何人都可以通过暗示来帮助我.到目前为止,我无法通过修改源来解决问题.
在@ Rabbid76 的帮助下,3D对象看起来很不错:
我正在使用@ Rabbid76代码进行一些小修改:将#version 130顶点和片段着色器源添加到顶部.看起来我的英特尔显卡需要该#version 130指令,否则会引发一些警告和错误:
警告:片段着色器中不支持扩展"GL_OES_standard_derivative"
该#version 130指令解决了上述警告及其后续错误.
| 归档时间: |
|
| 查看次数: |
115 次 |
| 最近记录: |