Hệ thống chuyển đổi hình học (the Geometry Pipeline)

Một phần của tài liệu Beginning DirectX9 pot (Trang 80 - 82)

Ở các phần trên, ta đã sử dụng hệ tọa độ được quy đổi trước để vẽ các vật thể lên màn hình. Điều đó có nghĩa là vị trí của đối tượng về cơ bản đã được định nghĩa trước ở trên màn hình. Việc đó làm hạn chế không gian của ta và sự chuyển động của các vật thể ở

trong nó.

Phần lớn mô hình 3D không được tạo ra thông qua code. Ví dụ như, nếu bạn làm một game đua xe, chắc hẳn bạn sẽ tạo mô hình ô tô bằng các phần mềm dựng 3D. Trong suốt quá trình đó, ta có thể làm việc với mô hình một cách độc lập với hệ tọa độ tổng thể. Tức là các đối tượng sẽ được tạo ra từ tập hợp các vecto mà không cần quan tâm đến vị trí chính xác ở đâu và cách đặt như thế nào trong môi trường game. Chính vì lý do này mà bạn cần phải tự mình di chuyển và xoay các mô hình theo ý của bạn.

Bạn có thể thực hiện điều đó qua hệ thống chuyển đổi hình học. Hệ thống này là là một quá trình cho phép bạn biến đổi các đối tượng từ hệ tọa độ này sang hệ tọa độ khác.

Khi một mô hình được khởi dựng, nó thường được

đặt vào trung tâm ở gốc tọa độ. Nó làm cho mô hình

được đặt vào trung tâm của môi trường theo một hướng mặc định.

Không phải tất cả mô hình bạn nạp vào đều nằm ở

gốc tọa độ, vậy làm thế nào để đặt mô hình vào đúng vị trí? Câu trả lời là sử dụng các phép biến đổi. Hình 5.3 biểu diễn một hình hộp được đặt ở trung tâm tại gốc tọa độ.

Các phép biến đổi bao gồm dịch chuyển, xoay, tỉ lệ. Thực hiện chúng với mô hình, bạn có thểđặt nó theo

ý muốn. Các phép biến đổi đó được thực hiện thông Hình 5.3: Hình hộp được đặt

Khi bạn nạp vào một mô hình, các vecto của nó được đặt trong một hệ tọa độ địa phương gọi là không gian mô hình. Không gian mô hình thì liên hệ với hệ tọa độ tổng thể nơi mà mô hình được đặt vào. Ví dụ như, trong lúc tạo đối tượng, các vecto của đối tượng sẽ liên quan đến một điểm gốc nằm ở gần chúng. Một hình hộp kích thước 2 đơn vị được đặt ở

trung tâm thì các vecto của nó sẽ cách gôc tọa độ là 1 đơn vị theo các trục. Nếu bạn muốn

đặt hình hộp này ở đâu đó khác, bạn cần phải biến đổi các vecto của nó từ hệ tọa độđịa phương sang hệ tọa độ tổng thể. Hệ tọa độ tổng thể này, được gọi là (world space) và quá trình biến đổi các vecto sang hệ thống này gọi là (world transformation).

World Transformation

Giai đoạn (world transformation) của hệ chuyển

đổi hình học sẽ đưa một đối tượng với hệ toạ độ địa phương của nó sang hệ toạđộ tổng thể.

Hệ toạđộ tổng thể là một hệ thống mà các vật thể được đặt ở đúng vị trí của nó trong không gian 3D. Các mô hình sau khi được chuyển đổi về hệ

tổng thể này sẽ được gắn với một điểm gốc duy nhất của hệ. Hình 5.5 biểu diễn các đối tượng 3D

được gắn với một gốc toạđộ .

Giai đoạn tiếp theo của hệ chuyển đổi hình học là (view transformation). Bởi vì tất cả các đối tượng

ở thời điểm này đã được gắn với một điểm gốc duy nhất, do đó bạn chỉ có thể quan sát chúng từ

điểm này. Để có thể quan sát khung cảnh từ một HÌnh 5.5: Các đối tượng gắn

điểm bất kì, chúng ta cần đến phép biến đổi chung với 1 điểm gốc

view transformation.

View Transformation

View transformation biến đổi tọa độ từ không gian thực sang không gian camera. Không gian camera được gắn với một hệ tọa độ để xác định vị trí của nó. Khi ta đặt một điểm nhìn cho camera (ảo) thì hệ tọa độ của không gian thực sẽ thay đổi tương ứng với camera

Với góc quay và điểm nhìn của camera, bạn đã có thể biểu diễn mọi thứ lên màn hình.

Một phần của tài liệu Beginning DirectX9 pot (Trang 80 - 82)