24/05/2018, 22:39

biến đổi hệ tọa độ quan sát (hệ quan sát)

Việc tạo ra quang cảnh của một đối tượng trong không gian ba chiều thì tương tự như việc chụp ảnh. Chúng ta có thể đi vòng quanh và chụp các bức ảnh từ bất kỳ góc nhìn nào, ở các khoảng cách khác nhau, và với các hướng camera khác nhau. ...

Việc tạo ra quang cảnh của một đối tượng trong không gian ba chiều thì tương tự như việc chụp ảnh. Chúng ta có thể đi vòng quanh và chụp các bức ảnh từ bất kỳ góc nhìn nào, ở các khoảng cách khác nhau, và với các hướng camera khác nhau. Những gì xuất hiện trong kính ngắm được chiếu lên bề mặt film phẳng. Kiểu len của camera, cái mà chúng ta dùng để xác định phần nào của đối tượng hoặc cảnh vật xuất hiện trên bức ảnh sau cùng. Các ý tưởng này đựợc kết hợp chặt chẽ trong một gói đồ họa. Chúng ta yêu cầu người sử dụng chỉ rõ một điểm để từ đó quan sát các đối tượng và chỉ ra bao nhiêu cảnh cần được chứa đựng vào trong hiển thị sau cùng.

Xác định mặt phẳng quan sát

Người dùng chỉ định rõ cách nhìn cụ thể cảnh bằng việc định nghĩa một mặt phẳng quan sát (view plane). Mặt phẳng quan sát là bề mặt để ta chiếu quang cảnh của một đối tượng lên đó. Chúng ta có thể nghĩ về nó như film trong một camera, cái được bố trí và được định hướng để đặt các bức ảnh được yêu cầu vào. Mặt phẳng quan sát được xây dựng bằng việc định rõ hệ quan sát (view coordinate system), như được trình bày trong hình 6-12. Các vị trí trên hệ tọa độ thế giới thực sẽ được định nghĩa lại và diễn tả mối liên hệ tương ứng đến hệ tọa độ này.

Để xây dựng các hệ quan sát, người sử dụng chọn một vị trí trên hệ tọa độ thế giới thực để dùng nó như điểm quan sát (view reference point). Đây sẽ là gốc của hệ quan sát. Hướng của mặt phẳng quan sát được định nghĩa bằng việc xác định vector pháp tuyến của mặt phẳng quan sát (view plane normal vector), N. Vector này xây dựng hướng cho trục z dương của hệ quan sát. Một vector dựng đứng V, được gọi là vector nhìn lên (view up vector), được dùng để định nghĩa hướng cho trục y dương. Hình 6-13 minh họa hướng của hệ quan sát, ở đó mặt phẳng quan sát là mặt xy.

Vector pháp tuyến của mặt phẳng quan sát N có thể được xây dựng bằng việc xác định một vị trí tọa độ liên hệ với gốc tọa độ thế giới thực. Việc làm này định nghĩa hướng của vector pháp tuyến như đường thẳng từ gốc (của tọa độ thế giới thực) đến vị trí tọa độ được chỉ định (gốc hệ quan sát). Hình 6-14 cho hai hướng của mặt phẳng quan sát để các tọa độ vector pháp tuyến được xác định. Vector V có thể được xác định theo cách tương tự. Người sử dụng thường khó khăn để xác định chính xác hai vector vuông góc này, vì vậy một vài gói đồ họa thay đổi cách xác định vector V của người dùng. Như được thể hiện trong hình 6-15, V được chiếu đến vị trí để vuông gốc với pháp vector.

Đôi khi vector thứ ba U, được dùng để chỉ rõ hướng x của hệ quan sát. Hệ quan sát sau đó có thể được mô tả như hệ uvn, và mặt phẳng quan sát được gọi là mặt uv. Chúng ta giả thuyết rằng vị trị x theo hướng như ở hình 6-16. Hướng của U và V trong bức ảnh này thì không đổi so với hướng chuẩn của trục x và y trên thiết bị hiển thị. Chúng ta có thể nghĩ về mặt phẳng quan sát trong hệ quan sát này như một thiết bị logic (logical device) làm cơ sở cho việc hiển thị ảnh.

Dù là hệ tọa độ bàn tay trái (xem hình 6-16) hay hệ tọa độ bàn tay phải (xem hình 6-17) đều có thể được dùng làm hệ quan sát. Trong các thảo luận sau này, chúng ta sẽ dùng hệ tọa độ bàn tay trái, vì nó trực quan hơn một chút. Các đối tượng xa hơn từ người quan sát có các giá trị theo trục z lớn. Tuy nhiên, hệ tọa độ bàn tay phải thường được dùng, vì nó có hướng tương tụ như hệ tọa độ thế giới thực. Do đó, sự biến đổi giữa hai hệ này được làm đơn giản.

Trong việc xây dựng mặt phẳng quan sát, vài vùng đồ họa sử dụng các tham số bổ sung được gọi là khoảng cách quan sát. Mặt phẳng quan sát được định nghĩa như mặt phẳng song song với mặt phẳng xy, cái nằm ở một khoảng cách xác định từ điểm quan sát. Đối với thảo luận của ta, chúng ta giả thuyết rằng mặt phẳng quan sát là mặt xy ở gốc tọa độ của hệ quan sát. Điều này cho phép chúng ta chiếu lên mặt z = 0.

Để tạo ra một quang cảnh từ một điểm quan sát thuận lợi do người dùng chọn, các vị trí được định nghĩa liên hệ với gốc của hệ tọa độ thế giới thực phải được định nghĩa lại liên hệ với gốc của hệ quan sát. Tức là, chúng ta phải biến đổi các tọa độ từ hệ tọa độ thế giới thực sang hệ tọa độ quan sát. Sự biến đổi này được thực hiện bằng một dãy biến đổi tuần tự của phép tịnh tiến và phép quay để ánh xạ các trục của hệ tọa độ quan sát lên trên các trục của hệ tọa độ thế giới thực. Khi được áp dụng đến định nghĩa hệ tọa độ thế giới thực của các đối tượng trong ảnh, dãy biến đổi tuần tự này biến đổi chúng đến vị trí mới trong hệ tọa độ quan sát. Ma trận biểu diễn dãy biến đổi tuần tự này có thể được thu được bằng việc kết hợp các ma trận biến đổi như sau (xem hình 6-18):

Phản chiếu liên hệ đến mặt xy, đảo ngược dấu mỗi tọa độ z. Điều này thay đổi hệ quan sát bàn tay trái thành hệ quan sát bàn tay phải.

Tịnh tiến điểm quán sát đến gốc của hệ tọa độ thế giới thực.

Quay quanh trục tọa độ thế giới thực x để mang trục tọa độ quan sát z vào mặt phẳng xz của hệ tọa độ thế giới thực.

Quay quanh trục tọa độ thế giới thực y cho đến khi trục z của cả hai hệ trùng nhau.

Quay quanh trục tọa độ thế giới thực z để trục y của hệ quan sát và hệ thế giới thực trùng nhau.

Kết quả của mỗi phép biến đổi trên được thể hiện trong hình 6-18. Dãy tuần tự các biến đổi này có nhiều điểm chung với dãy các biến đổi để quay một đối tượng xung quanh một trục bất kỳ, và các thành phần của ma trận quan sát có thể được xác định bằng cách dùng các kỹ thuật tương tự kỹ thuật quay quanh một trục bất kỳ. Đối với các gói dùng hệ quan sát bàn tay phải, phép nghịch đảo giá trị z ở bước 1 là không cần thiết.

Không gian quan sát

Trong camera tương tự (analogy), kiểu len được dùng trên camera là yếu tố quyết định bao nhiêu cảnh được bắt trên film. Một len góc rộng (wide-angle len) giữ nhiều cảnh hơn len bình thường (regular len). Trong quan sát ba chiều, một cửa sổ chiếu được dùng với hiệu quả tương tự. Cửa sổ được định nghĩa bằng các giá trị nhỏ nhất và lớn nhất của x và y trên mặt quan sát (xem hình 6 -19). Hệ quan sát được dùng để tạo ra giới hạn của cửa sổ, cái có thể xuất hiện ở bất kỳ đâu trên mặt phẳng quan sát.

Cứa sổ chiếu được dùng để định nghĩa một không quan sát (view volume). Chỉ những đối tượng nằm trong không quan sátmới được chiếu và hiển thị lên mặt phẳng chiếu. Hình dạng chính xác của không quan sátdựa vào kiểu phép chiếu được yêu cầu bởi nguời dùng. Trong bất kỳ trường hợp nào, bốn mặt của không gian quan sát đi xuyên qua các cạnh của cửa sổ. Với phép chiếu song song, bốn mặt của không gian quan sát này hình thành một hình hộp không giới hạn (xem hình 6-20). Một hình chóp bị cắt cụt (hình kim tự tháp), với đỉnh nằm ở tâm chiếu (xem hình 6-21), được dùng như không gian quan sát cho phép chiếu phối cảnh. Hình chóp bị cắt cụt này được gọi là một hình cụt (frustum).

Vài vùng đồ họa giới hạn tọa độ của tâm chiếu là các vị trí dọc theo trục z của hệ quan sát. Chúng ta cần một tiếp cận tổng quát hơn là cho phép tâm chiếu được đặt ở bất kỳ vị trí nào trong hệ quan sát. Hình 6-22 trình bày hai hướng của không gian quan sát hình chóp liên hệ với các trục quan sát. Trong hình 6-22 (b), không điểm nào chiếu đến mặt phẳng quan sát, vì tâm chiếu và các đối tượng được quan sát thì ở cùng phía với mặt quan sát. Trong trường hợp này, không có cái gì nào được hiển thị.

Trong các phép chiếu song song, hướng của phép chiếu định nghĩa hướng của không gian quan sát. Bằng cách cho một vị trí liên hệ đến gốc hệ quan sát, người dùng định nghĩa được một vector xác định hướng của không gian quan sát liên hệ với mặt phẳng quan sát. Hình 6-23 trình bày hình dạng của các không gian quan sát cho cả hai: phép chiếu song song trực giao và phép chiếu song song xiên.

Thông thường, một hoặc hai mặt phẳng bổ sung được dùng để định nghĩa rõ hơn không gian quan sát. Gồm một mặt gần (near plane) và một mặt xa (far plane) tạo ra không gian quan sát có giới hạn, được bao quanh bởi sáu mặt phẳng, (xem hình 6-24). Các mặt gần và xa thì luôn song song với mặt phẳng quan sát, và chúng được xác định bởi các khoảng cách với mặt phẳng quan sát trong hệ quan sát. Các tên lần lượt cho các mặt gần và mặt xa là các mặt ở đây, ở đằng kia hay các mặt ở phía trước, phía sau.

Với các mặt phẳng này, người dùng có thể loại bỏ một số phần của cảnh khi thực hiện quan sát dựa trên độ sâu của chúng. Đây là một ý tưởng độc đáo khi dùng đến phép chiếu phối cảnh. Các đối tượng ở rất xa mặt phẳng quan sát khi chiếu đến có thể chỉ còn là một điểm đơn. Các đối tượng ở rất gần có thể che khuất các đối tượng khác mà người dùng muốn xem. Hoặc, khi được chiếu, các đối tượng ở gần có thể lớn đến nổi mà chúng nó vượt quá các biên cửa sổ và không thể được nhận ra.

Clipping

Một thuật toán clipping ba chiều xác định và lưu giữ tất cả các đoạn thẳng trong phạm vi không gian quan sát để sau đó chiếu lên mặt phẳng quan sát. Tất cả các đoạn thẳng bên ngoài không gian quan sát sẽ bị vứt bỏ. Việc clipping này có thể được thực hiện bằng cách dùng một sự mở rộng thuật toán clipping đường hai chiều hoặc dùng các phương pháp clipping đa giác. Các phương trình mặt phẳng định nghĩa các biên của không gian quan sát có thể được dùng đến để kiểm tra các vị trí liên hệ của các điểm đầu mút đoạn thẳng và để định vị các giao điểm.

Bằng cách thay thế các tọa độ của một điểm đầu mút đoạn thẳng vào trong phương trình mặt của biên, chúng ta có thể xác định được điểm đầu mút đó thì ở trong hay ở ngoài biên. Một điểm đầu mút (x, y, z) của đoạn thẳng thì ở ngoài một mặt phẳng biên nếu Ax + By + Cz + D > 0, với A, B, C, và D là các tham số mặt của biên đó. Tương tự, điểm ở trong biên nếu Ax + By + Cz + D < 0. Các đoạn thẳng có cả hai điểm đầu mút nằm bên ngoài một mặt phẳng biên sẽ bị vứt bỏ, và các đoạn thẳng nào có cả hai điểm đầu mút nằm bên trong tất cả các mặt biên sẽ được giữ lại. Giao điểm của một đoạn thẳng với một mặt biên được tìm bằng cách dùng các phương trình đường thẳng và phương trình mặt. Tọa độ giao điểm (x1, y1, z1) là các giá trị trên đường thẳng và thỏa phương trình mặt Ax1 + By1 + Cz1 + D = 0.

Khi hệ thống đã xác định được các đối tượng, mỗi đối tượng có độ ưu tiên riêng trong không gian quan sát, chúng nó được chiếu đến mặt phẳng quan sát. Tất cả các đối tượng trong không gian quan sát sẽ rơi nằm vào phạm vi cửa sổ chiếu. Cũng như trong không gian hai chiều, nội dung của cửa sổ sẽ được ánh xạ đến một vùng quan sát do người dùng chỉ định. Điều này làm chuẩn hóa các hệ tọa độ, sau đó, chúng được chuyển đổi đến các hệ tọa độ thiết bị thích hợp để hiển thị (xem hình 6-24).

0