我剛在Apple的開發人員工具中發現了OpenGL Shader Builder。這看起來很有用。唯一的麻煩是它似乎堅持在保存對話框中使用* .vs和* .fs,正如我通常使用* .vert和* .frag分別爲我的着色器文件擴展名。有什麼方法可以改變這些默認值嗎? (這可能涉及哈克溶液)在Apple的'OpenGL Shader Builder'中使用.vert和.frag擴展
3
A
回答
1
我第一次結束了使用我的自定義#include
預處理
製造假包裝着色器(很簡單的做!):
test.vert
#include test.vs
test.frag
#include test.fs
這是一個半可怕的h ack,絕對是你不想包含在svn/git中的任何東西,不管你是否共享代碼,但是當你需要扭轉時,很好。
隨着越來越多的人結束了使用幾個不同的文件擴展名,我結束了添加更多的方式來加載着色器。
LoadShader("MyShader", <List of preprocessors>)
LoadShader("vertex shader", "fragment shader", ... , <List of preprocessors>)
(這裏簡化什麼是真正的傳遞是一個結構)
第一個函數將做到以下幾點:
- 文本文件
[".vert",".vs".. etc]
用於頂點着色 - 文本用於片段着色器的
[".frag",".fs".. etc]
的文件 - 等等。
用戶可以定義他們想要支持的文件擴展名。
第二個函數只是使用確切的文件名。在第一個功能中,可能的組合受到預處理器的限制。在第二個選項中,您可以組合任何您需要的着色器文件,並且還可以使用預處理器進行變化。
這當然簡化了,但顯示了一般的想法。
相關問題
- 1. 如何將* .vert&* .frag轉換爲C中的char?
- 2. OpenGL不會編譯GLSL Shader。缺少擴展?
- 3. OpenGL Shader vs CUDA
- 4. Shader for Android OpenGL ES
- 5. 啓用OpenGL擴展
- 6. Opengl Shader Builder:使用紋理作爲片段着色器的輸入
- 7. 在Windows上使用OpenGL擴展
- 8. NDK和OpenGL ES擴展
- 9. 使用Builder模式擴展類
- 10. OpenGL擴展的可用性
- 11. Qt 4中的OpenGL擴展
- 12. 檢查所有使用的OpenGL擴展
- 13. 使用glObjectLabel的OpenGL調試擴展
- 14. Laravel 5.2擴展雄辯Builder和可重複使用的方法
- 15. OpenGL Compute Shader - glDispatchCompue()不運行
- 16. 在Windows中的OpenGL霧座標擴展
- 17. OpenGL的「黑屏」的渲染利用Shader
- 18. OpenGL擴展:如何在OS X下使用它們 - OpenGL新手
- 19. 有條件地使用OpenGL擴展
- 20. 如何使用OpenGL ARB_gl_spirv擴展?
- 21. OpenGL Shader編譯問題 - 意外的EOF
- 22. 在Firefox擴展中使用jQuery擴展
- 23. 如何在Android中使用來自java的OpenGL ES 2.0擴展?
- 24. 擴展如何在openGL中安裝?
- 25. 用Swift擴展UIKit類Interface Builder
- 26. 在OpenGL Fragment Shader中,gl_FragColor.a = 0和discard有什麼區別?
- 27. 擴展和使用的realloc
- 28. 如何在Android上啓用OpenGL擴展GL_EXT_shader_framebuffer_fetch?
- 29. 從VBO/Shader/MVP矩陣使用OpenGL 3.3亂碼三角形
- 30. OSX可用的OpenGL ARB擴展