有没有办法合并着色器?
假设我想要4个型号:
我知道这样做的唯一方法是创建4个像素和顶点着色器文件。但是我还有5个想要添加的效果,我必须创建更多文件,如果我想添加越来越多的效果?我怀疑每个效果我必须为每种可能性创建一个更多的文件。我知道,对于光线,我可以直接在其他文件中设置它,当我不想使用光线时,我将其设置为1.0f,因此颜色不会改变。但是如果我想要更多的效果,我的着色器中会有20个变量,如果我不使用它们就不会没用了?还有另一种方法吗?
在此先感谢,我尽可能地理解,对不起我的英语。
答案 0 :(得分:1)
以下是一些想法:
#include
将其分散在着色器之间。#ifdef
进行条件编译。 Pass通过/D
fxc.exe
D3D_SHADER_MACRO
的{{1}}标记定义D3DCompile
。您可以在一个着色器中组合所有,然后将其编译为许多不同的二进制文件。希望它有所帮助!