性能注意事项 (Direct3D 10)

使用效果池

呈现管道通常使用许多着色器来呈现不同的对象类型和特殊效果。 着色器是所有着色器(如世界矩阵或光线位置)中通用的状态的混合体,以及特定于每个着色器的其他状态(例如对象的漫射颜色或反射突出显示计算)。 效果池是一个内存中的位置,用于存储跨许多着色器使用的状态,以及常见的设备对象(如着色器、呈现状态对象和常量缓冲区)。 性能改进的结果是针对需要该状态的所有着色器更新一次通用状态。

效果池是效果状态的共享内存位置。 池的创建方式与效果类似;它可以从内存(或文件或资源)创建。 这会导致两种不同类型的效果:一种不依赖于其他效果中的状态的全局效果,另一种效果依赖于状态的子效果。

指定效果是全局效果(默认大小写)还是子效果(通过在创建效果时提供 D3D10_EFFECT_COMPILE_CHILD_EFFECT 标志)。 全局效果可以充当效果池;子效果不能是效果池。

呈现效果

效果 (Direct3D 10)