51代码网ORACLEMYSQLSQL SERVER其它数据库java/jspasp/asp.netC/C++/VC++APP应用其它语言服务器应用
您现在的位置: 51代码网 >> C >> 文章正文

assignment to attribute gl_SecondaryColor,assignment of incompatible types

更新时间:2012-2-26:  来源:51代码网

OpenGL超级宝典第四版第十五章程序清单15.1如下:
//顶点着色器
void main(void)
{
  //这是我们的"Hello World"顶点着色器
  //注意注释行是以"//"为标志

  //法线MVP转换
  vec4 clipCoord=gl_ModelViewProjectionMatrix*gl_Vertex;
  gl_Position=clipCoord;

  //复制主颜色
  gl_FrontColor=gl_Color;

  //计算NDC
  vec3 ndc=clipCoord.xyz/clipCoord.w;
   
  //在输出之前人[-1,1]映射到[0,1]
  gl_SecondaryColor=(ndc*0.5)+0.5;
}
//片元着色器
//这是我们的"Hello World"片元着色器
void main(void)
{
  //混合主颜色和辅助着色,50/50
  gl_FragColor=mix(gl_Color,vec4(vec3(gl_SecondaryColor),1.0),0.5);
}

这个程序在ShaderDesigner里面编译会报错呀:

Last build: 8:52:41
Compiling Vertex Shaders...
HelloWorld.vert
0(16) : warning C7564: assignment to attribute gl_SecondaryColor
0(16) : error C1035: assignment of incompatible types
 
|+++++++++++++++++++++++++++++++++++|
Compiling Fragment Shaders...
HelloWorld.frag
OK
 
|+++++++++++++++++++++++++++++++++++|
Linking all shaders....
Vertex info
-----------
0(16) : warning C7564: assignment to attribute gl_SecondaryColor
0(16) : error C1035: assignment of incompatible types
这是怎么回事呀?
assignment of incompatible types错误提示明显,楼主查一下赋值操作符二端类型是否一致。

  • 上一篇文章:
  • 下一篇文章: 没有了
  • 赞助商链接
    推荐文章
  • 此栏目下没有推荐文章
  • {
    设为首页 | 加入收藏 | 友情链接 | 网站地图 | 联系站长 |