摘要:以前没用过,今天折腾了很久才学会。 CGparameter Param = cgGetNamedParameter(m_raycastFrag, "aaa"); //读structure of array参数 cgSetArraySize(Param,num);//设置数组大小 for (int i=0;i<num;i++) { CGparameter GaussIParam = c...
阅读全文
摘要:程序的shader要用到三重循环,用cgc编译后,shader代码没问题。然而cgCreateProgramFromFile时,却怎么得过去不,而且让内存从几兆一下上升到几百兆。开始没有debug,还以为电脑中了病毒。debug发现该问题后,想到可能是fp40不支持三重循环的shader,然后换用gp4fp解决该问题。
阅读全文
摘要:TextureManager::getGaussTF(gaussParam); 该函数通过引用方式读取gaussParam参数,然后绑定到cg的某一参数。然而,如果该函数放在cgGLBindProgram(xxx)后执行,无法得到争取的gaussParam。开始以为是引用问题,后改为传值,一样的错误。最后发现,必须把该函数放到cgglBIndProgram前执行。-----------------...
阅读全文
摘要:如果希望在程序里动态的绑定纹理,绑定的代码,一定要写在所有的cg纹理参数绑定的前面,否则会出错。以下代码正确:glBindTexture(GL_TEXTURE_2D,m_xxxTexId);glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, 256,256, 0, GL_RGBA, GL_UNSIGNED_BYTE,m_xxxTex); cgGLSetTextureP...
阅读全文
摘要:以前很笨,对每个qt 相关的文件,手动设置custom build command,很烦很累。今天发现有更简单的办法,直接在project文件目录 执行以下命令:qmake -project -o xxx.pro生成xxx.proqmake 生成makefileqmake -project -t vcapp -o xxx.pro 这时可以修改xxx.pro,比如project是与opengl,可以再xxx.pro文件里加上QT += openglqmake -t vcpp 就可以生成xxx.vcproj文件然后用vs2005打开这个xxx.vcproj,就可以写普通的c++一样编程了,而不需要
阅读全文