Directx9.0 学习教程4 - 坐标系以及变换知识小记

坐标系

左图是左手坐标系    右图是右手坐标系

Direct3d用的是左手坐标系

顶点和法向

光栅化

变换

1世界变换

2观察变换

D3DXMATRIX out;

D3DXVECTOR3 eye(2,3,3);

D3DXVECTOR3 at(0,0,0);

D3DXVECTOR3 up(0,1,0);

D3DXMatrixLookAtLH(&out,&eye, &at, &up);

3.投影矩阵

他们的作用是

世界矩阵把 local坐标变为世界坐标

观察矩阵把世界坐标变为摄像机坐标

投影矩阵把摄像机坐标变为屏幕坐标

时间: 2024-08-26 07:12:00

Directx9.0 学习教程4 - 坐标系以及变换知识小记的相关文章

Directx9.0 学习教程1 - 第一个程序

在图书馆选了N本书,还是觉得直接讲代码的书更适合我,一个完整的列子加上些许注释,比那些一上来就是一大段一大段的文字阐述的教程容易懂的多. 因此我的笔记也开始用这种方式记录. 写在开头:  dx(我对directx简称) dx的版本主要有9 和11这两种系列. API和功能差异还是笔记大的. 但是手头dx9的书笔记齐全. 就开始看dx9 了.而且学习从来都是学习他的思想,尽管可能换版本要换配置环境,或者换api ,但是大概思想是不变的.学了总有好处. 下面是学习这本书的第一个列子. 说白了就是个v

Directx9.0 学习教程2 - 使用DXUT框架

DXUT框架是 samples例子的一个公共框架.非常方便的把很多本来需要复杂.而且重复的操作,都封装了起来. 使用步骤非常简单 C:\Program Files\Microsoft DirectX SDK (June 2010)\Samples\SampleBrowser 在SDK安装目录下面  有一个SampleBrowser文件.打开 然后根据自己的版本,选择如上, EmptyProject工程 然后 InstallProject 自动安装完成后.打开工程.Clean一下工程 ,防止缓存出

Directx9.0 学习教程5 光照

光照 1.      首先需要定义这样的顶点结构 struct CUSTOMVERTEX { D3DXVECTOR3position; // 顶点 D3DXVECTOR3normal; // 法向量 }; // Custom flexible vertex format (FVF). #define D3DFVF_CUSTOMVERTEX (D3DFVF_XYZ|D3DFVF_NORMAL) 2. 然后创建一个圆柱体顶点模型 // Create the vertex buffer. if( FA

Directx9.0 学习教程3 -图形学之创建点 线 三角形 等

1.首先 介绍点的表示方法 struct CUSTOMVERTEX { float x,y,z; }; CUSTOMVERTEX Vertices[] = { {-5.0, -5.0, 0.0}, { 0.0, 5.0, 0.0}, { 5.0, -5.0, 0.0}, {10.0, 5.0, 0.0}, {15.0, -5.0, 0.0}, {20.0, 5.0, 0.0} }; 点的渲染方法--D3DPT_POINTLIST 主要是这个. 点列表 // // It is assumed th

Bootstrap3.0学习教程十七:JavaScript插件模态框

这篇文章中我们主要来学习一下JavaScipt插件模态框.在学习模态框之前,我们先来了解一下JavaScript插件吧. JavaScript插件概览 插件可以单个引入(使用Bootstrap提供的单个*.js文件),或一次性全部引入(使用bootstrap.js或压缩版的bootstrap.min.js). 不要将两份文件全部引入 bootstrap.js和bootstrap.min.js同样是包含了所有插件.区别是:一个没有压缩,一个进行了压缩. 插件之间的依赖 某些插件和CSS组件依赖于其

Python Flask高级编程之从0到1开发《鱼书》精品项目 学习 教程??

Python Flask高级编程之从0到1开发<鱼书>精品项目 学习教程 一 .安装环境我们使用 flask web框架,并用 sqlalchemy来做数据库映射,并使用 migrate做数据迁移. $ pip install flask $ pip install SQLAlchemy==0.7.9 $ pip install flask-sqlalchemy $ pip install flask-migrate$ pip install sqlalchemy-migrate 二.建立项目

spring4.0.6最新稳定版新特性学习,简单学习教程(一)

Spring Framework 4.0 学习整理. Spring框架的核心部分就是Ioc容器,而Ioc控制的就是各种Bean,一个Spring项目的水平往往从其XML配置文件内容就能略知一二,很多项目,往往是外包公司的项目,配置文件往往是乱七八糟,抱着能跑就行,不报错就行的态度去写,然后在项目中后期发现各种缺失又去一通乱补,其结果就是,整个文档可读性极差,毫无章法.这也不能怪写这个XML的人,拿着苦逼程序员的工资干着架构师的工作必然是这个结果.为了程序员的幸福,我认为有必要来一套简单快速的官方

Deep Learning九之深度学习UFLDL教程:linear decoder_exercise(斯坦福大学深度学习教程)

前言 实验内容:Exercise:Learning color features with Sparse Autoencoders.即:利用线性解码器,从100000张8*8的RGB图像块中提取彩色特征,这些特征会被用于下一节的练习 理论知识:线性解码器和http://www.cnblogs.com/tornadomeet/archive/2013/04/08/3007435.html 实验基础说明: 1.为什么要用线性解码器,而不用前面用过的栈式自编码器等?即:线性解码器的作用? 这一点,Ng

理解SVG坐标系统和变换: transform属性

SVG元素可以通过缩放,移动,倾斜和旋转来变换-类似HTML元素使用CSS transform来变换.然而,当涉及到坐标系时这些变换所产生的影响必然有一定差别.在这篇文章中我们讨论SVG的transform属性和CSS属性,包括如何使用,以及你必须知道的关于SVG坐标系变换的知识. 这是我写的SVG坐标系统和变换部分的第二篇.在第一篇中,包括了任何要理解SVG坐标系统基础的需要知道的内容:更具体的是, SVG viewport, viewBox 和 preserveAspectRatio 属性.