DirectX Rendering Pipeline / DirectX渲染管线

渲染管线就是在给定一个3D场景和摄像机时,根据摄像机的视角生成一幅2D图像的一系列步骤,类似于流水线作业。 一、IA-从内存读取几何数据(顶点和索引) ID3D10InputLayout 输入布局 1. 创建一个D3D1_INPUT_ELEMENT_DESC结构体 2. 调用CreateInputLayout方法 ID3D10Buffer 缓冲区 1. 创建一个D3D10_BUFFER_DESC结构体,描述要创建的缓冲区 2. 创建一个D3D10_SUBRESOURCE_DATA,指定缓冲区的初始化数据 3. 调用CreateBuffer方法 创建完顶点缓冲区(通过指定bindflag创建不同类型的缓冲区),需要绑定到设备的输入槽上(input slot),这样的话顶点数据就会进入pipeline。 ID3D10Device::IASetVertexBuffers(…) 把顶点缓冲区指定好输入槽只是绘制前的准备工作,需要调用ID3DDevice::Draw方法来进行绘制 图元拓补(Primitive Topology),顶点缓冲区只是一个顶点列表,设备不知道如何解释这些顶点,这就需要设置图元拓补来告诉Device如何解释这些顶点来构成图元,IASetPrimitiveTopology() typedef enum D3D10_PRIMITIVE_TOPOLOGY { D3D10_PRIMITIVE_TOPOLOGY_UNDEFINED = 0, D3D10_PRIMITIVE_TOPOLOGY_POINTLIST = 1, D3D10_PRIMITIVE_TOPOLOGY_LINELIST = 2, D3D10_PRIMITIVE_TOPOLOGY_LINESTRIP = 3, D3D10_PRIMITIVE_TOPOLOGY_TRIANGLELIST = 4,  //三角形列表,每三个顶点构成一个三角形 D3D10_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP = 5, D3D10_PRIMITIVE_TOPOLOGY_LINELIST_ADJ = 10, D3D10_PRIMITIVE_TOPOLOGY_LINESTRIP_ADJ = 11, D3D10_PRIMITIVE_TOPOLOGY_TRIANGLELIST_ADJ = 12, D3D10_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP_ADJ…

after install fedora 21

1. install the rpm fusion free/nonfree source http://rpmfusion.org/Configuration 2. 11 Things to Do After You Install Fedora 21 http://www.linux.com/learn/tutorials/798308-11-things-to-do-after-you-install-fedora-21

Ansi, Unicode, Unicode big endian, UTF-8 不同编码文件类型区分

Ansi, 只存储ASC字符,每个字符占1个字节。比如abc存成Ansi文件,大小为3字节。 二进制表示: 61 62 63 Unicode, 每个unicode字符占2个字节,可以表示各种字符。在unicode的文件的头两个字节存储FF FE,用来表示这是一个Unicode文件。比如abc存成Unicode文件,大小为2*3+2 = 8字节。 文件的二进制表示: FF FE 61 00 62 00 63 00, a编码为61 00, 占连个字节,编码从高字节开始。 Unicode big endian, 存储大小与Unicode一致,头2个字节为FE FF, 字符编码变为从低字节开始。 例如字符a的编码为 00 61,所以abc存成Unicode big endian文件的二进制表示为: FE FF 00 61 00 62 00 63 UTF-8, 前三个字节保存为EF BB BF表示该文件为用UTF-8为字符编码,Ansi字符占一个字节,UTF-8用1到6个字节编码UNICODE字符。 Abc的utf-8表示即为EF BB BF 61 62 63

中国老照片,从国外转来的

China Before the Rule of Mao Zedong Friday 04.08.2011 , Posted by Benjamin Starr Men Laden With Tea, Sichuan Sheng, China [1908] Ernest H. Wilson This superb collection of vintage photographs from China capture a spectacular land of diversity filled with wealthy merchants, beggars in poverty and fantastic architecture before tourists. Taken between 1870 and 1946, each image…

策略模式

#include <iostream>   using namespace std;   class StrategyInterface {     public:         virtual void execute() = 0; };   class ConcreteStrategyA: public StrategyInterface {     public:         virtual void execute()         {             cout << "Called ConcreteStrategyA execute…

vim启动慢, E138

最近系统换成了windows 8, 装上gvim7.4, 结果启动、关闭巨慢无比。 关闭的时候会有个E138错误, 写H:\_viminfo文件错误,H盘是我的一个远程共享盘,速度比较慢,估计是这个原因导致vim速度慢,在cmd中查看我的环境变量发现是HOME指向了H盘,修改成本地盘后,问题解决!

vim 纵向编辑

在windows下要使用CTRL+Q键进入块编辑模式 比如要编辑多行文字的某些列时,使用块编辑就非常高效   举例说明 tesa tesb tesc 如果想把最后一个字符改成t 1. 命令模式下,让光标定位到第一行的最后一个字符 2. CTRL+Q进入块编辑模式 3.选中每行的最后一个字符 4.用r命令然后按t 5.ESC到命令模式发现全部改好了