注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

hhfighting的博客

以责人之心责己,以恕己之心恕人

 
 
 

日志

 
 
 
 

使用GLSL遇到的错误  

2012-11-06 13:54:28|  分类: 3D reconstructio |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
错误一:glew文件中的一些类型找不着

glew.h:13999:17:error:'PFNGLGETDOUBLEI_VERTPROC' does not name a type;


glew.h不能在头文件中包含,必须放在源文件中包含。而且该文件的包含应放在包含gl.h之前。This error is only for my laptop ubuntu. In my lab computer, it is OK.
错误二:无法创建glCreateShader,造成程序崩溃。解决办法如下,原因是没有初始化glew:

GLenum err = glewInit();
if (GLEW_OK != err){
printf("GLEW Error: %s\n", glewGetErrorString(err));
return false;
}


错误三:Vertex shader compile error:0:1(1): error: syntax error, unexpected $undefined
从网上查有人说: Perhaps because of the stream getting destroyed。因此仔细看了自己的代码,发现错误原因如下:
我是先读入两个shader文件,然后再将这两个文件指定为shader source。但是读两个文件用的是同一个函数,返回的字符串用于指定shader source,在第二次调用这个函数的时候,可能会吧第一个字符串破坏。具体如下:
先前代码如下:
const char* vsText = textFileRead(vertProg.c_str());
const char* fsText = textFileRead(fragProg.c_str()); glShaderSource(multiTexVert, 1, &vsText, 0);
glShaderSource(multiTexFrag, 1, &fsText, 0);
修改为:

const char* vsText = textFileRead(vertProg.c_str());
glShaderSource(multiTexVert, 1, &vsText, 0);

const char* fsText = textFileRead(fragProg.c_str());
glShaderSource(multiTexFrag, 1, &fsText, 0);

问题解决。当把字符串作为返回值的时候一定要考虑是否会被破坏,导致错误的值。
Error 4:

Program  link error: Link info
---------
No shader objects attached.


  评论这张
 
阅读(1036)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017