1. Trang chủ
  2. » Công Nghệ Thông Tin

Đồ họa máy tính - Chương 4 Kỹ thuật xử lý hình khuất - Bài 14 doc

6 382 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 6
Dung lượng 262,09 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Xác định đường khuất mặt khuất Để có thể tạo ra ảnh nổi trong không gian 3 chiều người ta phải bỏ đi các mặt khuất đường khuất hoặc dựa vào màu sắc để tạo nên độ sáng tối khác nhau, điề

Trang 1

Mặt Các đỉnh

1 1 2 3 4

2 5 6 7 8

3 1 2 6 5

4 2 3 7 6

5 3 4 8 7

6 4 1 5 8

Vẽ hình lập phương theo mô hình trên

Bài tập : Biểu diễn các khối đa diện đều và viết chương trình minh hoạ :

1 Tứ diện đều

2 Khối lập phương

3 Bát diện đều (8 mặt, mỗi mặt là một tam giác đều, 1 đỉnh kề 4 mặt)

4 Nhị thập diện đều (20 mặt, mỗi mặt là một tam giác đều, 1 đỉnh kề 5 mặt)

5 Thập nhị diện đều (12 mặt, mỗi mặt là một ngũ giác đều, 1 đỉnh kề 3 mặt)

6 Biểu diễn hình lăng trụ và viết chương trình minh hoạ

$14 Xác định đường khuất mặt khuất

Để có thể tạo ra ảnh nổi trong không gian 3 chiều người ta phải bỏ đi các mặt khuất

đường khuất hoặc dựa vào màu sắc để tạo nên độ sáng tối khác nhau, điều này dẫn

đến bài toán xác định mặt khuất đường khuất trong kỹ thuật đồ hoạ

Trang 2

ax+by+cz+d=0 (*) Mặt phẳng (*) chia không gian thành hai phần Chúng ta quy ước tất cả các điểm (x,y,z) mà ax+by+cz+d <0 là phía sau của mặt và tập các điểm (x,y,z) mà

ax+by+cz+d ≥0 là phần phía trước của mặt

Với các quy định trên thì vật thể là tập hợp tất cả các điểm thuộc phần phía sau của tất cả các mặt tạo nên vật thể

Từ đây ta cũng suy ra những điểm nằm về phía sau của tất cả các mặt tạo nên phần bên trong vật thể, phần còn lại của không gian là phần bên ngoài vật thể, suy ra người quan sát có thể nhìn thấy vật thể khi người đó ở phía ngoài vật thể

Giả sử vật thể 3D được cho bởi danh sách các mặt và mỗi mặt là danh sách các cạnh hoặc các đỉnh Mỗi mặt là một đa giác lồi Ta giả sử các cạnh được đánh số theo chiều ngược chiều kim đồng hồ

Gọi ρ

n là véctơ pháp tuyến của mặt ABCD ngược với hướng nhìn từ bên ngoài

Giả sử người quan sát ở vị trí E x( E,yE,zE) nhìn vào vật thể Lấy một điểm P bất

kỳ trên mặt Si của vật thể khi đó vectơ epρ

tạo nên hướng nhìn của người quan sát

đối với mặt Si

E

b

n a B A

Trang 3

E

P

n

a b

Xét tích các hướng ep nρ ρ ep nρ n epρ ρ

= cos( , ) khi đó nếu ep nρ ρ

<0 ⇒ góc ( ,ρ ρ)

n ep < 90O thì mặt Si chứa điểm P bị che khuất khi đó các cạnh tạo nên mặt bị che khuất không nhìn thấy, nó tạo nên các đường khuất Ngược lại nếu

( ,ρ ρ)

n ep ≥ 90O thì người quan sát nhìn thấy mặt Si và do đó các cạnh tạo nên mặt Si không bị che khuất

Chú ý:

1 Chúng ta chú ý rằng nếu mặt phẳng song song với hướng nhìn thì hình ảnh của mặt trên mặt phẳng chiếu là một đoạn thẳng

2 Việc xác định các đường khuất mặt khuất dựa theo nguyên tắc trên đối với các vật

α P

E

O n

B

Trang 4

2 Thuật toán mô tả vật thể theo độ sâu

(Depth buffer Method)

Bây giờ chúng ta khảo sát một thuật toán khác - gọi là thuật toán mô tả vật thể theo

độ sâu, ý tưởng của thuật toán rất đơn giản là dựa vào khoảng cách giữa mỗi điểm trên vật thể với vị trí người quan sát để tô màu sáng tối khác nhau

Ưu điểm của phương pháp này là vật thể có thể có hình dạng bất kỳ không nhất thiết

là đa diện, dễ ứng dụng, dễ hiểu

Bài toán như sau :

Giả sử cho vật thể V được giới hạn bởi các mặt S1,S2 Sm, các điểm (i,j) thuộc mặt Sk của vật thể được tô bởi màu f(k,i,j) (k=1,m) (để đơn giản ta có thể giả thiết các điểm của mỗi mặt Sk được tô cùng một màu fk) Giả sử người quan sát ở vị trí

E x y ( E, E, zE) và nhìn vật thể theo hướng OZ

S1 S2

Z Y

O

X

Thuật toán mô tả vật thể theo độ sâu được thể hiện như sau:

Ta sử dụng hai mảng : một mảng gọi là mảng depth(i,j) dùng để chứa độ sâu theo

Trang 5

depth(i,j):=0; color(i,j):=<màu nền>

2 For (mỗi điểm (i,j) thuộc hình chữ nhật bao vật thể) Do

Begin

For k:=1 To m Do

Begin

If (điểm (i,j) thuộc mặt Sk) Then

Begin

Tính độ sâu của điểm (i,j) thuộc Sk : z:=(-aki-bkj-dk)/ck

If (z<depth(i,j)) Then

Begin

depth(i,j):=z; color(i,j):=f(k,i,j);

End;

End;

End;

End;

3 Với mỗi điểm (i,j) thuộc hình chữ nhật bao vật thể

vẽ điểm (i,j) bằng màu color(i,j);

4 Kết thúc

Ưu điểm của thuật toán này như trên đã nêu đơn giản, dễ áp dụng cho mọi đối

tượng Nhiều lúc nó còn có ưu điểm lớn hơn là với vật thể phức tạp, số mặt tăng lên

số phép tính không tăng Nhược điểm lớn nhất là kích thước của 2 mảng tăng nhanh khi độ phân giải của màn hình tăng

Chú ý: Nếu các mặt của vật thể là các đa giác nghĩa là một phần của mặt phẳng: ax+by+cz+d=0

khi đó việc tính độ sâu z được tính theo công thức:

c

k

3 Thuật toán xác định vật thể theo đường quét

Phương pháp nμy còn có tên gọi lμ thuật toán scan-line

ý tưởng của thuật toán như sau:

Trang 6

Giả sử cho vật thể V trong không gian 3D Người quan sát ở vị trí E nhìn vật thể V theo hướng OZ khi đó ta thực hiện các bước sau:

1 Chiếu vật thể V theo hướng OZ lên mặt phẳng chiếu XOY Giả sử S1,S2 Sm tương ứng là hình chiếu của các mặt V1,V2 Vm của vật thể V

2 Giả sử hình chiếu của vật thể được bao bởi hình chữ nhật

(xmin , xmax) x (ymin , ymax) For i:= ymin To ymax Do

Begin

Kẻ đường thẳng y= i (song song với OX)

Gọi x1<= x2 <= <= xm là hoànhđộ của các giao điểm

của tia quét với biên của các mặt hình chiếu

For j:=1 To m-1 Do

Begin

xét đoạn thẳng xjxj+1

If (xjxj+1 chỉ thuộc 1 mặt) Then (tô màu xjxj+1 theo mặt đó)

Else

Begin

Tại mỗi điểm trên đoạn xác định độ sâu của điểm

theo từng mặt để chọn được mặt gần nhất và tô màu của điểm theo mặt đó

End;

End;

Ngày đăng: 24/07/2014, 10:21

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm