Direct3D 10) (性能注意事项
使用效果池
呈现管道通常使用许多着色器来呈现不同的对象类型和特殊效果。 着色器是所有着色器(例如世界矩阵或光位置)中通用的状态,以及特定于每个着色器的其他状态(例如对象的漫射颜色或反射高光计算)的混合体。 效果池是内存中的一个位置,用于存储跨多个着色器以及常见设备对象(如着色器、呈现状态对象和常量缓冲区)使用的状态。 性能改进源于为所有需要该状态的着色器更新一次通用状态。
效果池是效果状态的共享内存位置。 池的创建方式类似于效果;可以从内存 (、文件或资源) 创建。 这会导致两种不同类型的效果:一种不依赖于其他效果中的状态的全局效果,另一种效果中依赖于状态的子效果。
通过在创建效果时提供 D3D10_EFFECT_COMPILE_CHILD_EFFECT标志) ,可以指定效果是全局效果 (默认情况) 还是子效果 (。 全局效果可以用作效果池:子效果不能是效果池。
相关主题