惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

J
Java Code Geeks
IT之家
IT之家
爱范儿
爱范儿
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
博客园_首页
Blog — PlanetScale
Blog — PlanetScale
V
Visual Studio Blog
云风的 BLOG
云风的 BLOG
MyScale Blog
MyScale Blog
阮一峰的网络日志
阮一峰的网络日志
Stack Overflow Blog
Stack Overflow Blog
酷 壳 – CoolShell
酷 壳 – CoolShell
GbyAI
GbyAI
V
V2EX
N
Netflix TechBlog - Medium
Vercel News
Vercel News
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
T
The Blog of Author Tim Ferriss
量子位
博客园 - Franky
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
博客园 - 司徒正美
月光博客
月光博客
F
Fortinet All Blogs

博客园 - effulgent

D3D11中的MSAA 对SCHEME的一些理解(4) Photoshop DDS转化插件的一些问题 对scheme的一些理解(3) 对SCHEME的一些理解(2) 对SCHEME的一些理解(1) 整数二进制补码的数学原理(two's complement) Vray的全局照明(Global Illumination)算法原理与比较(图文) 关于D3D9显示格式的解释 关于光栅化和MSAA的一些讨论 程序员面对分歧和难题应当具备的态度 CGDC见闻 RV870和GT300的一些猜测 在游戏中充分利用可编程的GPU 并行编程的基础 深入理解Direct3D9 深入理解GPU Architecture(上) 深入理解Intel Core Microarchitecture 星际2的一些技术特性
坐标变换
effulgent · 2009-08-07 · via 博客园 - effulgent

    图形学数学基础中,总能看见把(x,y,z,1)称为齐次坐标,而把(x,y,z)称为普通坐标,我觉得可能理解有问题,当然我对数学也知之甚少,希望一起讨论。首先我们必须清楚,何为“齐次”,从名字上来讲应该就是未知数次数相等的意思,齐次方程、齐次坐标应该都是这个意思。我们使用的3D坐标为(x,y,z),所有分量均为一次的,所以叫齐次坐标,依理4D坐标(x,y,z,w)也应该是齐次坐标。我觉得准确的说法应该是:把3D齐次坐标(x,y,z)增加一个一次分量w,变为4D齐次坐标(x,y,z,w)。实际上计算机图形学中将3D齐次坐标变为4D齐次坐标,纯粹是为了统一计算,明了表示,没什么其他。将定义在w=1平面上的所有点,定义为3D空间坐标的集合,而w=0时,因为x/w=0 == w(无穷)/1,所以w=0平面上的点经过仿射变换,其实就是w=1平面上无穷远处的点,定义为方向(向量)。所以严格来说(x,y,z,1)坐标为齐次坐标是错误的,很显然只有(x,y,z)(x,y,z,0)和(x,y,z,w)才是齐次的。
    程序中一般都使用右手坐标系,比如3DSMAX MAYA等等,但DX标新立异弄了个跟OPENGL相反的左手坐标系。其实当我们可以自己编写VS那刻起,这个问题就不在是个问题,数学上来说,只要在两个坐标系中使用完全一样的世界矩阵,相机矩阵和投影矩阵就能得到一模一样的结果,以前之所以困惑是因为OPENGL的固定流水线的投影矩阵是将Z进行了负向嵌位,现在顶点变换开放了,随便怎么写都可以,完全可以实现一个非对称投影矩阵做特殊效果。