我在写一个GPGPU Fluid simulation,它使用C++/OpenGL/Cg运行。目前,该库要求用户指定着色器的路径,然后将其读取。在C++ GPGPU库中嵌入cg shaders
我发现它非常烦人,不得不在我自己的项目和测试中指定,所以我想让着色器内容与其他内容链接。
理想情况下,我的.cg文件仍然可以单独浏览,但后期构建步骤或预处理器指令会在需要时将其包含在源代码中。
为了让事情变得更加恼人,我有一个“utils”着色器文件,其中包含在各种事物之间共享的函数(如将3d纹理坐标转换为与2D等效图相同的函数)。
如果可能的话,我想要一个跨平台的解决方案,但它并不是什么大事,因为它目前只有Windows。我的搜索只针对linux真的变成了objcopy
,但在windows上使用它并不理想。
如果有帮助,该项目可在http://code.google.com/p/fluidic
是的,我希望有一个比头文件生成方法更简单的解决方案。 将shaders作为字符串资源是一件非常痛苦的事情,因为我失去了我所有的语法,以及使用'cgc'检查编译错误的能力(当然,没有复制/粘贴到另一个文件中)。 可能不得不接受没有办法做到这一点很好,并与破解。 – XwipeoutX 2010-03-23 13:32:53