Đồng nhất với mắt nhìn Luôn nằm ở tâm của “view” ảo Camera có hệ toạ độ riêng

Một phần của tài liệu Bài giảng Đồ họa máy tính: Đồ họa ba chiều - Ngô Quốc Việt (Trang 28 - 36)

 Điểm: Tập các điểm ba chiều nhằm biểu diễn đối tượng.

typedef struct tagPoint3D { double x, y, z;

} Point3D;

 Wireframe: tập các điểm ba chiều và cạnh nối giữa

các điểm nhằm biểu diễn đối tượng.

 Sử dụng mảng, DSLK hoặc tập hợp để lưu trữ các điểm và cạnh của đối tượng .

typedef struct tagEdge3D { int idEdge;

Point3D end1, end2; //hai đỉnh của cạnh data edgeProperties; //tính chất của cạnh } Edge3D;

typedef struct tagWirreFrame { //có thể chứa thêm các mặt. int numVertices, numVerEdges; //số đỉnh, số cạnh

Point3D arrPoints[]; //mảng chứa tập đỉnh Edge3D arrEdges[]; //mảng chứa tập cạnh }

 One Possible Data Structure:

Point3D = record x, y, z : real; end ; Figure = array (1..8, 1..8) of Point3D; Map = array (1..8, 1..8) of boolean;

Map(i, j) = true if i, j connected else Map(i, J) = false Example Map(1, 4) = true but Map(1, 8) = false

31

for I in 1..8 loop for J in 1..8 loop if Map (I,J) then Draw line between point I and point J

 glMatrixMode(GL_MODELVIEW);

 glLoadIdentity();

 gluLookAt( eyeX, eyeY, eyeZ, lookX, lookY, lookZ,

upX, upY, upZ);

 eye[XYZ]: vị trí camera trong toạ độ thực.

 look[XYZ]: điểm nhìn của camera.

 up[XYZ]: vector xác định trục đứng của camera.

 Tạo ma trận nhằm biến đổi điểm trong thế giới thực vào hệ toạ độ camera.

 Camera at origin.

 Nhìn theo hướng -Z (âm Z). 

33

void SetUpViewing() {

// The viewport isn’t a matrix, it’s just state... glViewport( 0, 0, window_width, window_height ); // Set up camera->screen transformation first glMatrixMode( GL_PROJECTION );

glLoadIdentity();

gluPerspective( 60, 1, 1, 1000 ); // fov, aspect, near, far

// Set up the model->camera transformation glMatrixMode( GL_MODELVIEW );

gluLookAt( 3, 3, 2, // eye point

0, 0, 0, // look at point 0, 0, 1 ); // up vector

glRotatef( theta, 0, 0, 1 ); // rotate the model glScalef( zoom, zoom, zoom ); // scale the model }

 Mô hình kinh điển trong đồ họa 3 chiều (tương tự như ảnh Lena trong xử lý ảnh). Do Martin Newell xây dựng 1975.

Dữ liệu là tập các tọa độ 3 chiều.

35

1. Thực hành: cài đặt hiển thị điểm, line, polyline với OpenGL. Sử dụng GLUT với Console Application hoặc Windows Application.

Một phần của tài liệu Bài giảng Đồ họa máy tính: Đồ họa ba chiều - Ngô Quốc Việt (Trang 28 - 36)

Tải bản đầy đủ (PDF)

(36 trang)