首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >着色器不工作

着色器不工作
EN

Stack Overflow用户
提问于 2013-07-29 04:42:18
回答 1查看 520关注 0票数 0

所以我不能让我的着色器来渲染颜色。当我不使用属性Color设置颜色时,我的着色器工作。我的vertex代码是:

代码语言:javascript
运行
复制
typedef struct
{
   GLKVector3 Position;         //Position
   GLKVector4 Color;        //32 Bit color
   GLKVector3 Normal;       //For Lighting
   GLKVector2 TexCoord;         //For Texturing
} Vertex;

我给所有顶点的颜色都是1,0,1,我的顶点着色器是这样的:

代码语言:javascript
运行
复制
attribute vec3 Position;
attribute vec4 Color;
attribute vec3 Normal;
attribute vec2 TexCoord;
uniform mat4 ModelViewMatrix;
uniform mat4 ProjectionMatrix;
varying vec4 DestinationColor;
void main(void)
{
    gl_Position = ProjectionMatrix*ModelViewMatrix*vec4(Position,1);
    DestinationColor = Color;
}       

我的片段着色器是这样的:

代码语言:javascript
运行
复制
precision mediump float;
varying lowp vec4 DestinationColor; 
void main (void)  
{     
     gl_FragColor =DestinationColor;
}    

而且它什么也不显示。

如果我将片段着色器更改为gl_FragColor =vec4(1,0,0,1),它甚至不起作用;除非我在顶点着色器中取消注释设置DestinationColor的行。

请帮帮忙,我已经在这上面坐了一段时间了

EN

回答 1

Stack Overflow用户

发布于 2013-08-03 06:20:20

我找到了这个问题的答案,但是我无法访问我的旧账号bobjamin,所以我使用这个新账号。解决方案相当简单。首先,我应该提到drhass的建议确实有帮助,因为它允许我从顶点着色器设置静态颜色,它将显示,但问题是名称颜色必须是一个保留的关键字,它导致了问题。

答案是将属性颜色更改为SourceColor,一切工作正常!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17912677

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档