3D Modeling
1
Định nghĩa
Mô hình hoá 3D (3D modeling) là quá trình
phát triển một biểu diễn toán học, khung
lưới của bất kỳ một đối tượng 3D nào.
Sản phẩm của quá trình này là một mô hình
3D (3D model).
2
Biểu diễn vật thể 3D
•
•
•
•
•
•
•
Point
Vector
Line
Ray
Polygon
Spline
Surface
Điểm
Vectơ
Đường thẳng
Tia
Đa giác
Mặt cong
– Quadric surface
– Ruled surface
Mặt bậc 2
Mặt qui luật
3
3D Point
Mô tả một vị trí trong không gian
struct
{
double
double
double
} Point3D;
x;
y;
z;
P(x,y,z)
4
3D Vector
Mô tả hướng và độ lớn.
struct
{
double
dx;
double
dy;
double
dz;
} Vector3D;
– Xác định bởi tọa độ dx, dy, dz
– Độ lớn ||V|| = (dx2 + dy2 + dz2) 1/2
V(dx,dy,dz)
Tích vô hướng của 2 vector:
V1 . V2 = dx1dx2 + dy1dy2 + dz1dz2 = ||V1|| ||V2|| cos(V1,V2)
5
3D Segment
Nối 2 điểm trong không gian
P2
struct
{
Point3D P1;
Point3D P2;
} Segment3D;
Biểu diễn dưới dạng tham số:
P
P1
P = P1 + t (P2 – P1), (0 <= t <= 1)
6
3D Segment
Nối 2 điểm trong không gian
P2
struct
{
Point3D P1;
Point3D P2;
} Segment3D;
Biểu diễn dưới dạng tham số:
P
P1
P = P1 + t (P2 – P1), (0 <= t <= 1)
7
3D Ray
struct
{
Point3D P;
Vector3D V;
} Ray3D;
Biểu diễn dưới dạng tham số:
P’ = P + t V , t >=0
V
P’
P
8
3D Line
struct
{
Point3D P;
Vector3D V;
} Line3D;
Biểu diễn dưới dạng tham số:
P’ = P + t V
V
P’
P
9
Plane
struct
{
Vector
double
} Plane;
N;
d;
// Vector pháp tuyến
// Khoảng cách2 đến gốc tọa độ
Phương trình chính tắc của mặt phẳng:
P.N + d = 0
ax + by + cz + d =0
N
10
3D Polygon
Các điểm trên đa giác đồng phẳng
struct
{
Point3D points[MAXPOINTS];
int
n;
} Plane;
11
Surfaces
Phương trình tham số parametric equation:
P(u,v) = (x(u,v), y(u,v), z(u,v)) = x(u,v) I + y(u,v) J + z(u,v) K
Phương trình ẩn – implicit equation:
f(x, y, z) = 0
Biểu diễn mặt tròn:
P(u,v) = ( R cos(v) cos(u), R sin(v), R cos(v) sin(u))
Phương trình ẩn :
f(x, y, z) = x2 + y2 + z2 – R2
12
Curve Surfaces
• Ruled Surfaces: Mặt cong tạo bởi di chuyển một đường thẳng
trong không gian theo một kiểu nào đó.
• Surfaces of Revolution: Mặt cong tạo bởi di chuyển một đường
cong theo một trục.
• Quadric Surfaces: Mặt cong bậc hai theo x, y, z.
• Mặt cong được định nghĩa theo hàm số: z = f(x,y)
13
Ruled Surfaces
Định nghĩa:
Bất kì một điểm nào trên mặt cong đều thuộc một đường
thẳng nằm hoàn toàn trên mặt cong.
Cách tạo mặt cong:
• Xây dựng một đường thẳng xác định bởi 2 điểm p0 và p1:
p(v) = (1v) p0 + v p1
• Do p0 và p1 di chuyển trong không gian, nên chúng di chuyển
trên một đường cong khác: p0 trở thành p0(u) và p1 trở thành
p1(u).
• Khi p0 và p1 di chuyển sẽ tạo nên mặt có qui luật được xác
định:
P (u)
p1
p(u,v) = (1v) p0(u) + v p1(u)
p0
1
P0(u)
14
Ruled Surfaces
Định nghĩa:
Bất kì một điểm nào trên mặt cong đều thuộc một đường
thẳng nằm hoàn toàn trên mặt cong.
Cách tạo mặt cong:
• Xây dựng một đường thẳng xác định bởi 2 điểm p0 và p1:
p(v) = (1v) p0 + v p1
• Do p0 và p1 di chuyển trong không gian, nên chúng di chuyển
trên một đường cong khác: p0 trở thành p0(u) và p1 trở thành
p1(u).
• Khi p0 và p1 di chuyển sẽ tạo nên mặt có qui luật được xác
định:
p (u)
p1
p(u,v) = (1v) p0(u) + v p1(u)
p0
1
p0(u)
15
Ruled Surfaces Cylinders
Định nghĩa:
Cylinder được tạo bởi đường thẳng L (generator) di chuyển
theo một đường cong p(u) directrix. Khi L di chuyển, nó luôn
song song với nhau.
p(u)
16
Ruled Surfaces Cones
Định nghĩa:
Cylinder được tạo bởi đường thẳng di chuyển theo một đường
cong phẳng. Nhưng khi di chuyển nó đi qua một điểm cố định.
p1(u)
p0(u)
17
Ruled Surfaces – Bilinear Patches
Định nghĩa:
Mặt song tuyến tính được tạo bởi đường thẳng di chuyển mà
mỗi đầu của nó di chuyển theo một đường thẳng.
Xét 4 điểm p00, p01, p10, p11:
Xây dựng đường thẳng L qua p00 và p01.
Khi L di chuyển, điểm p00 di chuyển trên đường thẳng qua p00
và p10, điểm p10 di chuyển trên đường thẳng qua p10 và p11.
p10
p00
p11
p01
18
Surfaces of Revolution
Định nghĩa:
Mặt cong được tạo bởi quay một đường cong quay một trục.
19
Quadric Surfaces
Định nghĩa:
Mặt cong được tạo phương trình bậc 2 theo x, y,
z:
Ax2 + By2 + Cz2 + D = 0
• Ellipsoid
• Hyperbolic of one sheet
• Hyperbolic of two sheets
• Elliptic cone
• Elliptic paraboloid
• Hyperbolic paraboloid
20
Quadric Surfaces
• Ellipsoid
• Hyperbolic
• Elliptic cone
• Elliptic paraboloid
• Hyperbolic paraboloid
21
Wire Frame – Mô hình khung lưới
Mô tả hình dạng của đối tượng bằng 2 danh sách:
• Vertex List : Lưu trữ tọa độ các đỉnh
• Edge List
: Kết nối giữa các đỉnh với nhau
Vertex List
4
7
5
6
0
3
1
2
Vertex
x
y
z
0
0
0
0
1
1
0
0
2
1
0
1
3
0
0
1
4
5
6
7
22
Wire Frame – Mô hình khung lưới
Edge List
4
7
5
6
0
3
1
2
Edge
Vertex 1
Vertex 2
0
0
1
1
1
2
2
2
3
3
3
1
4
4
5
…
…
…
23
Wire Frame – Mô hình khung lưới
#define MAXVERTEX 50
#define MAXEDGES 100
Typedef struct
{
float x, y, z;
}POINT3D;
Typedef struct
{
int NumVerts;
int NunEdges;
POINT3D Vert[MaxVerts];
int Edge[MaxEdges][2];
}WIREFRAME;
24