Tải bản đầy đủ (.pdf) (49 trang)

Giới thiệu và tổng quan thư viên OpenGL và GLUT doc

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (974.73 KB, 49 trang )

OPENGL
Giới thiệu và tổng quan thư viên
OpenGL và GLUT
Giới thiệu OpenGL
• OpenGL (Open Graphics Library) là một tiêu
chuẩn kỹ thuật đồ họa có mục đích định ra một giao
diện lập trình ứng dụng (API) đồ họa ba chiều.
OpenGL cũng có thể được dùng trong các ứng dụng đồ
họa 2 chiều. Giao diện lập trình này chứa khoảng 250
hàm để vẽ các cảnh phức tạp từ những hàm đơn giản. Nó
được dùng rộng rãi trong các trò chơi điện tử. Ngoài ra nó
còn được dùng ứng dụng CAD, thực tại ảo, mô phỏng
khoa học, mô phỏng thông tin, phát triển trò chơi.
• OpenGL còn một đối thủ cạnh tranh là DirectX của
Microsoft
Không gian trong OpenGL
• Không gian trong OpenGL được miêu tả qua
hình học xạ ảnh. Một điểm trong không gian
này có tất cả 4 tọa độ. Cách thể hiện các điểm
trong không gian bằng 4 tọa độ cho phép xử lý
các điểm vô tận một cách tổng quát. Vì vậy mã
nguồn các ứng dụng đã được đơn giản hóa đi
nhiều.
Thiết kế
• OpenGL được thiết kế nhằm thỏa mãn mục đích chính
sau:
– Che dấu sự tuơng tác phức tạp với các bộ máy xúc tiến 3
chiều bằng cách đưa ra một giao diện lập trình thống nhất.
– Che dấu các sự khác biệt giữa các phần cứng 3 chiều bằng
cách bắt buộc các phần cứng tương thích OpenGL phải hỗ
trợ tất cả các chức năng của giao diện OpenGL. Nếu cần,


các chức năng chưa được hỗ trợ đầy đủ bởi phần cứng có
thể được hỗ trợ bằng phần mềm.
Các thao tác OpenGL cơ bản là nhận các nguyên hàm hình
học như điểm, đường thẳng và đa giác rồi chuyển thành các
điểm đồ họa (pixel) trên màn hình.
Những thứ OpenGL không hỗ trợ
• Bản thân OpenGL không có sẵn các hàm nhập
xuất hay thao tác trên window
• OpenGL không có sẵn các hàm cấp cao để xây
dựng các mô hình đối tượng, thay vào đó, người
dùng phải tự xây dựng từ các thành phần hình học
cơ bản ( điểm, đoạn thẳng, đa giác).
 Rất may là một số thư viện cung cấp sẵn một số
hàm cấp cao được xây dựng nên từ OpenGL.
GLUT (OpenGL Utility Toolkit) là một trong số
đó và được sử dụng rộng rãi. Trong tài liệu này,
chúng ta sẽ sử dụng chủ yếu là OpenGL và
GLUT.
Các trò chơi được viết với OpenGL
• Hẳn các bạn đều biết game này?
– Half-Life
– Warcraft 3
– World of Warcraft
– CounterStrike 1.6
– America's Army
– City of Villains
– Serious Sam
– …………
Hình ảnh
Khúc xạ dùng OpenGL

Trò chơi dùng OpenGL
Kết cấu di dộng dùng OpenGL
Tài liệu tham khảo
• GLSL - Ngôn ngữ chuyển màu OpenGL
• Cg - Ngôn ngữ chuyển màu của hãng nVidia
dùng cho OpenGL
• Java OpenGL - OpenGL cho JavaOpenGL
• ES - OpenGL for embedded systems
• OpenAL - Thư viện âm thanh tự do thiết kế với
mục địch dùng chung với OpenGL.
• OpenSL ES - Một thư viện âm thanh khác
• Graphics pipeline
Thư viện hỗ trợ OpenGL
• GLUT - Thư viện công cụ cho OpenGL
• GLU - Thư viện hàm cho các ứng dụng
OpenGL
Các giao diện lập trình đồ họa khác
• Mesa 3D - Một thư viện thực thi OpenGL mã
nguồn mở
• Direct3D - Thư viện đồ họa của Microsoft
• Light Weight Java Game Library
• VirtualGL
OpenGL Utility Toolkit (GLUT)
• Để khắc phục một số nhược điểm của OpenGL,
GLUT được tạo ra với với nhiều hàm hỗ trợ
– Quản lý window
– Display callback
– Nhập xuất (bàn phím, chuột,…)
– Vẽ một số đối tượng 3D phức tạp (mặt cầu,
khối hộp,…)

Cài đặt OpenGL
Cài đặt trên Windows
Cài đặt trên Mac OS X
Cài đặt trên Linux
Cài đặt môi trường Linux
• Chuẩn bị thư viện:
– Copy file thư viện của OpenGL vào thư mục
/usr/include/GL/
– Cài đặt thư viện glut cho hệ thống: Sudo apt-get install
freeglut3-dev
• Cài đặt trình biên dịch C/C++ GNU: tại terminal

Sudo apt-get install g++
• Tạo file code C++ (.CPP)
• Compile và run
Cài đặt trên Windows và Visual Studio
2010/2008
• runtime libraries: opengl32.ddl, glu32.ddl
C:\Windows\System32\
trên win 64 bít thì C:\Windows\SysWOW64
• header files: GL.h, GLU.h
C:\Program Files\Microsoft
SDKs\Windows\v7.0A\Include\GL\
Trên win 64 bit thì là Program Files (x86) VS2008: v6.0A
• linker library: OpenGL32.lib
C:\Program Files\Microsoft
SDKs\Windows\v7.0A\Lib\OpenGL32.Lib
Trên win 64 bit thì là Program Files (x86) VS2008: v6.0A
Video hướng dẫn
• Video (settup1.wmv) Windows 32bit – Visual

C++ 2010
• Video (settup2.wmv) Windows 64bit – Visual
studio 2010

Tạo Project
Cấu trúc chương trình openGL đơn giản
• Xét hàm main sau:
int main(int argc, char** argv)
{
glutInit(&argc, argv);
glutInitDisplayMode (GLUT_SINGLE | GLUT_RGB);
glutInitWindowSize (250, 250);
glutInitWindowPosition (100, 100);
glutCreateWindow ("hello");
init ();
glutDisplayFunc(display);
glutMainLoop();
return 0;
}
Khởi tạo - glutInit

• Điều đầu tiên chúng ta cần làm là gọi glutInit()
làm thủ tục khởi tạo. Nó phải được gọi trước khi
bất kỳ đối tượng GLUT nào bởi vì nó khởi tạo
thư viện GLUT .
• argc, argv là 2 đối số dòng lệnh của hàm main
glutInitDisplayMode()
• Điều tiếp theo chúng tôi cần làm là gọi

glutInitDisplayMode() làm thủ tục để xác định chế độ
hiển thị cho cửa sổ.Bạn phải quyết định xem bạn muốn
sử dụng một RGBA GLUT_RGBA hoặc màu chỉ số
GLUT_INDEX mô hình màu.
• Khi thiết lập chế độ hiển thị là liệu bạn muốn sử dụng
đệm đơn GLUT_SINGLE hoặc đệm đôi
GLUT_DOUBLE.
• Cuối cùng, bạn phải quyết định xem bạn muốn sử dụng
một bộ đệm chiều sâu GLUT_DEPTH, đệm stencil
GLUT_STENCIL và / hoặc đệm một sự tích lũy
GLUT_ACCUM.
glutInitWindowSize()

• Hàm này sử dụng tạo kích thức của cửa sổ,
trong cửa số màn hình với tham số truyền vào
là chiều cao và chiều rộng tính bằng pixcel
glutInitWindowPosition()


• Hàm glutInitWindowPosition() được sử dụng
để xác định vị trí màn hình cho góc trên bên
trái của cửa sổ ban đầu.

×