2011-02-18 40 views
1

在HLSL中,預處理器是否等同於C(++)中的預處理器,它在編譯之前會從字面上改變代碼?如果是這種情況,那麼使用這種方法似乎可以在不添加運行時條件語句的情況下專門化着色器......是真的嗎?HLSL中的#defines是否會增加任何性能開銷?

回答

2

#define按照您的預期工作。它們在編譯時進行評估。

如果您想檢查編譯器的輸出以確保沒有(不必要的)分支發生,請使用/Fc <file>選項來HLSL編譯器(fxc)生成已編譯着色器的彙編列表。

相關問題