0
個體是否可以創建着色器編程語言?創建着色器語言
個體是否可以創建着色器編程語言?創建着色器語言
作爲第一條評論,SK邏輯的答案就在那裏。您可以構建一個自定義着色語言編譯器,它採用自定義語言並將其「編譯」爲GLSL語言或HLSL或其他任何語言。
這是一個現實的問題,因爲現有的着色方法可以創建着色器的組合爆炸,可以使你的shader實現變得非常受限制的,相互依存的。自定義着色器語言可以使這些依賴關係自動化變得容易,例如,多層效果或細節層次控制。
可以使着色器的工作他們的方式,你「想」,他們的工作。如果需要,它還增加了一個完美的可移植性層,完全抽象底層着色語言。
生成的着色器會去這需要它的方式休息並編譯本地代碼的GPU驅動程序。
製作編譯器非常簡單。所有你需要的是一個(詞法分析器)解析器,從它構建一個抽象語法樹,然後在樹上做幾個遍以收集你需要知道的信息,做一些簡單的常量表達式優化,並生成着色器作爲輸出從語法樹中。我最近使用檸檬作爲解析器生成器。
爲什麼不呢?只需將你的語言編譯成GLSL或其他任何東西。 –
那麼如何創建另一個GLSL,如果你知道我的意思 – Ishihara
首先,你知道如何用通用語言編寫着色器嗎?因爲在從頭開始創建語言之前,您需要了解問題域以及如何實現基礎功能。 – Marcin