Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 296 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
296
Dung lượng
1,14 MB
Nội dung
Chapter 3:Viewing I) Tổng quan : máy ảnh kỹ thuật số - Quá trình biến đổi sử dụng để tạo cảnh mong muốn để xem tương tự chụp ảnh máy ảnh - Các bước để thao tác với máy ảnh hay máy tính: + Bước 1: Đặt chân máy ảnh hướng máy ảnh tới khung cảnh(Viewing) + Bước 2: Sắp xếp cảnh cần chụp thành bố cục mong muốn(Modeling) - Các mặt cắt định nghĩa phương trình: Ax + By + Cz + D = Các giá trị A, B, C, D dùng để truyền vào hàm tạo nên mặt cắt OpenGL: glClipPlane() - Sau vẽ mặt cắt, OpenGL dựa vào phương trình sau để định điểm vật thể vẽ lên điểm không cần vẽ: (A B C D)*M^-1*P > 0, M ma trận modelview Phương trình hiểu điểm vật nằm mặt dương mặt cắt vẽ lên X) Các ví dụ kết hợp nhiều phép biến đổi (Gồm ví dụ hệ Mặt Trời cánh tay robot) XI) Phép biến đổi ngược phép biến đổi xi - Qua phần trước, thấy OpenGL định nghĩa rõ trình biến đổi cần thiết để chiếu vật không gian lên hình Nhưng có vấn đề đặt cần làm điều ngược lại: từ điểm hình suy điểm tương ứng khơng gian - Việc chiếu ngược từ hình điểm nhìn vào khơng gian có ứng dụng cụ thể, ví dụ trị chơi bắn súng mà di chuyển chuột chĩa súng theo “hướng” chuột Ở trò chơi lấy vị trí chỏ chuột sử dụng hàm biến đổi ngược để suy vị trí khơng gian để chỏ hướng súng đến vị trí - OpenGL cung cấp hàm để thực việc đó: gluUnProject() biến thể gluUnProject4() Các hàm đưa vào vị trí trỏ chuột hình, ma trận model, ma trận projection ma trận viewport kết vị trí chuột không gian Các tham số đầu vào hàm gluUnProject(): - winx, winy, winz tọa độ trỏ chuột Ở winx, winy lấy từ hình, cịn winz người dùng tự định nghĩa khoảng [0,1] (bởi chế làm việc với trục z OpenGL kẹp vùng nhìn thấy theo trục z khoảng [0,1] - modelMatrix ma trận model, hướng cột - projMatrix ma trận projection, hướng cột - viewport ma trận viewport, hướng cột - Tham số đầu objx, objy objz tọa độ không gian trỏ chuột - Biến thể gluUnProject4() đơn giản bỏ qua chế kẹp trục z OpenGL Đây lựa chọn khác cho người dùng , người dùng khai báo biến winz theo giá trị nào, đồng thời cần cung cấp thêm giá trị near far vùng nhìn thấy - Ngược lại với phép gluUnProject() phép gluProject(), thực việc chuyển từ tọa độ điểm không gian lên thành tọa độ điểm hình Các tham số truyền vào tương tự phép gluUnProject(), nhiên đầu vào objx, objy, objz đầu winx, winy, winz ... Bước 1: Đặt chân máy ảnh hướng máy ảnh tới khung cảnh (Viewing) + Bước 2: Sắp xếp cảnh cần chụp thành bố cục mong muốn(Modeling) + Bước 3: Chọn ống kính máy ảnh điều chỉnh độ phóng đại(Projection)... trình biến đổi định nghĩa khung nhìn, đối tượng ngồi khung bị cắt nên khơng vẽ cảnh nhìn 3 Quá trình thứ 3, tọa độ đỉnh mặt cắt phân chia tọa độ w để chuẩn hóa tọa độ 4 Quá trình thứ 4, tọa độ... Ví dụ: vẽ khối lập phương - Trong trình biến đổi viewing, sử dụng câu lệnh gluLookAt(), mục tiêu camera hướng nơi khối lập phương vẽ a) The Viewing Transformation - Trước thực phép biến đổi