游戏开发论坛

 找回密码
 立即注册
搜索
查看: 1513|回复: 2

这样的要求有可能实现嘛?透视投影的问题

[复制链接]

12

主题

21

帖子

27

积分

注册会员

Rank: 2

积分
27
发表于 2008-5-1 08:24:00 | 显示全部楼层 |阅读模式
对于一个立体的网格,把它放到不同的世界坐标中.通过变换使它在屏幕上的图象保持一致,只是屏幕坐标不同.
对于2d图片来说只要根据比例缩放世界坐标就可以了。3d的网格应该怎么做? [em24]

362

主题

3023

帖子

3553

积分

论坛元老

Rank: 8Rank: 8

积分
3553
发表于 2008-5-2 21:59:00 | 显示全部楼层

Re:这样的要求有可能实现嘛?透视投影的问题

解方程即可。

首先需要明确一个概念性的错误:“世界坐标”只有唯一的一个!
你所说的“不同的”世界坐标,指的是几个不同的 孩子 坐标系!

(**这里按照D3D习惯,默认使用行向量,与数学书不同)

设某顶点坐标为 p = [ x,y,z,1 ],定义在 物体 空间中。

我们有2个 孩子 坐标系,设 从 孩子 空间变换到世界空间的矩阵分别为 W1, W2

假设View,Projection矩阵不变,分别为 V,P。

假设你所期望的,对顶点 p 的变换分别为 M1, M2 。
(即,从物体空间变换到2个孩子空间)

则有:

p * M1 * W1 * V * P  ==  p * M2 * W2 * V * P

即 M1 * W1  ==  M2 * W2

其中M1,M2是未知的,所以无法给出具体的M1,M2的值。
(这是当然的拉!你根本没有告诉我你想看到什么样的图形!)

不过M1,M2的关系可以求出来:
M1 * W1  ==  M2 * W2

假设 M1 是已知的,那么可以求得 M2:
( M1 * W1 ) * (W2)-1  ==  ( M2 * W2 ) * (W2)-1

  M1 * W1 * (W2)-1  ==  M2








362

主题

3023

帖子

3553

积分

论坛元老

Rank: 8Rank: 8

积分
3553
发表于 2008-5-3 12:20:00 | 显示全部楼层

Re:这样的要求有可能实现嘛?透视投影的问题

____________________________________________________________
|首先需要明确一个概念性的错误:“世界坐标”只有唯一的一个!|
|你所说的“不同的”世界坐标,指的是几个不同的 孩子 坐标系!|
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
从另外一个角度来说,“概念性的错误”这句话我说错了。
“不同的”世界坐标(孩子空间中的坐标),
也可以看作是独一无二的世界坐标的不同的基底的向量展开式。
即,从世界空间变换到孩子空间的变换,也就是,基变换,从标准基集转换成其他基集。

D3DXMatrixLookAtLH() 利用的就是平移原点 -> 基变换
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2026-1-22 15:23

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表