0
Tải bản đầy đủ (.pdf) (146 trang)

Câc băng B-Spline

Một phần của tài liệu GIÁO TRÌNH LÝ THUYẾT ĐỒ HỌA (Trang 85 -89 )

Câc hăm B-Spline có thểựược sử dụng trong dạng tắch Tensor thay cho câc ựa thức Bernstein ựể ựạt ựược tắnh kiểm soât cao hơn khi thiết kế mặt cong. điều ựó có nghĩa ta sẽ thay phương trình (**) thănh:

P(u,v) = i M =

0 k L =

0

Pi,k.Ni,m(u).Nk,m(v)

Khối ựa diện kiểm soât gồm có (L+1).(M+1) ựiểm kiểm soât; u,v biến thiắn từ 0 tới giâ trị nút lớn nhất trong câc vector nút tương ứng của chúng.

Chương VỊ Thiết kếựường cong vă mt cong Bezier vă B-Spline

82

đối với câc băng B-Spline, người ta vẫn dùng câc B-Spline bậc 4. Do việc chọn số ựiểm kiểm soât lă không giới hạn nắn có thể tạo ra nhiều dạng mặt cong rất phức tạp.

Tất nhiắn khi thiết kế, ta phải chọn khối ựa diện nút ựể tạo ra mặt có dạng mong muốn.

KHỬ đƯỜNG VĂ MT KHUT

7.1. CÂC KHÂI NIM

Một vật thể 3D có thể biểu diễn trong mây tắnh bằng nhiều mô hình khâc nhau, song hai mô hình phổ biến nhất ựó lă mô hình khung dđy (WireFrame) vă mô hình câc mt

a giâc ( Polygon mesh model)

Ớ Mô hình WireFrame: đê trình băy ở chương 5, nó cho ta hình dâng của vật thể dưới dạng một bộ khung

Ớ Mô hình câc mặt ựa giâc: ở ựđy một vật thể 3D ựược xâc ựịnh thông qua câc mặt (thay vì câc cạnh như trong mô hình WireFrame), vă mỗi một mặt lại ựược xâc ựịnh thông qua câc ựiểm mă câc ựiểm năy ựược xem như lă câc ựỉnh của mặt ựa giâc, với mô hình câc mặt ựa giâc thì chúng ta không chỉ tạo ra ựược hình dâng của vật thể như mô hình Wireframe mă còn thể hiện ựược câc ựặc tắnh về mău sắc vă nhiều tắnh chất khâc của vật thể. Song ựể có thể mô tả vật thể 3D một câch trung thực (như trong thế giới

thực) thì ựòi hỏi người lập trình phải tắnh toân vă giả lập nhiều thông tin, mă mấu chốt lă vấn ựề khử mặt khuất vă chiếu sâng.Trong chương năy chúng ta sẽ tập trung nghiắn cứu vấn ựề khử mặt khuất.

Vắ dụ: Mô tả vật thể như trong hình 7.1.

- Danh sâch câc ựỉnh: 1,2,3,4,5,6

- Danh sâch câc mặt ựược xâc ựịnh theo bảng sau:

1 2 3 4 5 6 Mặt 3 Mặt 1 Mặt 4 Mặt 5 Mặt 2 Hình 7.1

Chương VIỊ Khửựường vă mt khut 84 1 2 3 4 5 1,2,3 4,5,6 1,3,6,4 3,2,5,6 1,2,5,4

Chúng ta có thểựưa ra nhiều cấu trúc dữ liệu khâc nhau ựể lưu trữ cho ựa giâc. Dưới ựđy lă phât thảo một kiểu cấu trúc:

Type Point3D = Record {đim 3 chiu}

x,y,z:real;

end;

Vector3D = Record {Vector 3 chiụ Mc dù nó ging vi

x,y,z:real; Point3D song ta vn khai ựể câc thut toân end; ựược tường minh}

RGBColor = Record {Cu trúc mău sc ca mt mt}

B,G,R:Byte;

end; KieuMat = Record

PhapVT:Vector3D; {Phâp vector ca mt}

Sodinh:cardinal; {Sốựỉnh ca mt}

List:array of integer;{Danh sâch th t câc ựỉnh to nắn mt. Ởựđy ta dùng mng ựộng}

Color:RGBColor; {mău sc ca mt}

end;

Obj3D = record {đối tượng 3 chiu}

ObjName:string; {Tắn ca ựối tượng}

Sodinh:cardinal; {Sốựỉnh}

Dinh: array of point3d; {Danh sâch ựỉnh. Ởựđy ta dùng kiu mng ựộng}

SoMat:cardinal; {S mt}

Xworld,Yworld,Zworld,Zoom:Real; {Toạựộ vă kắch thước tht ca vt trong h toạựộ thế gii}

end;

Khi căi ựặt cho một ứng dụng cụ thì việc sử dụng mảng cố ựịnh có thể gđy ra câc trở ngại về kắch thước tối ựa hay tối thiểu, cũng như việc sử dụng bộ nhớ không tối ưụ Vì thế ngoăi câch dùng mảng cố ựịnh, ta có thể dùng mảng ựộng trong một số ngôn ngữ như Visual Basic, Delphi hay Visual C++,Ầ hoặc dùng cấu trúc danh sâch móc nốị Song song với ựiều ựó lă việc bớt ựi hay ựưa thắm câc thuộc tắnh cần thiết ựể biểu diễn câc ựặc tắnh khâc của mặt hay của ựối tượng.

* Vn ựề kh mt khut

Khi thể hiện vật thể 3D, một vấn ựề nảy sinh lă lăm sao chỉ thể hiện câc mặt có thể nhìn thấy ựược mă không thể hiện câc mặt khuất phắa saụ Việc một mặt bị khuất hay không bị khuất thì tuỳ thuộc văo cấu trúc câc mặt của vật thể vă vị trắ của ựiểm nhìn cũng như bối cảnh mă vật thểựó ựược ựặt văọ

Một phần của tài liệu GIÁO TRÌNH LÝ THUYẾT ĐỒ HỌA (Trang 85 -89 )

×