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

043_Môi trường phát triển đồ họa trên thiết bị nhúng OpenGLES

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 (209.44 KB, 2 trang )

-54-

MÔI TRƯỜNG PHÁT TRIỂN ĐỒ HỌA TRÊN THIẾT BỊ NHÚNG
OPENGL/ES


Thái Thanh Lâm
MSV: 0320185
Email:

Kiều Văn Hùng
MSV: 0320158
Email:



Người hướng dẫn: ThS. Vũ Quang Dũng


1. Giới thiệu
Ngày nay, các thiết bị cầm tay đang có xu
hướng trở thành những máy tính cá nhân cầm
tay và theo dự đoán, tới năm 2008 sẽ có khoảng
50% thiết bị cầm tay hỗ trợ nội dung đa phương
tiện. Như vậy, thiết bị cầm tay sẽ trở thành một
môi trường rộng lớn mới cho các nhà phát triển
phần mềm đa phương tiện. Do đó, việc nghiên
cứu và phát triển môi trường cho các ứng dụng
đa phương tiện trên thiết bị nhúng vào lúc này
là cần thiết. Trong đề tài này, chúng tôi nghiên
cứu về môi trường phát triển đồ họa trên các


thiết bị nhúng OpenGL/ES.
2. Khái niệm hệ thống nhúng
Hệ thống nhúng (tiếng Anh: Embedded
system) là một thuật ngữ để chỉ một hệ thống có
khả năng tự làm việc được nhúng vào trong một
môi trường hay một hệ thống mẹ. Hệ thống
nhúng có vai trò đảm nhận một phần công việc
cụ thể của hệ thống mẹ. Hệ thống nhúng có thể
là một hệ thống phần cứng và cũng có thể là
mộ
t hệ thống phần mềm.
Một hệ thống nhúng thường thì chỉ thực hiện
chỉ một chương trình và lặp đi lặp lại nhiều lần.
Đồng thời hệ thống nhúng được yêu cầu chặt
chẽ về mọi mặt như giá thành, kích thước, hiệu
suất (tốc độ) và năng lượng tiêu thụ khi sử
dụng.
Một số hệ thống nhúng còn được yêu c
ầu
hoạt động và xử lý trên thời gian thực, tức là
tính toán và cho ra kết quả tức thời với độ trễ
rất nhỏ ở mức chấp nhận được.
3. Kiến trúc hệ nhúng (Windows CE)
Phần này nghiên cứu về cấu trúc của hệ
thống nhúng Windows CE. Cung cấp nội dung
về mô hình thiết kế nền tảng của hệ điều hành
Windows CE dành cho các hệ thống nhúng và
cơ chế hoạt động cơ bản của nó, bao gồm:
- Cơ chế quản lý các tiến trình (process) và
các luồng (thread). Trong đó chỉ ra cách phân

chia độ ưu tiên cho các tiến trình.
- Cơ chế quản lý và phân chia bộ nhớ, bao
gồm nội dung về bộ nhớ ROM, bộ nhớ RAM
và bộ nhớ ảo.
- Cơ chế xử lý vào ra của hệ thống.
Ngoài ra, phần cuối của chương có phân tích
cụ thể về hệ điều hành Windows CE 6.0 là hệ
điều hành được sử dụng trong phần thực
nghiệm của đề tài khóa luận này.
4. Môi trường đồ họa cho hệ thống nhúng
Đối tượng được nghiên cứu trong chương
này là giao diện lập trình ứng dụng OpenGL ES
và môi trường đồ họa ảo EGL đều do nhóm
Khronos phát triển.
1. OpenGL ES là một tập con của API đồ
họa 3D OpenGL, được thiết kế dành cho các hệ
thống nhúng. Đây là một API đồ họa có nhiều
ưu điểm và phù hợp để chạy trên các hệ thống
nhúng:
- Được xây dựng thành một chuẩn chung và
miễn phí, OpenGL ES mang tính mở, trung lập
nên có khả năng chạy trên nhiều hệ thống
nhúng khác nhau.
- Tiết kiệm năng lượng và năng lực tính toán
của hệ thống.
- Chuyển tiếp liền mạch với phần cứng,
ngoài đường ống xử lý đồ họa của mình,
OpenGL ES cho phép thực hiện các lời gọi hàm
riêng biệt trên các phần cứng chuyên dụng,
được thực thi giống như những chương trình

thường trú trên CPU hệ thống.
- Khả năng mở rộng và phát triển cao với hệ
thống các extension.
- Có cấu trúc tốt do thừa hưởng từ OpenGL.
-55-

2. EGL là một lớp giao diện trung gian giữa
OpenGL ES và hệ thống nền tảng bên dưới
(chẳng hạn là hệ điều hành như Windows CE,
Symbian, Embedded Linux). EGL đóng vai trò
chính sau:
- Khởi tạo và quản lý các ngữ cảnh đồ họa
của các client API như OpenGL ES.
- Khởi tạo và quản lý các drawing surface,
buffer. Dựa trên đó, OpenGL ES có thể thực
hiện quá trình vẽ của mình.
- Đồng bộ hóa quá trình vẽ của API đồ họa
(OpenGL ES) với API đồ họa của hệ điều hành.
Việc đồng bộ hóa này giúp tránh khả năng quá
trình vẽ bị chồng chéo giữa các API như
OpenGL ES và API của hệ điều hành.
5. Thực nghiệm
Trong khóa luận này, chương trình thử
nghiệm được xây dựng trên môi trường giả lập
Windows CE 2003, ngôn ngữ thực hiện
Embedded Visusal C++ 4.0 SP4, thư viện đồ
họa là GLUT|ES. Chương trình minh họa được
xây dựng để kiểm thử các chức năng cơ bản của
một thư viện thực thi theo chuẩn OpenGL ES
bao gồm : Các chức năng quản lý cửa sổ, các

chức năng xử lý sự kiện ( Bắt chuột, bắt phím),
quản lý các đối tượng (tạo, hủy, …), các chức
năng dựng hình, Màu sắc và định dạng hình cần
dựng, làm việc với không gian 3D, quản lý các
Texture.
Cấu trúc cơ bản của quá trình dựng hình
trong một chương trình sử dụng OpenGL ES là:
- Khởi tạo chương trình: bước này sẽ khởi
tạo các công cụ của OpenGL ES.
- Tạo một cửa sổ làm việc (window).
- Khởi tạo dữ liệu của chươ
ng trình.
- Bước lặp:
.Dựng hình.
.Xử lý sự kiện (intput/output…).
.Kiểm tra yêu cầu kết thúc chương trình.
- Kết thúc chương trình: hủy các dữ liệu đã
được tạo trong quá trình chạy ứng dụng.
Kết quả thử nghiệm là chương trình chạy ổn
định, chất lượng hình ảnh tốt.Việc cấu hình và
lập trình đơn giản.
Các vấn đề cần tiếp tục nghiên cứu: nghiên
cứu ứ
ng dụng OpenGL ES trong việc phát triển
các phần mềm đa phương tiện cho thiết bị
nhúng, đồng thời phải nghiên cứu nắm bắt kỹ
thuật phát triển các thư viện thực thi theo chuẩn
của OpenGL ES để chủ động trong việc tối ưu
hóa hệ thống đồ họa trên các môi trường phần
cứng cụ thể.

6. Kết luận
Khóa luận này đã đưa ra được lý thuyết tổng
quan về môi trường đồ họa cho thiết bị nhúng
nói chung và OpenGL/ES nói riêng. Từ tầng
thấp nhất là lý thuyết về các hệ thống nhúng, hệ
thống thời gian thực cho tới các lớp phần mềm
phía trên: thế nào là API đồ họa OpenGL ES;
cấu trúc, thiết kết và các tính năng mà giao diện
được xây dựng thành tiêu chuẩn công nghiệp
này đưa ra bao gồm những gì; thiết kế và cơ
chế hoạt động của môi trường ảo EGL hỗ trợ
thế nào cho việc xây dựng các thư viện đồ họa
theo chuẩn OpenGL ES…
Trong chương cuối của khóa luận cũng đã thực
hiện được một chương trình demo thể hiện việc
phát triển và chạy các ứng dụng đồ họa trên
thiết bị nhúng. Tuy nhiên phần thực nghiệm
còn thiếu sự nghiên cứu về việc phát triển các
hệ thống phần mềm đồ họa, chẳng hạn làm thế
nào để viết một thư viện thực thi theo các API
như OpenGL ES hay EGL? Đó là một thiếu sót
cần phải được nghiên cứu trong các đề tài sau
này.
Tài liệu tham khảo
[1] Frank Vahid and Tony Givargis. Embedded
System Design:A Unified Hardware/Software
Approach. Wiley; I.S.ed edition 10/2001.
[2] Paul Yao and David Durant. .NET Compact
Framework Programming with C#. Addison
Wesley Professional 05/2004.

[3] Nick Grattan and Marshall Brain.
Windows® CE 3.0 Application Programming.
Prentice Hall 10/2000.
[4] Khronos Group. OpenGL ES 1.1.10
Specification. www.khronos.org
04/2007.
[5] Khronos Group. OpenGL ES 2.0
Specification. www.khronos.org 03/2007.
[6] Khronos Group. EGL 1.3 Specification.
www.khronos.org 12/2006.



×