我在寫一個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