ĐỒ HỌA MÁY TÍNH
Dương Anh Đức, Lê Đình Duy Giới thiệu về đồ họa 3 chiều 1/8
Đ
ĐĐ
Đ
Đ
ĐĐ
Đ
O
OO
O
O
OO
O
À
ÀÀ
À
À
ÀÀ
À
H
HH
H
H
HH
H
O
OO
O
O
OO
O
Ï
ÏÏ
Ï
Ï
ÏÏ
Ï
A
AA
A
A
AA
A
3
33
3
3
33
3
C
CC
C
C
CC
C
H
HH
H
H
HH
H
I
II
I
I
II
I
E
EE
E
E
EE
E
À
ÀÀ
À
À
ÀÀ
À
U
UU
U
U
UU
U
ĐỒ HỌA MÁY TÍNH
Dương Anh Đức, Lê Đình Duy Giới thiệu về đồ họa 3 chiều 2/8
D
D
a
a
ã
ã
n
n
n
n
h
h
a
a
ä
ä
p
p
• Các đối tượng trong thế giới thực phần lớn là các đối
tượng 3 chiều còn thiết bò hiển thò chỉ 2 chiều.
• Muốn có các hình ảnh 3 chiều ta cần giả lập.
• Chiến lược cơ bản là chuyển đổi từng bước. Hình ảnh sẽ
được hình thành từ từ, ngày càng chi tiết hơn.
• Qui trình hiển thò:
Modeling
Transformation
Trivial
Rejection
Illumination
Viewing
Transformation
Clipping
Projection
Rasterization
Display
Biến đổi từ hệ toạ độ đối tượng sang
hệ toạ độ thế giới thực
Loại bỏ các đối tượng không nhìn
thấy được
Chiếu sáng đối tượng
Chuyển từ world space sang eye space
Loại bỏ phần nằm ngoài viewing frustum
Chiếu từ eye space xuống screen space
Chuyển đối tượng sang dạng pixel
Hiển thò đối tượng
ĐỒ HỌA MÁY TÍNH
Dương Anh Đức, Lê Đình Duy Giới thiệu về đồ họa 3 chiều 3/8
C
C
a
a
ù
ù
c
c
v
v
a
a
ä
ä
t
t
t
t
h
h
e
e
å
å
3
3
D
D
đ
đ
ư
ư
ơ
ơ
ï
ï
c
c
b
b
i
i
e
e
å
å
u
u
d
d
i
i
e
e
ã
ã
n
n
n
n
h
h
ư
ư
t
t
h
h
e
e
á
á
n
n
a
a
ø
ø
o
o
?
?
• Point • Vector
• Line • Ray
• Triangle • Polygon
• Quadric curve • Spline
• Quadric solid • Curved surface
• v.v…
Đ
Đ
i
i
e
e
å
å
m
m
t
t
r
r
o
o
n
n
g
g
k
k
h
h
o
o
â
â
n
n
g
g
g
g
i
i
a
a
n
n
3
3
c
c
h
h
i
i
e
e
à
à
u
u
• Mô tả một vò trí trong không gian
typedef struct{
Coordinate x ;
Coordinate y ;
Coordinate z ;
}Point3D ;
3
3
D
D
v
v
e
e
c
c
t
t
o
o
r
r
• Mô tả một hướng và biên độ (magnitude)
♦
Xác đònh bởi 3 toạ độ dx, dy, dz
_
♦
♦
Magnitude
222
dzdydxV ++=
♦
♦
Không có vò trí trong không gian
•
• Tích vô hướng của 2 vector
♦
21212121
dzdzdydydxdxVV ++=•
♦
()
ΘcosVVVV
1121
=•
(x,y,z)
typedef struct {
Coordinate dx;
Coordinate dy;
Coordinate dz;
}Vector;
ĐỒ HỌA MÁY TÍNH
Dương Anh Đức, Lê Đình Duy Giới thiệu về đồ họa 3 chiều 4/8
Đ
Đ
o
o
a
a
ï
ï
n
n
t
t
h
h
a
a
ú
ú
n
n
g
g
t
t
r
r
o
o
n
n
g
g
k
k
h
h
o
o
â
â
n
n
g
g
g
g
i
i
a
a
n
n
3
3
c
c
h
h
i
i
e
e
à
à
u
u
• Biểu diễn tổ hợp tuyến tính của 2 điểm.
♦
Biểu diễn dạng tham số của đoạn thẳng
P = P
1
+ t (P
2
- P
1
), (0 ≤ t ≤ 1)
T
T
i
i
a
a
(
(
R
R
a
a
y
y
)
)
• Là một đoạn thẳng với một đầu nằm ở vô cực.
♦
Biểu diễn dạng tham số của tia
P = P
1
+ t V, (0 ≤ t <∞)
Đ
Đ
ư
ư
ơ
ơ
ø
ø
n
n
g
g
t
t
h
h
a
a
ú
ú
n
n
g
g
(
(
L
L
i
i
n
n
e
e
)
)
• Là một đoạn thẳng với cả hai đầu nằm ở vô cực.
♦
Biểu diễn dạng tham số của đường thẳng
P = P
1
+ t V, (-∞<t <∞)
typedef struct {
Point P1;
Point P2;
}Segment;
P
1
P
2
typedef struct {
Point P1;
Vector V;
}Ray;
P
V
typedef struct {
Point P1;
Vector V;
}Line;
P
V
ĐỒ HỌA MÁY TÍNH
Dương Anh Đức, Lê Đình Duy Giới thiệu về đồ họa 3 chiều 5/8
M
M
a
a
ë
ë
t
t
p
p
h
h
a
a
ú
ú
n
n
g
g
(
(
P
P
l
l
a
a
n
n
e
e
)
)
• Là một đoạn thẳng với cả hai đầu nằm ở vô cực.
♦
Biểu diễn của mặt phẳng
P.N + d = 0
hoặc
ax + by + cz + d = 0
Đ
Đ
a
a
g
g
i
i
a
a
ù
ù
c
c
(
(
P
P
o
o
l
l
y
y
g
g
o
o
n
n
)
)
• Là một vùng giới hạn bởi dãy các điểm đồng phẳng.
♦
Tam giác,
♦
Tứ giác,
♦
Đa giác lồi,
♦
Đa giác lõm,
♦
Đa giác tự cắt,
♦
Đa giác có lỗ
♦
Các điểm được cho theo thứ tự ngược chiều kim đồng hồ
typedef struct {
Vector N;
Distance d;
}Plane;
typedef struct {
Point *Points;
int nPoints;
}Polygon;