您的位置:首页 > 其它

3D 常用公式

2013-09-02 11:50 92 查看
3D Program
常用公式

1

两个向量
A


B
的标量积

(
参见第五章
):


A
B
A
B
A
B
A
B
x
x
y
y
z
z






2

两个向量
A


B
的矢量积
(
参见第五章
):


A
B
i
A
A
B
B
j
A
A
B
B
k
A
A
B
B
i
j
k
A
A
A
B
B
B
y
z
y
z
x
z
x
z
x
y
x
y
x
y
z
x
y
z

































det
det
det
det


4
平移变换,
t
t
x
y
,

t
z
描述平移
(
参见第二章
):





x
y
z
t
t
t
x
y
z
x
y
z
1
1
0
0
0
0
1
0
0
0
0
1
0
1
1


















5
缩放变换,
s
s
x
y
,

s
z
描述缩放
(
参见第二章
):





x
y
z
s
s
s
x
y
z
x
y
z
0
0
0
0
0
0
















6
3D
旋转变换,角度


,


描述旋转

(
参见第二章
):
左手
:


-z->+x

y




+y->-z

x




+x->+y

z





x
y
z
x
y
z
cos(
)
sin(
)
sin(
)
cos(
)
cos(
)
sin(
)
sin(
)
cos(
)
cos(
)
sin(
)
sin(
)
cos(
)












0
0
1
0
0
1
0
0
0
0
0
0
0
0
1








































7
透视变换,
focus

指定了透视缩短(
perspective foreshortening

(
参见第二章
):






x
y
z
focus
x
y
z
1
1
0
0
0
0
1
0
0
0
0
0
1
0
0
1
0
1
/



















既然在结果向量的最后一个元素不是
1
,通过乘上
1/(
z
/focus)
来归一化:


透视变换还有几个其它的问题。
比如说,
z=0
的点将被投影变换映射到哪里?要知道,
从上面的
公式中能看出,
z=0
的时候会导致计算错误。



另一个问题,
z
为负值的时候的计算会产生负坐标。我们看到的将会是对象(或对象的一部分)
被翻转过头了。但是,带有负
z
坐标的的对象在观察面的后面,躲在了观察者的身后。这样,我们实
际上看不到它了(至少是它的一部分)




解决这个问题的唯一的办法是保证没有无效的
Z
坐标


一条实现途径是对原始的点集进行
3D

剪(在后面章节中讨论
2D

3D
裁剪的细节)




8

逆纹理映射方程,
V
U
,
是纹理空间基(
basis
)在视空间的映射,
O
是纹理空间原
点在视空间的映射(参见第三章)
:


u
i
V
O
V
O
focus
j
V
O
V
O
focus
V
O
V
O
i
V
U
V
U
focus
j
V
U
V
U
focus
V
U
V
U
z
y
y
z
x
z
z
x
y
x
x
y
y
z
z
y
z
x
x
z
x
y
y
x























(
)
/
(
)
/
(
)
(
)
/
(
)
/
(
)



v
i
U
O
U
O
focus
j
U
O
U
O
focus
U
O
U
O
i
V
U
V
U
focus
j
V
U
V
U
focus
V
U
V
U
y
z
z
y
z
x
x
z
x
y
y
x
y
z
z
y
z
x
x
z
x
y
y
x























(
)
/
(
)
/
(
)
(
)
/
(
)
/
(
)


11


线方程,
C
同向向量

co-directed vector


Q
是在直线上的点
(参见第五章)
:


X
Q
tC




11


面方程,
N
是法向量,
P
是平面上的点
(
参见第五章
):


(
)
X
P
N



0


12

方程,
M
是球心,
r
是其半径
(
参见第五章
):


(
)
X
M
r




11

找直线和平面的交点
(
参见第五章
):


X
Q
tC
X
P
N
Q
tC
P
N














(
)
(
)
0
0



tC
N
P
Q
N
t
P
Q
N
C
N









(
)
(
)


12

找直线和球的交点
(
参见第五章
):


X
Q
tC
X
M
X
M
r
Q
tC
M
Q
tC
M
r

















(
)
(
)
(
)
(
)
2
2



(
)(
)
(
)
Q
M
Q
M
tC
Q
M
t
C
C
r








2
0
2
2


16
H
ermite
平面曲线方程,

P
P
1
2
,
是端点,
V
V
1
2
,
是曲线在端点上的切线
(
参见第六章
):



x
t
y
t
t
t
t
P
P
V
V
(
)
(
)



































3
2
1
2
1
2
1
2
2
1
1
3
3
2
1
0
0
1
0
1
0
0
0


15
B
é
zier
平面曲线方程,
P
P
P
P
1
2
3
4
,
,
,
是其控制点
(
参见第六章
):



x
t
y
t
t
t
t
P
P
P
P
(
)
(
)



































3
2
1
2
3
4
1
1
3
3
1
3
6
3
0
3
3
0
0
1
0
0
0


16
3
D
双三次面片的一般形式,


G
包含控制点
(
参见第六章
):







x
t
s
y
t
s
z
t
s
t
t
t
M
G
M
s
s
s
T
(
,
)
(
,
)
(
,
)























3
2
3
2
1
1


16

境照明模型
(
参见第八章
):

I
K
I
reflected
object
ambient



17

反射照明模型
(
参见第八章
):

I
K
I
K
I
reflected
ambient
ambient
diffuse
i
directed
i



,
cos
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: