文件名称:效果架构-matplotlib官方参考文档
文件大小:5.51MB
文件格式:PDF
更新时间:2024-06-23 10:58:33
DirectX 9 3D 翁云兵
第十九章 效果架构 ((( ( TheTheThe The EffectsEffectsEffects Effects FrameworkFrameworkFramework Framework ))) ) 概览概览概览 概览 一个渲染效果一般由以下部分组成:一个顶点和/或像素着色器,一个需要设置的设备状态列表 , 一个或更多的渲染通道(rendering passes)。此外,有一个能在不同级别的图形硬件上渲染效果的可靠 机制通常是值得的(也就是说,有不同的可用的效果版本执行同样的效果或尽可能尝试执行同样的效 果)。显然,所有这些必要的任务组合在一起成为一个效果。因此,一个合理的做法(步聚)是,设 法将这些任务封装到一个单元中。 Direct3D 效果构架提供了这样一个机制:将渲染效果的任务封装到一个效果文件。在效果文件中 实现效果有两方面优势。其一,它允许我们不必重编译应用程序就能改变一个效果的执行。这是一种 更新效果的过程,不管是修正一个 bug,一些简单的加强,或者利用最新的 3D 硬件特性。第二,它 将所有的效果组成部分封装到一个文件。 这一章指导你用必要信息和步骤,编写和创建一个效果文件的。我们注意到效果文件象我们的 HLSL 程序一样可以写在任何 ASCII 文件中。 目标目标目标 目标 理解一个效果文件的结构和组织 找到 HLSL 中的一些额外的对象 学习如何在效果文件中指定设备状态 学习如何创建并使用一个效果 通过学习一些例子程序,取得使用效果框架上的一些经验 19.119.119.1 19.1 技术与传递(技术与传递(技术与传递( 技术与传递( TechniquesTechniquesTechniques Techniques andandand and PassesPassesPasses Passes ))) ) 一个效果文件由一个或多个技术组成。一个技术是用一个特殊的方法渲染一些特效。所以换句话 说,一个效果文件提供了渲染相同特效的一个或多个不同的传递。为什么同样的效果需要几个不同实 现呢?是的,一些硬件可能不支持一个效果的一种特定实现。因此,必需在不同硬件上实现相同效果 的不同版本。 注意:例如,我们可能实现一种效果的两个版本,一种用着色器实现而一种用固定管线实现。这 样,那些有着色器(shader)支持的显卡用户能够利用着色器实现,而那些不支持着色器的用户仍然 可以使用固定管线实现。 可以在一个效果文件中实现所有版本的效果,这让我们更完整的封装了所有的效果,也是效果框