Thông tin tài liệu:
Bài giảng Đồ họa máy tính: Lập trình 3D với OpenGL cung cấp cho người học những kiến thức như: Giới thiệu OpenGL; Drawing; Hiển thị và biến đổi; Ánh sáng;... Mời các bạn cùng tham khảo!
Nội dung trích xuất từ tài liệu:
Bài giảng Đồ họa máy tính: Lập trình 3D với OpenGL - Ngô Quốc Việt
LẬP TRÌNH 3D VỚI OPENGL
Ngô Quốc Việt - 2010
1. Giới thiệu OpenGL
2. Drawing
3. Hiển thị v{ biến đổi
4. Ánh s|ng
Ngô Quốc Việt-2010 2
1. Dave Shreiner, Jackie Neider, Mason Woo,
Tom Davis - OpenGL Programming Guide-
Addison Wesley – 1994 up to now).
2. http://glprogramming.com/red/
Ngô Quốc Việt-2010 3
Giúp sinh viên tiếp cận với lập trình đồ hoạ
3D.
C|c bước cơ bản nhất để tạo ứng dụng 3D
trên Windows.
Hướng dẫn c|c kh|i niệm chính của lập trình
3D với OpenGL/GLUT.
Ngô Quốc Việt-2010 4
OpenGL = Open Graphics Library
Do Silicon Graphics (SGI) ph|t triển v{o 1992.
Ph|t triển th{nh chuẩn từ IrisGL (1990-cũng
do SGI).
Độc lập HĐH.
L{ dạng State Machine (mọi biến l{ trạng
th|i).
Chỉ xử lý 3D Graphics. Không đòi hỏi platform
(Windowing, Fonts, Input, GUI)
Ngô Quốc Việt-2010 5
Giao diện phần mềm cho phần cứng đồ
hoạ (~150 commands).
L{ API đồ hoạ 3 chiều
High-quality color images composed of
geometric and image primitives
Với OpenGL, developer phải tự tạo
model thông qua c|c đối tượng hình học
cơ bản.
Quản lý bởi Khronos Group.
Ngô Quốc Việt-2010 6
OpenGL. Phiên bản mới OpenGL 4.0.
Scene Graphs, BSP: Open SceneGraph,
Java3D, VRML, PLIB
DirectX (Direct3D)
Có thể kết hợp một v{i phần của DirectX với
OpenGL (vd: OpenGL v{ DirectInput trong
Quake III)
C|c thư viện hỗ trợ: GL(graphics library), GLU
(graphics library utilities).
GLUT: dễ, đơn giản khi l{m việc với OpenGL.
Ngô Quốc Việt-2010 7
Sử dụng vector 4 th{nh
phần để biểu diễn điểm.
Được xem l{ hệ toạ độ
thuần nhất.
Gi| trị w thường bằng 1.
Ngô Quốc Việt-2010 8
Miền gi| trị m{u (R, G, B, A) trong khoảng [0,1].
Toạ độ (X,Y, Z) theo right-hand rule.
Đơn vị hệ toạ độ: do x|c lập tuỳ theo dữ liệu v{
ứng dụng
Thường sử dụng World Coordinate System
(miền gi| trị -1 đến 1) để mô hình đối tượng.
World Coordinate System có được do chuyển
biến đổi từ toạ độ đối tượng qua ma trận
ModelView.
Toạ độ mắt được x}y dựng từ phép biến đổi qua
ma trận ModelView
Ngô Quốc Việt-2010 9
Ma trận ModelView chứa cả hai phép biến đổi
cho mô hình v{ mắt nhìn. Mắt nhìn tại gốc,
với hướng nhìn dọc theo trục Z }m.
Toạ độ xén do biến đổi toạ độ mắt nhìn qua
ma trận Projection. Miền gi| trị toạ độ của 3
trục từ -Wc đến Wc.
Phối cảnh thực hiện trên Clip Coordinates tạo
ra Normalized Device Coordinates, với miền
gi| trị -1 to 1 cho cả 3 trục
Ngô Quốc Việt-2010 10
11
Ngô Quốc Việt-2010 12
Dùng cho biến đổi vị trí camera (biến đổi vị trí
quan s|t)
Dùng cho biến đổi v{ hướng của mô hình (vật
thể cần vẽ).
Ngô Quốc Việt-2010 13
X|c định lens cho camera.
X|c định vùng nhìn (field of view) v{ c|c tham
số kh|c
Có thể thực hiện d~y c|c biến đổi qua kh|i
niệm matrix stack với c|c h{m.
Ngô Quốc Việt-2010 14
Ngô Quốc Việt-2010 15
Fovy = góc (theo độ) của vùng nhìn (field of view) theo hướng y .
Aspect = tỉ lệ của vùng nhìn theo hướng x
Ngô Quốc Việt-2010 16
Ngô Quốc Việt-2010 17
Vị trí camera, điểm camera hướng đến, v{
vector hướng của camera
18
Functions in OpenGL start with gl
Hầu hết h{m bắt đầu gl (e.g., glColor())
Một số h{m bắt đầu với glu l{ h{m tiện tích (e.g.,
gluLookAt())
H{m bắt đầu với glx l{ giao diện với X Windows
system (e.g., in gfx.c)
Ngô Quốc Việt-2010 19
Ngô Quốc Việt-2010 20