我的問題是 - 如何將庫導入到OpenGL GLSL着色器中?我的意思是 - 是否有OpenGL本身支持的方式,而不是API連接字符串以將着色器代碼與庫代碼混合的外觀。如何在OpenGL中導入庫GLSL
4
A
回答
5
沒有擴展名的OpenGL本身不支持這種方式。許多包裝OpenGL的引擎都添加了自己的預處理器來處理#include宏來解決這個問題,但這符合「爲了將着色器代碼與庫代碼混合而連接字符串的API的外觀」。
ARB_shading_language_include擴展提供了此功能的OpenGL版本,但可能無法在您的特定機器上使用。有關此擴展的概述,請參閱此問題:How to Using the #include in glsl support ARB_shading_language_include
1
存在沒有真正的解決方案。
但我想我知道是什麼問題:
的問題是,每個着色器是完全相關的 它的客戶端代碼:每個着色器程序,使絕對沒有 感覺沒有它的客戶端程序。
看起來像聲明性語言集成到OOP或任何 langiage。
因此,這不是GLSL的問題,它是客戶端語言的問題 例如, C++,Java(Android)到 解決這個問題。但只是我的意見。
+0
我不一定同意這一點。有一些原因可能導致您想要在許多不同的着色器之間共享代碼 - 例如,某些數學函數不是由GLSL提供的,或者您可能想要執行HSV到RGB的轉換。 –
相關問題
- 1. Qt 4.6 OpenGL GLSL
- 2. OpenGL GLSL插值
- 3. 如何在GLSL中寫入/防止寫入OpenGL深度緩衝區
- 4. 從RGB到HSV在OpenGL GLSL
- 5. 如何在OpenGL 2.1中使用GLSL 1.3中的位操作
- 6. 在OpenGL ES 2.0中轉置mat4 GLSL
- 7. glTexParameter和在OpenGL和GLSL中過濾?
- 8. 在OpenGL和GLSL中的點渲染
- 9. 在OpenGL/GLSL中繪製tessallated Lineloo
- 10. 如何在現代OpenGL中使用GLSL渲染文本
- 11. 如何在GLSL(OpenGL ES 2.0)中定義常量數組?
- 12. 如何在OpenGL的GLSL中重複3x9紋理?
- 13. Opengl GLSL渲染紋理
- 14. OpenGL GLSL着色器統計
- 15. OpenGL/GLSL霧應用程序
- 16. OpenGL ES - GLSL返回計算
- 17. OpenTK OpenGL GLSL 3.30不支持
- 18. 的OpenGL/GLSL行步道
- 19. OpenGL ATI與NVIDIA GLSL問題
- 20. GLSL + OpenGL離開狀態機
- 21. 困惑於GLSL和OpenGL
- 22. OpenGL的GLSL SSAO實施
- 23. 轉換GLSL現代OpenGL 3.2
- 24. 如何在CoffeeScript中導入JavaScript庫?
- 25. Angular 2如何在node_modules中導入庫?
- 26. 如何在Coq中導入庫?
- 27. 如何在Android中導入pjsip庫
- 28. 如何在Gradle中導入Google庫?
- 29. 如何在puTTY中導入庫
- 30. 如何在Eclipse中導入ViewPagerIndicator庫
Thx爲您的問題和@ MikeMx7f答案,但在我看來,現在有適當的方式來使glsl文件moduaar一些。我也只是發佈了一個問題:http://stackoverflow.com/questions/20604221/how-to-make-glsl-shaders-modular-without-using-string-manipulation。 – Diversity