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

Giới thiệu OpenGL pot

35 175 2

Đ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

Thông tin cơ bản

Định dạng
Số trang 35
Dung lượng 550,15 KB

Nội dung

Giới thiệu OpenGL Các công cụ ĐHMT Công cụ Phần cứng Thiết bị ra Thiết bị vào Phần mềm Hàm vẽ cơ bản Hàm với qlý cửa sổ Hàm về máy quay Đồ họa độc lập thiết bị • Thư viện đồ họa độc lập thiết bị: cho phép sử dụng tập hàm đồ họa chung chạy trên nhiều hệ thống khác nhau. OpenGL Đồ họa độc lập thiết bị: OpenGL • Cho phép cùng chương trình đồ họa chạy trên nhiều máy khác nhau và cho ra kết quả hầu như hoàn toàn giống nhau. – Dùng các tệp .dll • OpenGL như là một API: nó điều khiển phần cứng bạn đang sử dujg và bạn chỉ cẩn dùng các hàm của OpenGL thay vì điều khiển thiết bị phần cứng trực tiếp. • OpenGL là open source (free). Chương trình hướng sự kiện • Đáp ứng các sự kiệt như click, di chuyển chuột, bấm phím, thay đổi kích cỡ cửa sổ. Hệ thống quản lý sự kiện theo hàng đợi. • Người lập trình cung cấp các hàm “call-back” để điều khiển mỗi sự kiện. • Hàm call-back phải được đăng kí với OpenGL để OpenGL biết hàm nào điều khiển sự kiện nào. • Hàm đăng kí không gọi nó! Cài đặt và cấu hình • Files: .h, .lib, .dll – Toàn bộ thư mục gl được đặt trong thư mục Include của Visual C++ – Toàn bộ các tệp lib được đặt trong thư mục lib của Visual C++ – Toàn bộ các tệp dll được đặt trong C:\Windows\System32 Sử dụng OpenGL • Includes: – <windows.h> – <gl/gl.h> – <gl/glu.h> – <gl/glut.h> – <gl/glui.h> (nếu sử dụng) Thư viện thêm vào thư mục include • GL, câu lệnh bắt đầu với GL; • GLUT, GL Utility Toolkit, mở cửa sổ, phát triển thực đơn và quản lý sự kiện. • GLU, GL Utility Library, cung cấp các hàm mức cao để điều khiển các thao tác vẽ phức tạp. • GLUI, User Interface Library, được tích hợp vào GLUT library. – Hàm GLUT phải có sẵn cho GLUI để thao tác được chính xác. – GLUI cung cấp các điều khiển và thực đơn phức tạp cho các ứng dụng OpenGL Sử dụng OpenGL • Thay đổi project settings: Visual C++ 6.0 – Project /Settings – Trong Object/library modules: thêm glui32.lib glut32.lib glu32.lib opengl32.lib (dùng dấu cách phân cách) – Trong Project Options: thêm cùng tập các tệp .lib – Đóng thực đơn Project và lưu workspace Sử dụng OpenGL (2) • Thay đổi project settings: Visual C++ .NET 2003 – Project/Properties/Linker/Command Line – Thêm glui32.lib glut32.lib glu32.lib opengl32.lib – Đóng thực đơn Project và lưu sự thay đổi [...]... glVertex2i (150, 130); • glEnd(); • GL_POINTS hằng Open-GL (GL_LINES, GL_POLYGON, …) Hiển thị các điểm Hàm OpenGL Ví dụ về hàm OpenGL • glVertex2i (…) lấy một giá trị nguyên • glVertex2d (…) lấy một giá trị thực • OpenGL sử dụng kiểu dữ liệu của OpenGL Kiểu dữ liệu OpenGL suffix data type C/C++ type OpenGL type name b 8-bit integer signed char GLbyte s 16-bit integer Short GLshort i 32-bit integer int... của chương trình Vẽ các điểm trong OpenGL • Hệ trục tọa độ 0 đến 679 cho trục x và 0 đến 479 cho trục y • OpenGL vẽ dựa trên các đỉnh (vertices hoặc corners) Để vẽ một đối tượng trong OpenGL, đặt một danh sách các đỉnh trong glBegin và glEnd – Danh sách bắt đầu với glBegin(arg); và kết thúc với glEnd(); – Arg xác định đối tượng vẽ – glEnd() Gửi dữ liệu vẽ vào luồng OpenGL Ví dụ • glBegin (GL_POINTS);... GLuint,Glenum,GLbitfield Màu trong OpenGL • glColor3f(red, green, blue); // set drawing color – glColor3f(1.0, 0.0, 0.0); – glColor3f(0.0, 1.0, 0.0); – glColor3f(0.0, 0.0, 1.0); – glColor3f(0.0, 0.0, 0.0); – glColor3f(1.0, 1.0, 1.0); – glColor3f(1.0, 1.0, 0.0); – glColor3f(1.0, 0.0, 1.0); // red // green // blue // black // bright white // bright yellow // magenta Màu nền trong OpenGL • glClearColor (red,... scan controller y at (639, 0) geometric position 0 639 0 pixel at address [x,y] frame buffer spot at (x,y) convert pixel 479 value to color display surface y at (639, 479) x Mối liên hệ giữa các thiết bị (3) • Based on cathode ray tube (CRT) x scan controller y x red y green pixel value frame buffer (6 planes) spot blue DAC's electron beam guns deflection coils ... cp thành (x, y) Ví dụ: vẽ hình vuông • moveTo(4, 4); //move to starting corner • lineTo(-2, 4); • lineTo(-2, -2); • lineTo(4, -2); • lineTo(4, 4); //close the square Khung một chương trình // include OpenGL libraries void main() { glutDisplayFunc(myDisplay); // register the redraw function glutReshapeFunc(myReshape); // register the reshape function glutMouseFunc(myMouse); // register the mouse action . Giới thiệu OpenGL Các công cụ ĐHMT Công cụ Phần cứng Thiết bị ra Thiết bị vào. tập hàm đồ họa chung chạy trên nhiều hệ thống khác nhau. OpenGL Đồ họa độc lập thiết bị: OpenGL • Cho phép cùng chương trình đồ họa chạy trên nhiều

Ngày đăng: 23/03/2014, 11:21

w