概述:图形渲染本质即是CPU+GPU编程,这比传统的CPU编程更加复杂,就连其存储数据的位置,CPU和GPU对数据的访问权限都变的更加复杂。IA阶段是整个渲染过程中数据加载阶段,把这个模块学好对渲染整个渲染过程的理解都有很好的帮助。
模型文件里面的信息,会加载到内存中,然后映射到ID3D11Buffer里面,有了数据管道才能开始渲染。这里面分两个过程,一是创建buffer的过程,这一步会把数据存储在相应的位置。二是IASet,这个过程是把数据输送到渲染管道,提供使用。所以,实现的时候创建buffer会在程序初始化的时候,而IASet是在渲染的时候,你有可能创建了100个buffer而实际渲染的时候只渲染了10个。
整个渲染管道是由多个阶段组成的,而这所有的阶段都是由ID3D11DeviceContext进行控制的,它控制的第一个阶段就是IA阶段。IA是整个渲染过程数据准备阶段,包括格式的定义和数据的输入。这个阶段会向管道输入四种类型的对象:
IAGetIndexBuffer :获得一个指向索引缓冲区,也势必将输入汇编阶段。
IAGetInputLayout :获取一个指针,指向输入布局对象被绑定到输入汇编阶段。
IAGetPrimitiveTopology :获取信息的基本类型和数据顺序来描述的输入数据输入汇编阶段。
IAGetVertexBuffers :获取顶点缓冲区的输入汇编阶段的必然。
IASetIndexBuffer :索引缓冲区绑定到汇编器的输入阶段。
IASetInputLayout :输入布局对象绑定到汇编器的输入阶段。
IASetPrimitiveTopology :绑定信息的基本类型和数据顺序来描述的输入数据输入汇编阶段。
IASetVertexBuffers :顶点缓冲区数组绑定到汇编器的输入阶段。
这个过程其实是向管道传入四个对象:2个