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

Bài giảng Đồ họa máy tính: Đồ họa ba chiều - Ngô Quốc Việt

36 17 0

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

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Bài giảng Đồ họa máy tính: Đồ họa ba chiều cung cấp cho người học những kiến thức như: Giới thiệu; Biểu diễn đối tượng đồ họa ba chiều; Một số công thức hình học; Các phép chiếu; Mặt ba chiều có quy luật. Mời các bạn cùng tham khảo!

ĐỒ HỌA BA CHIỀU NGÔ QUỐC VIỆT 2009        Giới thiệu Biểu diễn đối tượng đồ họa ba chiều Một số cơng thức hình học Các phép chiếu Mặt ba chiều có quy luật Bài tập Giải đáp thắc mắc   OpenGL-GLUT (thư viện đồ họa 3D) Graphics Gems I, II, III, IV (mã nguồn mở) Modeling Transformation Lighting Biến đổi vô hệ toạ độ giới 3D Chiếu sáng theo ánh sáng độ phản chiếu Viewing Transformation Biến đổi vô hệ toạ độ 3D camera Projection Transformation Biến đổi vơ hệ toạ độ hình into 2D Clipping Scan Conversion Image Loại bỏ thực thể ngồi vùng nhìn camera Vẽ pixel (dán ảnh, khử mặt khuất, …  Mơ hình đối tượng ba chiều  Points  Wire frame  Mesh  Solid  Đồ họa OpenGL với thư viện GLUT  Nguyên tắc bàn tay trái bàn tay phải  Right-hand sử dụng OpenGL  Góc xoay dương    Thông qua ma trận chiếu 4x4 Gồm MODELVIEW PROJECTIONVIEW Model View: Tác động trực tiếp lên đối tượng (hay scene), vị trí camera Sử dụng glMatrixView(GL_MODELVIEW) Projection View: mô tả kiểu camera Phép biến đổi tác động lên camera (lens, field of view) glMatrixView(GL_PROJECTION)   3D Cartesian coordinate system Gốc (0,0,0) tâm hình Nguồn -Greg Sidelnikov      Toạ độ đối tượng toạ độ thô chuyển cho OpenGL với hàm glVertex*() Toạ độ đối tượng chuyển thành toạ độ mắt nhìn với phép biến đổi qua ma trận ModelView Toạ độ mắt nhìn đượ chuyển thành toạ độ Clip qua ma trận Projection Toạ độ clip X, Y, Z chuyển thành Clip Coordinate W để tạo Normalized Device Coordinates Normalized Device Coordinates tỉ lệ tịnh tiến qua tham số viewport để tạo toạ độ Window 10  Xét công thức chiếu phối cảnh điểm 3D  Do góc trái hình (0,0) Điểm (0,0,-16) chiếu tâm hình Giá trị HALFWIDTH HALFHEIGHT nửa độ rộng cao hình  22    Giá trị ViewingDistance liên quan đến viewer ViewingDistance lớn  khối nhìn nhỏ  đối tượng nhỏ Có mâu thuẫn với cơng thức ? 23       Viewing Volume cò gọi Clipping volume Frustum Mặt phẳng gần mặt xén xa Mọi thứ sau mặt xén xa invisible Frustum khơng gian hai mặp phẳng Viewing Distance khoảng cách viewer mặt gần Chỉ nhìn thấy view volumn Nguồn -Greg Sidelnikov 24 1 0 Mperspective   0  0  x  1  y  0    z  0     z d  0 0 0 1d 0 0 1d 0 0 0  0 0  x  0  y  0  z    0   Trong tọa độ 3-D:  x  , z d y , z d  d   25 Chỉ vùng nhìn hình theo đơn vị pixel Xác lập GL nối với cửa sổ với kích thước glViewport xác định biến đổi từ toạ độ normalized device sang toạ độ cửa sổ, với (xnd, ynd) toạ độ chiếu điểm 3D, (x, y) góc trái viewport  Normalized coordinates có miền xác định[-1 1]    26  Xác lập ma trận chiếu phối cảnh gluPerspective( GLdouble fovy, GLdouble aspect, GLdouble zNear, GLdouble zFar) fovy: liếc theo góc thẳng đứng; aspect: tỉ lệ ngang dọc; zNear, zFar: khoảng xén  Ma trận chiếu xác định sau  27  Đồng với mắt nhìn Ln nằm tâm “view” ảo Camera có hệ toạ độ riêng Nguồn -Greg Sidelnikov 28  Điểm: Tập đ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 điểm ba chiều cạnh nối điểm nhằm biểu diễn đối tượng 29  Sử dụng mảng, DSLK tập hợp để lưu trữ điểm cạnh đối tượng typedef struct tagEdge3D { int idEdge; Point3D end1, end2; //hai đỉnh cạnh data edgeProperties; //tính chất cạnh } Edge3D; typedef struct tagWirreFrame { //có thể chứa thêm 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 } 30  One Possible Data Structure: Point3D = record x, y, z : real; end ; Figure = array (1 8, 8) of Point3D; Map = array (1 8, 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 for I in loop for J in loop if Map (I,J) then Draw line between point I and point J 31    glMatrixMode(GL_MODELVIEW); glLoadIdentity(); gluLookAt( eyeX, eyeY, eyeZ, lookX, lookY, lookZ, upX, upY, upZ);  eye[XYZ]: vị trí camera toạ độ thực  look[XYZ]: điểm nhìn camera  up[XYZ]: vector xác định trục đứng camera  Tạo ma trận nhằm biến đổi điểm giới thực vào hệ toạ độ camera  Camera at origin  Nhìn theo hướng -Z (âm Z)  Vector hướng lên dọc theo trụcY 32 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, ); // up vector glRotatef( theta, 0, 0, ); // rotate the model glScalef( zoom, zoom, zoom ); // scale the model } 33  Mơ hình kinh điển đồ họa chiều (tương tự ảnh Lena xử lý ảnh) Do Martin Newell xây dựng 1975 Dữ liệu tập tọa độ chiều Các mặt Bezier 34 Wireframe Points 35 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 Windows Application 36 ... Giới thiệu Biểu diễn đối tượng đồ họa ba chiều Một số công thức hình học Các phép chiếu Mặt ba chiều có quy luật Bài tập Giải đáp thắc mắc   OpenGL-GLUT (thư viện đồ họa 3D) Graphics Gems I, II,... Projection Miền giá trị toạ độ trục từ -Wc đến Wc Phối cảnh thực Clip Coordinates tạo Normalized Device Coordinates, với miền giá trị -1 to cho trục Ngô Quốc Việt- 2010 11 Chiếu song song Chiếu phối... Matrix 7-1 3 17   Đối tượng gần người xem  lớn Đường song song hội tụ điểm • Điểm hội tụ tâm hình • Xác định view frustum 18 • Khi làm việc với đồ họa 3-D graphics, xem cửa sổ hai chiều giới 3-D:

Ngày đăng: 26/10/2021, 13:25

Xem thêm:

HÌNH ẢNH LIÊN QUAN

 Một số công thức hình học - Bài giảng Đồ họa máy tính: Đồ họa ba chiều - Ngô Quốc Việt
t số công thức hình học (Trang 2)
Biến đổi vô hệ toạ độ màn hình into 2D - Bài giảng Đồ họa máy tính: Đồ họa ba chiều - Ngô Quốc Việt
i ến đổi vô hệ toạ độ màn hình into 2D (Trang 4)
 Gốc (0,0,0) tại tâm màn hình. - Bài giảng Đồ họa máy tính: Đồ họa ba chiều - Ngô Quốc Việt
c (0,0,0) tại tâm màn hình (Trang 9)
• Điểm hội tụ tại tâm màn hình •Xác định bởiview frustum. - Bài giảng Đồ họa máy tính: Đồ họa ba chiều - Ngô Quốc Việt
i ểm hội tụ tại tâm màn hình •Xác định bởiview frustum (Trang 18)
hình như cửa sổ hai chiều trong thế giới 3-D: - Bài giảng Đồ họa máy tính: Đồ họa ba chiều - Ngô Quốc Việt
hình nh ư cửa sổ hai chiều trong thế giới 3-D: (Trang 19)
• Sử dụng nguyên tắc tam giác đồng dạng. Xét hình sau: - Bài giảng Đồ họa máy tính: Đồ họa ba chiều - Ngô Quốc Việt
d ụng nguyên tắc tam giác đồng dạng. Xét hình sau: (Trang 20)
 Do góc trái trên màn hình là (0,0). Điểm (0,0,-16) sẽ được chiếu ở tâm màn hình. - Bài giảng Đồ họa máy tính: Đồ họa ba chiều - Ngô Quốc Việt
o góc trái trên màn hình là (0,0). Điểm (0,0,-16) sẽ được chiếu ở tâm màn hình (Trang 22)
 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. - Bài giảng Đồ họa máy tính: Đồ họa ba chiều - Ngô Quốc Việt
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 (Trang 34)

TỪ KHÓA LIÊN QUAN

w