Các phép biến đổi hình học có thể nghiên cứu bằng hai phương pháp - Phép biến đổi đối tượng object transformation : Thay đổi toạ độ các điểm tạo nên đối tượng mà không thay đổi hệ thống
Trang 1-
LUẬN VĂN THẠC SĨ KHOA HỌC
VẼ KỸ THUẬT THIẾT KẾ CƠ KHÍ DỰA TRÊN CƠ SỞ ĐỒ HOẠ MÁY TÍNH
NGÀNH :CƠ KHÍ
MÃ SỐ :
NGUYỄN THỊ THU NGA
NGƯỜI HƯỚNG DẪN KHOA HỌC : GS.TSKH LÊ HÙNG SƠN
HÀ NỘI 2005
Trang 2Tuy nhiên xét về phương diện kỹ thuật, khi thiết kế bản vẽ kỹ thuật thì việc mô phỏng các cơ cấu máy móc không chỉ đòi hỏi ở việc mô phỏng hình học hay mô phỏng động dưới dạng hoạt hình mà còn cần phải mô phỏng cả quá trình hoạt động cũng như lắp ráp các chi tiết theo các thông số kỹ thuật và
ta có thể can thiệp được vào các thông số kỹ thuật đó
Đối với ngành cơ khí, việc mô phỏng hoạt động của các máy móc và quá trình lắp ráp chi tiết là rất cần thiết vì nó không những diễn tả được quá trình hoạt động, lắp ráp của máy móc mà còn giúp đánh giá được ưu nhược điểm về mặt cấu trúc hình học, cũng như các thông số kỹ thuật của đối tượng công nghệ, tối ưu các quá trình khảo sát, tính toán, thiết kế và chế tạo sản phẩm
Dưới góc độ của một người giảng dạy vẽ kỹ thuật, luận văn tập trung vào việc xem xét những ứng dụng của đồ hoạ máy tính trong vẽ kỹ thuật thiết
kế cơ khí, cụ thể là giải quyết vấn đề mô phỏng hoạt động và lắp ráp nêu trên
và mô phỏng một bản vẽ kỹ thuật cơ khí
Trang 3Mục tiêu của luận văn là sử dụng được những kiến thức cơ sở của đồ hoạ máy tính cho việc giải quyết các bài toán mô phỏng, đặc biệt là mô phỏng động Từ đó mô phỏng hoạt động và quá trình lắp ráp của các cơ cấu truyền động trong Cơ khí bao gồm: Bộ truyền động ma sát, bộ truyền động bánh răng, bộ truyền động bánh vít-trục vít, bộ truyền động xích, bộ truyền động đai và bộ truyền động vít-đai ốc Đồng thời sử dụng đồ hoạ máy tính để mô phỏng một bản vẽ lắp, cụ thể là bản vẽ lắp của một hộp giảm tốc, bao gồm nhiều cơ cấu truyền động
Với những mục tiêu được đề ra như trên luận văn mong muốn sẽ góp phần trong việc cải tiến việc giảng dạy môn vẽ kỹ thuật và chi tiết máy cho sinh viên ngành cơ khí, cung cấp cho sinh viên những hình ảnh mô phỏng 3D trực quan Nhờ đó sinh viên có thể thấy rõ hơn cấu trúc hình học cũng như quá trình hoạt động lắp ráp của các chi tiết máy
Đồng thời, luận văn cũng sử dụng đồ hoạ máy tính để bước đầu xây dựng mô hình bản vẽ kỹ thuật mới Nó mang tính động, không bó hẹp trong phạm vi mặt phẳng tờ giấy như bản vẽ kỹ thuật truyền thống; không chỉ cung cấp cho người đọc những bản vẽ kỹ thuật hai chiều mà còn mô phỏng ba chiều quá trình hoạt động cũng như quá trình lắp ráp của máy móc tương ứng với các thông số kỹ thuật của nó
Trang 4CHƯƠNG I
CƠ SỞ ĐỒ HOẠ MÁY TÍNH VÀ MÔ HÌNH HOÁ HÌNH HỌC 1.1 Hệ toạ độ
1.1.1 Hệ toạ độ Descartes
*Không gian hai chiều:
Trong lĩnh vực đồ hoạ máy tính, hình dạng và kích thước của một đối tượng hai chiều đặc trưng bằng một mô tả số hai chiều quan hệ với một hệ thống toạ độ Decarte x,y
Các điểm trong không gian 2 chiều được tương ứng 1-1 với cặp 2 số thực Một điểm bất kì trong không gian 2D (trên mặt phẳng) có thể được biểu diễn bởi cặp (x,y), mỗi cặp số thực (x,y) biểu diễn một điểm tương ứng trong mặt phẳng
Hình 1.1 Hệ toạ độ Decarte hai chiều
*Không gian ba chiều:
Các đối tượng ba chiều thường được tạo trong hệ thống toạ độ thực ba chiều và sau đó ánh xạ sang hệ thống hai chiều để hiển thị
Các điểm trong không gian 3 chiều được tương ứng 1-1 với bộ 3 số thực Một điểm bất kì trong không gian 3D có thể được biểu diễn bởi bộ ba số thực (x,y,z), mỗi bộ ba số thực (x,y,z) biểu diễn một điểm tương ứng trong
không gian
y
x
(x,y) ))
x
O
y
Trang 5Chiều các trục toạ độ trong hệ trục ba chiều có thể tuân theo quy luật bàn tay phải hoặc bàn tay trái
Hình 1.2 Hệ toạ độ theo quy ước bàn tay phải(a) và trái(b)
1.1.2 Hệ toạ độ trụ và hệ toạ độ cầu
Trong không gian ba chiều, ngoài hệ toạ độ Decarte thông thường ta còn sử dụng hệ toạ độ trụ và hệ toạ độ cầu
• Hệ toạ độ trụ (Hình 1.3 (a))
Một điểm M R được đặc trưng bởi ba thông số:
x = rcos(); y = rsin () z = z
r = x 2 y2 = arctan (y/x) z = z
Như trên Hình 1.3.(a), đoạn thẳng PP' sẽ quét lên một mặt trụ bao
quanh trục z khi góc thay đổi
• Hệ toạ độ cầu (Hình 1.3 (b))
Một điểm M R được đặc trưng bởi ba thông số:
x = rcos() sin () y = rsin() sin() z = rcos()
r = x2 y2 z2 = arctan(y/x) = arccos(z/r)
Trang 6Hình 1.3: Hệ toạ độ trụ (a) và hệ toạ độ cầu (b)
1.1.3 Hệ toạ độ thuần nhất
Trong đồ hoạ máy tính người ta thường sử dụng và tính toán trên ma trận trợ giúp cho các định nghĩa hình học và thao tác trong các ứng dụng đồ hoạ máy tính Tuy nhiên việc sử dụng toạ độ Decarte thường loại bỏ khả năng này bởi vì một vài phép biến đổi hình học được tạo ra bằng phương pháp ma trận, một số khác tạo ra bằng phép cộng vectơ Để khắc phục vấn đề này, hệ toạ đồ thuần nhất được sử dụng thay cho hệ toạ độ Decarte trong lĩnh vực đồ hoạ máy tính và mô hình hoá hình học
Hình 1.4: Hệ toạ độ thuần nhất
Trang 7Điểm (x,y,z) được biểu diễn dưới dạng toạ độ thuần nhất là
wx wy wz w
đó w 0 là hằng số bất kỳ gọi là "trọng số" Như vậy mỗi một giá trị của trọng số ta có một tọa độ thuần nhất khác nhau Trong hầu hết các hệ đồ hoạ máy tính, trọng số thường được chọn là w = 1 Một điểm (x,y,z) tổng quát
được biểu diễn dạng đơn giản nhất dưới dạng
1.2 Các phép biến đổi hình học cơ sở trong đồ họa
Các phép biến đổi là một phần quan trọng trong đồ họa máy tính Các phép biến đổi hình học sẽ làm thay đổi toạ độ của các đối tượng, từ đó làm cho đối tượng bị thay đổi về hình dạng, hướng, kích thước Nó có ý nghĩa quan trọng trong việc tạo và quan sát các mô hình, mô phỏng chuyển động…
Các phép biến đổi hình học cơ sở bao gồm: Tịnh tiến (translation), quay (rotation) và biến đổi tỉ lệ (scaling) Ngoài ra, một số phép biến đổi khác cũng thường được áp dụng như phép đối xứng (reflection) và biến dạng (shearing)
Các phép biến đổi hình học có thể nghiên cứu bằng hai phương pháp
- Phép biến đổi đối tượng (object transformation) :
Thay đổi toạ độ các điểm tạo nên đối tượng mà không thay đổi
hệ thống toạ độ
- Phép biến đổi toạ độ (coordinate tranformation):
Tạo ra hệ thống toạ độ mới và biểu diễn tất cả các điểm thành theo hệ thống toạ độ mới này
Trang 81.2.1 Các phép biến đổi hình học hai chiều
Phép biến đổi hai chiếu biến điểm P trong mặt phẳng thành điểm có toạ
độ mới Q theo một qui tắc nào đó Về bản chất, một phép biến đổi điểm là
thêm các giá trị mô tả độ dời
vào các toạ độ của P Nếu gọi
Trang 9(trx, try) còn được gọi là vector tịnh tiến hay vector độ dời Ta có thể dịch chuyển toàn bộ đối tượng bằng cách áp dụng qui tắc trên cho mọi điểm thuộc đối tượng
1.2.1.2 Phép quay
Là phép làm thay
đổi hướng của đối tượng
Một phép quay đòi hỏi
phải có tâm quay, góc
quay Góc quay dương
thường được quy ước là
chiều ngược kim đồng hồ
Ta có công thức biến đổi
của phép quay điểm P(x,y)
làm thay đổi kích thước đối
tượng Để co hay giãn toạ
độ của một điểm P(x,y) theo
Trang 10x' = Sxx
y' = Syy Khi các giá trị Sx, Sy nhỏ hơn 1, phép biến đổi sẽ thu nhỏ đối tượng, ngược lại phép biến đổi sẽ phóng lớn đối tượng Khi Sx, Sy bằng nhau ta gọi là phép đồng dạng Tâm tỉ lệ không bao giờ bị thay đổi qua phép biến đổi tỉ lệ
1.2.1.4 Biểu diễn ma trận của phép biến đổi
Ma trận được sử dụng trong hệ thống đồ họa 2D và 3D để thực hiện các phép biến đổi affine chuẩn như phép tịnh tiến, phép quay và phép tỉ lệ Đó là một phần quan trọng trong việc mô hình hoá, hiển thị và quá trình thay đổi tỉ
lệ Hiển thị phối cảnh cũng được mô tả bằng phương pháp ma trận Có thể nói các phương pháp sử dụng ma trận là vấn đề chính đối với hầu hết các hệ thống đồ hoạ máy tính
Nếu biểu diễn điểm (x,y) dưới dạng ma trận yx Ta có
'
t
ty
xy
0 sy
x
y
x '
sin
)sin(
)cos(
y
x
' '
k1y
' '
Trang 11• Phép biến dạng theo hướng trục y
k1y
x
y
y '
'
Với cách biểu diễn trên sẽ gây ra khó khăn khi kết hợp các phép biến đổi với nhau vì biểu diễn của phép tịnh tiến khác với dạng của các phép biến đổi tỉ lệ và quay Chính vì vậy mà người ta sử dụng hệ toạ độ thuần nhất để đưa các phép biến đối về một dạng duy nhất
Các phép biến đổi được biểu diễn qua hệ toạ độ thuần nhất như sau:
x)s,s(S1yx
1 0 0
0 s 0
0 0 s1
y
x
y x y
x '
x)(R1yx
0 0
)cos(
)sin(
)sin(
)cos(
-1y
x
' '
x)k(Sh1
yx
1 0 0
0 0
0 k11
y
x
x y
x '
x)k(Sh1
yx
1 0 0
0 1 k
0 0 11
y
x
y y y
' '
Trang 121.2.2 Các phép biến đổi hình học ba chiều
Các phép biến đổi trong đồ hoạ ba chiều là sự mở rộng của các phép biến đổi trong đồ hoạ hai chiều bằng cách xét thêm toạ độ thứ ba z
Một số tính chất của các phép biến đổi ba chiều
• Tính chất đường thẳng được bảo toàn, nghĩa là một đường thẳng khi biến đổi sẽ thành một đường thẳng
• Tính song song được bảo toàn Nghĩa là hai đường thẳng song song khi biến đổi sẽ thành hai đường thẳng song song
• Tính tỉ lệ về khoảng cách được bảo toàn Nghĩa là, ảnh của một điểm
P chia đoạn thẳng AB theo tỉ lệ f, sẽ chia đoạn thẳng A'B' theo tỉ lệ f,
A'B' là ảnh của đoạn thẳng AB
Trang 13• Quay quanh trục x: từ trục dương y đến trục dương z
• Quay quanh trục y: từ trục dương z đến trục dương x
• Quay quanh trục z: từ trục dương x đến trục dương y
Hình 1.8 Cách xác định chiều quay dương
Trang 14• Tịnh tiến trục k về gốc toạ thành trục k'
• Quay quanh trục x một góc để đặt trục k' nằm trên mặt phẳng Oxz thành trục k''
• Quay quanh trục y một góc để đưa trục k'' về trục z
1.2.2.4 Biểu diễn ma trận của phép biến đổi
Tương tự trong không gian hai chiều, ta biểu diễn các điểm trong không gian ba chiều (x, y, z) trong hệ toạ độ Descardes dưới dạng hệ toạ độ thuần
0 s 0 0
0 0 s 0
0 0 0 s
x y
0
0
0 )cos(
)sin(
0
0 )sin(
)cos(
0
0 0
0
1
Trang 15Quay quanh trục y:
Quay quanh truc z:
12.3 Kết hợp các phép biến đổi Afine
Quá trình áp dụng các phép biến đổi liên tiếp để tạo nên một phép biến đổi tổng thể được gọi là sự kết hợp các phép biến đổi (Composing transformation) Nếu ta thực hiện phép biến đổi affine lên P(x,y) được P' rồi lại thực hiện tiếp một phép biến đổi khác lên P', ta được điểm Q(x', y') Như vậy Q là ảnh của phép liên kết hợp hai phép biến đổi liên tiếp
Vậy kết hợp hai phép tịnh tiến là một phép tịnh tiến
Và nếu ta kết hợp nhiều phép tịnh tiến cũng cho một phép tịnh tiến
0
0
0 )cos(
0 )sin(
-0 0
1 0
0 )sin(
0 )cos(
0 0
0 )cos(
0 )sin(
-0 0
1 0
0 )sin(
0 )cos(
Trang 16Nếu phép biến đổi là phép tỉ lệ, điểm Q có toạ độ như sau
0 .s s 0
0 0 s s
1 0 0
0 s 0
0 0 s 1 0 0
0 s 0
0 0 s
y2 y1
x2 x1 y2
x2 y1
x1
Hay S1(sx1,sy).S2(sx2,sy2) = S(sx1.sx2,sy1.sy2)
Vậy kết hợp hai phép tỉ lệ cũng là một phép tỉ lệ Dễ dàng mở rộng cho kết quả: kết hợp nhiều tỉ lệ cũng là một phép tỉ lệ
1.3 Các phép quan sát ba chiều
1.3.1 Quy trình hiển thị đối tượng ba chiều
Hình 1.9 Quy trình hiển thị đối tượng 3 chiều
Trang 17Quy trình bắt đầu bằng việc xây dựng các mô hình đối tượng Các mô hình này thường được mô tả trong không gian ba chiều (x,y,z) Các mô hình thường thể hiện vật thể (solid) hoặc bề mặt (boundaries) của đối tượng Như
vậy ta có hai kiểu mô hình hóa Trong solid modeling các đối tượng đồ họa cơ
sở thường được dùng để mô tả các đối tượng có thể tích (volume) Trong
boundary representations(B-reps), các đối tượng được định nghĩa bởi bề mặt
của chúng
Các mô hình thường được biểu diễn trong một hệ tọa độ cục bộ, mà ta gọi là hệ tọa độ đối tượng Trong hệ tọa độ này chỉ có bản thân đối tượng được định nghĩa, vì vậy gốc tọa độ và đơn vị đo lường thường được chọn sao cho việc biểu diễn đối tượng tiện lợi nhất
Bước đầu tiên trong quy trình hiển thị là biến đổi đối tượng từ không
gian đối tượng (object-space) vào một không gian chung gọi là không gian thực (world space) Trong không gian này các đối tượng, nguồn sáng, và người quan sát cùng tồn tại Bước này được gọi là giai đoạn biến đổi mô hình
(modeling transformation)
Bước tiếp theo là một bước tối ưu hóa Trong giai đoạn loại bỏ đơn giản (trivial rejection) ta cần loại trừ tất cả các đối tượng không thể nhìn thấy Điều này giúp chúng ta tránh được việc xử lí một số phần không cần thiết của cảnh (scene) mà ta đang chuẩn bị hiển thị ở các bước sau
Tiếp theo ta phải chiếu sáng (illumination) các đối tượng có thể nhìn thấy được bằng cách gán cho chúng màu sắc dựa trên các đặc tính của các chất tạo nên vật và các nguồn sáng tồn tại trong cảnh
Sau khi chiếu sáng, ta phải thực hiện một phép biến đổi hệ tọa độ để đặt
vị trí quan sát (viewing position) về gốc tọa độ và mặt phẳng quan sát (viewing plane) về một vị trí mong ước Bước này gọi là bước đổi hệ quan
Trang 18sát Sau bước này, các đối tượng được chuyển từ không gian thực sang không
gian quan sát (eye space)
Trong không gian quan sát, ta phải thực hiện việc xén các đối tượng trong cảnh để cảnh nằm gọn trong một phần không gian chóp cụt mà ta gọi là
viewing frustum Bước này sẽ loại bỏ hoàn toàn các đối tượng (các mảnh đối
tượng) không nhìn thấy được trong ảnh
Bước tiếp theo ta sẽ chiếu các đối tượng xuống mặt phẳng hai chiều Bước Projection thực hiện phép biến đổi từ không gian quan sát sang không
Trang 191.3.2 Các phép chiếu
Một cách tổng quát, phép chiếu là phép chuyển đổi những điểm của đối
tượng trong hệ thống tọa độ n chiều thành những điểm trong hệ thống tọa độ
có số chiều nhỏ hơn n
Hình chiếu là ảnh của đối tượng trên mặt phẳng chiếu được hình thành
từ phép chiếu bởi các đường thẳng gọi là tia chiếu (projector) xuất phát từ một điểm gọi là tâm chiếu (center of projection) đi qua các điểm của đối tượng
giao với mặt chiếu (projection plan)
Các phép chiếu được phân loại theo cấu trúc cây như sau:
Hình 1.13 Phân loại các phép chiếu
Hình 1.12 Hiển thị các điểm ảnh lên màn hình
Trang 20Dưới đây trình bày một số phép chiếu được dùng nhiều trong kỹ thuật
1.3.2.1 Phép chiếu vuông góc
Hình 1.14 Phân biệt phép chiếu song song (a) và phép chiếu phối cảnh (b)
Hình 1.15 Các hình chiếu vuông góc
Trang 21Phép chiếu vuông góc là phép chiếu song song và tia chiếu vuông góc với mặt phẳng chiếu
Các phép chiếu vuông góc thường được sử dụng trong kỹ thuật để tạo nên các hình chiếu vuông góc của một vật
thể
Xét điểm P(x,y,z) được chiếu lên mặt
phẳng (x,y) thành điểm P*(x*,y*,0) và phép
biến hình tạo ra phép chiếu này có thể viết
Trang 221.3.2.2 Phép chiếu trục đo vuông góc đều Isometric
Để tạo ra phép chiếu trục đo trong máy tính, một trình tự các phép quay, tịnh tiến, hoặc cả hai được thực hiện trên đối tượng Sau đó thực hiện phép chiếu vuông góc, thường là trên mặt phẳng z=0, với điều đặc biệt là các cạnh song song của đối tượng được rút ngắn lại theo mỗi trục là khác nhau hoặc bằng nhau Hệ số rút ngắn được tính bằng tỷ số giữa chiều dài mỗi cạnh trên hình chiếu với chiều dài thật của chúng
Giả sử có một hình chiếu trên mặt phẳng (xy) Các phép quay cần thiết
là phép quay một góc θy quanh trục y, sau đó là phép quay một góc θx quanh trục x
0 - sin( ) cos( ) 0
0 0 1
Hình 1.17 Các phép biến hình cần thiết để thu được hình chiếu trục
đo vuông góc đều :
a)Khối trong không gian có một mặt song song với mặt phẳng chiếu b)Quay góc θy quanh trục Oy
c)Quay góc θx quanh trục Ox
Trang 23=
os 0
z* = [1 0 0 1] [Miso] = [sin(θy) -sin(θx)cos(θy) 0 1]
Độ dài trên hình chiếu của các vectơ đơn vị này là:
Bởi vì chiều dài thật luôn bằng 1, hệ số tỉ lệ giữa độ dài trên hình chiếu
và độ dài trên hình thật có thể viết như sau:
Trang 242 2
2
sinsin
1 sin
x y
2
1 2sinsin
1 sin
x y
1.3.2.3 Phép chiếu xiên – Oblique
Các hình chiếu vuông góc và trục đo vuông góc đều có các tia chiếu vuông góc với mặt phẳng chiếu Phép chiếu xiên có các tia chiếu tạo một góc với mặt phẳng chiếu
Công thức tổng quát của phép chiếu xiên được tính bằng cách xét vectơ đơn vị theo trục z như hình vẽ
Khoảng cách l là hệ số rút ngắn của mọi đường thẳng vuông góc với mặt phẳng z=0 sau phép chiếu Gọi θ là góc giữa hình chiếu và trục nằm
Trang 25Phép chiếu xiên có thể xem là kết quả của phép biến hình sau:
1 Làm lệch đối tượng trong không gian theo hướng song song với mặt phẳng chiếu
2 Chiếu vuông góc lên mặt phẳng chiếu
Nếu hệ số rút ngắn l = 0, θ = 900 phép chiếu sẽ trở thành phép chiếu trực giao
*Phép chiếu xiên đều Cavalier
Phép chiếu xiên đều là phép chiếu xiên
có hệ số rút ngắn l=1 Trong phép chiếu này,
các đường thẳng vuông góc với mặt phẳng
chiếu sẽ giữ nguyên độ dài thật của chúng
Phép chiếu Cavalier cho phép giá trị
của θ biến đổi một cách tự do, không phụ
thuộc vào l , θ = 300 đến 450
* Phép chiếu xiên cân Cabinet
Phép chiếu xiên có hệ số rút ngắn
l=1/2 Trong phép chiếu này, chiều dài trên
hình chiếu của đường thẳng vuông góc với
mặt phẳng chiếu sẽ bằng một nửa chiều dài
thật
Hình 1.19 Phép chiếu xiên đều Cavalier
Hình 1.20 Phép chiếu xiên cân Cabinet
Trang 261.3.2.4 Phép chiếu phối cảnh
Phép chiếu phối cảnh là phép chiếu mà các tia chiếu không song song với nhau mà xuất phát từ 1 điểm gọi là tâm chiếu.Phép chiếu phối cảnh tạo ra hiệu ứng về luật xa gần tạo cảm giác về độ sâu của đối tượng trong thế giới thật mà phép chiếu song song không lột tả được.Các đoạn thẳng song song của mô hình 3D sau phép chiếu hội tụ tại 1 điểm gọi là điểm triệt tiêu - vanishing point
Có ba dạng phép chiếu phối cảnh : Phép chiếu phối cảnh một tâm, hai tâm, ba tâm
*Phép chiếu phối cảnh một tâm
Phép chiếu phối cảnh một tâm có tâm chiếu được đặt trên một trong ba trục toạ độ Hai tâm chiếu khác ở vô tận, do đó các đường nằm ngang vẫn nằm ngang, các đường thẳng đứng vẫn thẳng đứng sau phép chiếu
Xét điểm P(x,y,z) trong không gian, hình chiếu phối cảnh của P lên mặt phẳng x,y là P*(x*,y*, 0), tâm chiếu có khoảng cánh Zcp trên trục z
Hình 1.21 Phép chiếu phối cảnh một tâm, hai tâm và ba tâm
Trang 27Nhìn theo trục y về phía gốc toạ độ ta có
xx*
z1Zcp
Nhìn theo trục x về phía gốc toạ độ
yy*
z1Zcp
Trang 291 0 0 0
1
Ycp [Mper](1)=
* Phép chiếu phối cảnh hai tâm
Để thu được phép chiếu phối cảnh hai tâm phải tạo ma trận biến đổi toạ
độ đồng nhất (4x4), trong đó hai trong ba phần tử trên cùng của cột thứ tư có gia trị khác o Sau đó ma trận này được nhân với ma trận phép chiếu vuông góc tương ứng
* Phép chiếu phối cảnh ba tâm
Tương tự phép chiếu phối cảnh hai tâm, để thu được phép chiếu phối cảnh ba tâm phải tạo ma trận biến đổi toạ độ đồng nhất (4x4), trong đó ba phần tử trên cùng của cột thứ tư có gia trị khác 0 Sau đó ma trận này được nhân với ma trận phép chiếu vuông góc tương ứng
Trang 301.4 Hiển thị hình ảnh thật
Để nâng cao chất lượng hiển thị hình ảnh thật, các đường thẳng và đường cong mà người quan sát không trông thấy sẽ được loại bỏ bằng giải thuật che khuất đường và mặt; tạo hình ảnh của mô hình được tô bóng…
1.4.1 Khử bỏ đường và mặt khuất
Nguyên tắc chung của việc khử đường và mặt khuất là bất kỳ mặt hay cạnh nào bị che khuất bởi các mặt gần hơn sẽ không được vẽ ra Ta có hai cách tiếp cận:
• Tiếp cận theo không gian đối tượng: Tính toán các toạ độ để xác định các cạnh thấy được các mặt để vẽ ra Các thuật toán loại này được cài đặt dựa trên hệ toạ độ vật lý dùng mô tả đối tượng nên thường có tính chính xác cao Với cách tiếp cận này, một ảnh có thể phóng lớn rất nhiều lần mà kết quả vẫn thoả mãn được yêu cầu ban đầu đặt ra
• Tiếp cận theo không gian ảnh: Dựa trên các pixel thuộc đối tượng Với mỗi pixel, xác định xem nó là phần tử của mặt nào và nếu là của mặt gần nhất thì vẽ ra Các thuật toán loại này cài đặt dựa trên toạ
độ màn hình nên chỉ mang tính chính xác tương đối Nếu phóng lớn đối tượng ra, kết quả nhiều khi không còn chính xác như ban đầu
Có nhiều giải thuật khử đường mặt khuất dựa theo các cách tiếp cận trên mỗi giải thuật có ưu, nhược điểm riêng
1.4.1.1 Giải thuật vùng đệm độ sâu (depth buffer)
Giải thuật vùng đêm độ sâu hay giải thuật z buffer dựa trên cách tiếp cận không gian ảnh để khử các mặt khuất Với mỗi điểm P(x,y) nằm trên mặt phẳng quan sát, mặt nào có độ sâu z nhỏ nhất xét tại điểm đó sẽ là mặt thấy
Trang 31được Hình 1.26 minh hoạ ba mặt S1, S2, S3 có các độ sâu khác nhau xét tại vị
trí (x,y) Mặt S1 có giá trị z nhỏ nhất tại điểm này nên là thấy được
Tư tưởng chính của giải thuật này là sử dụng hai vùng đệm:
• Một vùng đệm gọi là vùng đệm độ sâu để lưu trữ giá trị độ sâu z tại mỗi
vị trí (x,y) trên màn hình (giá trị này có được khi so sánh các mặt) (Hình
1.23)
• Một vùng đệm nữa là vùng đệm khung dùng để lưu các giá trị màu tại các vị trí (x,y) Vùng đệm khung sẽ được các thiết bị ánh xạ lên
màn hình để vẽ kết quả cuối cùng
Thuật toán: Với mỗi mặt, ta tính độ sâu zij của tất cả các pixel (i,j)
thuộc về mặt đó Sau khi so sánh các giá trị độ sâu zij này với các giá trị
tương ứng d[i,j] được lưu trữ trong vùng đệm độ sâu Nếu zij < d[i,j] thì d[i,j]
sẽ lấy giá trị zij vầ p[i,j] sẽ lấy giá trị màu của mặt đang xét
Trang 32d[i,j] := z end;
end;
Giải thuật này có ưu điểm là tương đối đơn giản về cài đặt, tốc độ thực hiện tương đối nhanh Tuy nhiên giới hạn của nó là đòi hỏi bộ nhớ khá lớn
1.4.1.2 Giải thuật dựa trên dòng quét (scan - line)
Giải thuật dựa trên dòng quét là sự mở rộng của giải thuật tô màu đa giác và cũng dựa trên cách tiếp cận không gian ảnh Tư tưởng của nó là với mỗi dòng quét, tất cả các phần giao của các mặt đa giác tại đường thẳng này
sẽ được xem xét để xác định phần nào là thấy được
Chiếu vật thể ba chiều xuống mặt phẳng xy Xét tia quét ngang theo trục x Với mỗi tia quét, xác định các giao điểm của tia quét vơi các mặt hình chiếu Xếp thứ tự các giao điểm này theo giá trị x, xét từng đoạn [xi, q]:
• Nếu đoạn nào chỉ bị bao phủ bởi một mặt thì toàn đoạn được tô theo màu của mặt đó
x
Hình 1.24 Giải thuật vùng đệm độ sâu
Trang 33• Nếu đoạn bị phủ bởi nhiều mặt thì tại mỗi điểm trên đoạn xác định độ sâu của từng mặt để chọn mặt gần nhất và tô điểm đó theo màu của mặt này
1.4.1.3 Giải thuật chia vùng
Dựa trên cơ sở chia một ảnh thành nhiều vùng con, sau đó kiểm tra một vùng con để xét tính khuất hay thấy Một vùng con là đơn giản nếu chỉ có một mặt liên quan tới vùng đó Nếu một vùng đã được xem là đơn giản thì nó sẽ được ngay, còn nếu chưa thì nó sẽ được chia ra làm nhiều vùng nhỏ hơn nữa
và tiếp tục kiểm tra Nếu kích thước của các vùng con đã đạt giá trị nhỏ nhất (thường là một pixel) thì lúc đó việc kiểm tra độ sâu sẽ được tiến hành để xác định màu vẽ cho vùng nhỏ nhất này
1.4.1.4 Phương pháp khử đường khuất
Khi chỉ có hình dáng của đối tượng (outline of object) được hiển thị, thì ta dùng phương pháp khử đường khuất để loại bỏ các cạnh của đối tượng
bị che khuất bởi các mặt gần hơn (so với mặt phẳng quan sát)
Cách tiếp cận trực tiếp là so sánh các cạnh với các mặt Với mỗi đường thẳng, các giá trị có độ sâu được so sánh với các mặt phẳng để xác định xem phần nào của đường thẳng là không thấy được
• Nếu các giao điểm của đường thẳng với hình chiếu của biến các mặt có
độ sâu lớn lớn hơn độ sâu của mặt tại điểm này, đoạn thẳng giữa các
điểm giao này sẽ là không thấy được (Hình 1.25a)
• Nếu đường thẳng có độ sâu lớn hơn một giao điểm tại biên và nhỏ hơn
độ sâu của mặt tại giao điểm còn lại thì đường thẳng sẽ đi xuyên qua
mặt như (Hình 1.25b) Trường hợp này phải tính giao điểm của đường
Trang 34thẳng với mặt bằng cách sử dụng phương trình mặt phẳng và chỉ hiển thị phần thấy được của đường thẳng
1.4.2 Các mô hình độ sáng và tạo bóng
Trong thế giới thực, mọi vật đều hấp thụ và phản xạ ánh sáng và chịu ảnh hưởng của nhiều loại ánh sáng khác nhau Phương pháp tạo bóng và tô màu các mặt nhìn thấy được của vật thể nhằm hoàn thiện việc hiển thị các vật thể trong máy tính
1.4.2.1 Các mô hình độ sáng cơ bản
* Nguồn sáng
Khi nhìn vật thể, chúng ta nhìn thấy ánh sáng phản chiếu từ các bề mặt của vật thể Các ánh sáng phản chiếu này xuất phát từ các nguồn sáng khác nhau xung quanh vật thể Nếu vật thể là trong suốt (không phản xạ) ta chỉ có thể thấy ánh sáng xuất phát từ các nguồn sáng nằm ngay sau vật thể
Các nguồn sáng chiếu sáng vật thể có thể xếp vào hai loại cơ bản: nguồn tự phát sáng (mặt trời, bóng đèn, ) và nguồn sáng phản chiếu (các vật thể được chiếu sáng bởi các nguồn tự phát sáng như bức tường, gương
Khi kích thước của nguồn sáng nhỏ so với các kích thước của vật thể được chiếu sáng ta có thể coi nó là nguồn sáng điểm Đa số các nguồn sáng
Hình 1.25 Xác định phần khuất của đường thẳng
Trang 35được xếp vào loại này Các nguồn sáng không thuộc loại này gọi là các nguồn sáng phân bố Ta chủ yếu xét bài toán tạo bóng với các nguồn sáng điểm
*Các mô hình sáng tạo cơ bản
Vật thể được chiếu sáng vào các ánh sáng đến từ nguồn sáng sau khi
phản xạ nhiều lần qua các vật thể xung quanh vật thể ta đang quan sát (Hình
1.26) Do vậy ánh sáng xung quanh hay ánh sáng nền (back ground light)
Trên mỗi loại bề mặt có hai hiệu ứng phát sáng là khuếch tán và phản xạ gương
▪ ánh sáng xung quanh (ambient light)
Bao gồm ánh sáng phát ra từ một nguồn sáng điểm nhưng bị tán xạ cùng mức độ như nhau theo tất cả các hướng: tức là nó không phụ thuộc vào
vị trí người quan sát Nếu xét hiệu của ánh sáng nền thì có thể xem ánh sáng nền là kết quả của sự phản xạ nhiều lần của các nguồn sáng xung quanh vật thể coi cường độ ánh sáng đập lên bề mặt của vật thể theo một hướng là như nhau và bằng hằng số Ia
Cường độ của ánh sáng khuếch tán từ bề mặt vật thể có thể được tinh theo công thức:
I = kd Ia
Nguồn sáng phản xạ
Mắt người quan sát Nguồn sáng tự phát
Hình 1.26 Bề mặt được chiếu sáng bởi cả hai loại nguồn sáng
Trang 36Trong đó kd là hệ số phản xạ hay độ phản xạ của bề mặt, nó là một hằng số có giá trị thuộc đoạn [0,1] Khi kd gần với 1, độ phản xạ của bề mặt càng cao nghĩa là ánh sáng phản xạ cường độ gần như nguồn sáng
Trong thực tế, thường ngoài ánh sáng nền, các vật thể còn được chiếu sáng bởi các nguồn sáng điểm nằm gần nó Khi có sự tham gia của nguồn sáng này, cường độ sáng sẽ tính như sau:
) L N ( d d
I k I k I
0
a d a
Trong đó: N là vector pháp tuyến của bề mặt, I là vector đơn vị chỉ phương của ánh sáng, d là khoảng cách từ nguồn sáng đến bề mặt vật thể, d0
là một hằng số để điều chỉnh bóng tạo được
N.L là cos () với là góc giữa N và L
▪ Sự phản xạ gương (speccular reflection) (Hình 1.28)
Tại một góc nhìn nào đó, các bề mặt sáng bóng phản chiếu toàn bộ ánh sáng tới, độc lập với độ phản chiếu của bề mặt Hiện tượng này gọi là phản xạ toàn phần
Đối với một gương hoàn hảo, một tia sáng tới sẽ tạo ra một tia phản xạ
và góc tới bằng góc phản xạ Đối với các vật thể thực, vùng phản xạ không chỉ là một tia phản xạ mà là một vùng lân cận quanh tia phản xạ rộng hay hẹp phụ thuộc vào đặc tính của bề mặt như trong hình vẽ
Trang 37Hình 1.28 Mô hình phản xạ gương với các loại bề mặt khác nhau
▪ ánh sáng khúc xạ (refracted light) (Hình 1.29)
Đối với các vật thể trong suốt, ánh sáng ngoài phản xạ còn đi xuyên qua vật thể để chiếu sáng bề mặt từ bên trong ra, ánh sáng này gọi là ánh sáng khúc xạ ánh sáng này cũng ảnh hưởng đến việc tạo bóng cho vật thể
Hình 1.29 Ánh sáng sau khi chạm vào
bề mặt sẽ bị tách làm hai tia phản xạ
và khúc xạ
*Tạo bóng
Bài toán tạo bóng rất giống bài toán khử mặt khuất Một đối tượng tạo
ra bóng khi nó che một nguồn sáng Quá trình tạo bóng như sau:
* Xác định các mặt khuất và không khuất
Trang 38* Dùng phương pháp khử mặt khuất để xác định những nơi tạo ra bóng của vật thể trong các mặt thấy bằng cách coi nguồn sáng đặt tại điểm quan sát Kết quả của thao tác này cho phép ta chia các mặt không khuất làm hai nhóm:
• Nhóm thứ nhất: Các mặt thấy được và không tạo bóng, có cường độ sáng là tổng cường độ sáng của ánh sáng nền và ánh sáng của nguồn sáng đáng xét
• Nhóm thứ 2: Gồm các mặt thấy được và tạo bóng Cường độ sáng các mặt này sẽ chỉ tính cường độ sáng của ánh sáng nền không tính thêm vào ánh sáng của nguồn sáng
1.4.2.2 Các mô hình về bóng cho đa giác
Để tạo bóng, ta có thể ứng dụng các mô hình xác định cường độ sáng theo kiểu khác nhau
Đối với vật thể có bề mặt phẳng ta có thể chỉ cần tính một cường độ ánh sáng chung cho một bề mặt là có thể hiển thị đối tượng trong đối thật
Đối với các vật thể có bề mặt cong ta phải tính cường độ ánh sáng cho từng pixel trên bề mặt của nó Để tăng tốc độ, ta có thể xấp xỉ các mặt cong bởi một tập hợp các mặt phẳng Với mô hình này ta có thể áp dụng
mô hình constant - intensity, interpolating intensity hoặc tô bóng Gouraud
để tạo bóng
* Tô bóng đều (Constant - intensity Shading)
Phương pháp tiếp cận theo hướng coi khoảng cách từ nguồn sáng đến vật cũng như từ vật đến điểm quan sát là đủ xa Khi đó, các tia tới song song nhau và cường độ sáng ở mọi điểm trên một mặt phẳng là như nhau Ta chỉ việc tính toán cường độ sáng của một điểm rồi áp dụng cho
Trang 39toàn bộ mặt Cách tiếp cận này cho phép thực hiện với tốc độ rất nhanh và trong nhiều trường hợp cho ta chất lượng chấp nhận được
Với các mặt cong ta chỉ việc phân hoạch ra làm nhiều mảnh nhỏ, mỗi mảnh được xấp xỉ bằng mặt phẳng tiếp chuyển với mặt cong Sau đó
áp dụng như đối với mặt phẳng Nếu phân hoạch đủ nhỏ, hình ảnh nhận được sẽ gần như thật
* Interpolate shading
Nguyên lý của việc tô bóng như sau:
• Đối với mỗi đỉnh chung của một vài đa giác, đường pháp tuyến tới mỗi đa giác được tính toán như một vector vuông góc tới mặt phẳng của đa giác đó
• Đối với mỗi đỉnh, một pháp tuyến đơn vị được tính toán bằng cách lấy trung bình cộng những pháp tuyến bề mặt thu được trước đó
• Cường độ ánh sáng tại các đỉnh được tính toán bằng cách sử dụng các pháp tuyến đỉnh bởi một mô hình tô bóng nào đó
• Do mỗi một Polygon đều có một phần che sáng khác nhau tại mỗi đỉnh, nên việc che sáng tại bất kỳ điểm nào nằm bên trong đa giác được tìm thấy bằng phép nội suy tuyến tính (linear interpolation) của cường độ các đỉnh dọc theo mỗi cạnh và sau đó giữa các cạnh dọc theo mỗi đường quét Scan - Line
Để có thể áp dụng phương pháp interpolate shading, trước tiên ta phải
có thông tin về cường độ sáng của tất cả các đỉnh của Polygon biên của mỗi mặt Dựa trên những thông tin này ta sẽ nội suy ra giá trị cường độ sáng của các điểm khác còn lại trên biên và sau đó là của tất cả những điểm trên mặt đang xét
Trang 40Trong thực tế, ta có thể tính trước cường độ sáng của tất cả các điểm biên, lưu chúng ta lại Khi cần tô bóng ta có thể áp dụng một trong những phương pháp tô màu polygon để tô bề mặt với giá trị cường độ sáng của mỗi điểm trên bề mặt tính từ công thức nội suy Giá trị cường độ sáng tại các đỉnh của polygon được tính trước bởi một mô hình tạo bóng nào đó Tất cả các giá trị còn lại đều được tính dựa trên các giá trị này
Giá sử dụng cường độ tại các đỉnh 1,2,3 lần lượt là Ir, I2, I3 (Hình 1.30)
Cường độ sáng tại điểm 4 sẽ được nội suy từ I1 và I2 theo công thức sau:
2 1
2 1 2 2 1
2 4 4 4
y y
y y l y y
y y I I
4 x x
x x l x x
x x I I
6
4 5 2 4 6
5 6 4
Quá trình tính toán được lặp lại cho mỗi dòng quét qua polygon
Với phương pháp nội suy, các vector pháp tuyến của các bề mặt phải được xấp xỉ tại các đỉnh của polygon biên Để tính vector pháp tuyến tại một đỉnh ta sẽ tính bằng trung bình cộng của các vector pháp tuyến của các bề mặt tiếp xúc với đỉnh này Vector pháp tuyến này sẽ được sử dụng để tính giá trị cường độ tại đỉnh
Hình 1.30 Sơ đồ nội suy
• • •
4 5 6
2
1