Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 45 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
45
Dung lượng
870,9 KB
Nội dung
ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ Lê Viết Sơn XÂY DỰNG ĐỒ HỌA 3D DỰA TRÊN CÔNG NGHỆ FLASH DÀNH CHO THIẾT BỊ NHÚNG PHƯƠNG PHÁP XỬ LÝ 3D CỦA PAPERVISION3D KHOÁ LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY Ngành: Cơng Nghệ Thơng Tin HÀ NỘI - 2010 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Lời cảm ơn Trước tiên, em muốn gửi lời cảm ơn sâu sắc đến hai thầy giáo PGS-TS Nguyễn Việt Hà Th.S Vũ Quang Dũng Các thầy tận tình hướng dẫn chúng em học tập, đồng thời tạo điều kiện công việc nghiên cứu phịng thí nghiệm ToshiaColtech suốt hai năm qua Chúng em xin bày tỏ lòng cảm ơn đến thầy cô giáo công tác, giảng dạy trường đại học Công Nghệ - Đại học Quốc Gia Hà Nội Những kiến thức, phương pháp qúy báu thầy cô truyền đạt hành trang giúp chúng em vững bước tương lai Tôi xin cảm ơn thành viên phịng thí nghiệm Toshiba-Coltech, bạn cho tơi nhiều ý kiến qúy báu thực khóa luận Cuối xin gửi tới bố mẹ toàn thể gia đình lịng biết ơn tình cảm u thương sâu sắc Hà Nội, 19 tháng năm 2010 Sinh viên Lê Viết Sơn i LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Tóm tắt nội dung Ngày nay, thiết bị di động trở nên phổ biến mang lại nhiều tiện ích sống Với phát triển đồ họa máy tính, giao diện ứng dụng ngày đẹp mắt thân thiện với người dùng Đồ họa ba chiều sử dụng rộng rãi máy tính cá nhân hay thiết bị có cấu hình mạnh mang lại hiệu to lớn Tuy nhiên, thiết bị nhúng có cấu hình thấp cần phải xây dựng hệ thống phù hợp để đáp ứng nhu cầu tốc độ xử lý hiển thị Khóa luận tập trung tìm hiểu phương pháp xử lý đồ họa 3D cho thiết bị di động ii LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Mục lục Đặt vấn đề 1.1 Thực trạng 1.2 Phạm vi nghiên cứu 1.3 Cách tiếp cận 1.4 Cấu trúc khoá luận Cơ sở lý thuyết 2.1 Công nghệ Flash 2.1.1 Giới thiệu 2.1.2 Ngôn ngữ ActionScript 2.1.3 Tệp tin SWF 2.1.4 Flash Player Gnash 2.2.1 Giới thiệu 2.2.2 Mơ hình xây dựng 2.2.3 Cơ chế hoạt động Tamarin - AVM2 2.3.1 Giới thiệu 2.3.2 Kiến trúc, nguyên lý hoạt động 2.3.3 Bộ biên dịch JIT 11 2.3.4 Bộ thông dịch 12 2.3.5 Quản lý nhớ 12 2.2 2.3 2.4 Papervision3D 15 iii LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com MỤC LỤC 2.5 Giới thiệu 15 2.4.2 Kiến trúc, thành phần 16 2.4.3 Một số kết luận 22 Môi trường đồ họa OpenGLES PowerVR 23 Kỹ thuật xử lý đồ họa 3D Flash 25 3.1 Mô tả toán 25 3.2 Mơ hình đề xuất 25 3.2.1 Ý tưởng 25 3.2.2 Giải pháp 26 Thực nghiệm 4.1 4.2 2.4.1 27 Kết thực thi 28 4.1.1 Cấu tạo ABC 28 4.1.2 Cấu hình phần cứng cần thiết 28 Minh họa thực nghiệm 28 Kết luận hướng phát triển 30 5.1 Kết luận 30 5.2 Hướng phát triển 30 A Kiểu tập lệnh AVM2 31 A.1 Một số kiểu liệu AVM2 31 A.2 Tóm tắt tập lệnh AVM2 31 B Công cụ Abcdump / Tamarin 33 C Mã nguồn chương trình Papervision3D 35 Tham khảo 36 iv LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Danh sách hình vẽ 1.1 Biểu đồ hiển thị trực quan 3D 1.2 Tổng quan dự án 2.1 Cấu trúc tệp Flash 2.2 Minh họa thẻ tệp SWF 2.3 Hoạt động Adobe Flash Player phiên 2.4 Mơ hình Flash player thực thi Papervision3D 2.5 Cơ chế hoạt động Gnash 2.6 Kiến trúc AVM 10 2.7 Minh họa đoạn mã thực thi AVM2 11 2.8 Hoạt động Nanojit tamarin 12 2.9 Minh họa thuật toán mark/sweep 13 2.10 Lỗi tham chiếu vòng 14 2.11 Sử dụng thuật toán ba màu 15 2.12 Kỹ thuật đồ họa 3D đồ họa máy tính 16 2.13 Mơ hình xây dựng thư viện Papervision3D 17 2.14 Thành phần 3D đồ họa máy tính 17 2.15 Quan hệ gói Papervision3D 19 2.16 Scene3D 19 2.17 Camera Papervision3D 21 2.18 Viewport Papervision3D 21 2.19 Xây dựng Render 22 3.1 Mơ hình kết hợp tamarin Gnash 26 v LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com DANH SÁCH HÌNH VẼ 4.1 Mơ hình xử lý 3D 28 4.2 Thực thi 3D Papervision3D Flash Player 29 vi LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Bảng từ viết tắt Ký hiệu Dạng đầy đủ 2D Dimension 3D Dimension ABC ActionScript Bytecode AVM ActionScript Virtual Machine AS ActionScript JIT Just-In-Time MMgc Memory manager, garbage collector OpenGL Open Graphics Library OpenGLES OpenGL Embeded Systems SWF Small Web Format VM Virtual Machine vii LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com CHƯƠNG Đặt vấn đề 1.1 Thực trạng Ngày thiết bị điện tử trở nên phổ biến mang lại nhiều lợi ích sống Từ hệ thống công cộng, dịch vụ tự động bán vé tàu xe thiết bị gia đình tivi, máy giặt, tủ lạnh chí đến cá nhân điện thoại di động, PDAs1 Với phát triển công nghệ, ứng dụng đồ họa trên thiết bị nhúng ngày đòi hỏi cao tốc độ xử lý, khả tương tác nhanh đáp ứng nhu cầu người dùng Đặc biệt, sử dụng đồ họa 3D cho ứng dụng mang lại nhiều hiệu tính thân thiện, dễ sử dụng, đẹp mắt Flash cơng nghệ có nhiều ưu điểm để phát triển thiết bị nhúng tính gọn nhẹ, đơn giản, Flash hỗ trợ đồ họa 3D tốt Hình 1.1 minh họa ứng dụng biểu đồ sử dụng phương pháp hiển thị trực quan 3D Hình 1.1: Biểu đồ hiển thị trực quan 3D Personal Digital Assitants LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com CHƯƠNG 1: ĐẶT VẤN ĐỀ 1.2 Phạm vi nghiên cứu Khóa luận trình bày khuôn khổ dự án xây dựng hệ thống xử lý đồ họa 3D framework sử dụng thuật tốn xử lý, xếp liệu Mục tiêu khóa luận chứng minh tính khả thi tính cơng nghệ áp dụng dự án Dự án đề xuất thực thời gian với giai đoạn sau: • Giai đoạn một: hướng vào nghiên cứu phát triển 3D Flash cho thiết bị di động Sử dụng Gnash làm máy Flash “Beagle Board”2 mơi trường Linux hỗ trợ đồ họa OpenGLES • Giai đoạn hai: xây dựng thuật toán, mẫu xử lý liệu 3D • Giai đoạn ba: làm mịn kết giai đoạn hai Input Flash Engine User Interface (Using Flare) 3D Framework Output Flash code Visualization data 3D data visualization Using Gnash Papervision3D 3D visualization algorithm Data analysis Screen resolution OpenGL/ES 2.0 Environment LINUX OS Beagle Board Hình 1.2: Tổng quan dự án Trong giai đoạn đầu tiên, hướng đến phương pháp xử lý đồ họa 2D, 3D Flash dựa vào OpenGLES hệ thống nhúng http://beagleboard.org/ LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com CHƯƠNG 2: CƠ SỞ LÝ THUYẾT • Thuật toán xác định mặt mà OpenGL sử dụng z-buffer15 Papervi- sion3D sử dụng thuật toán painter’s algorithm 16 • Papervision3D thư viện hỗ trợ cho việc lập trình, OpenGL khơng hỗ trợ lập trình mà cịn giao tiếp với phần cứng đồ họa thiết bị cài đặt So sánh Papervision3D với OpenGLES Papervision3D thực thi OpenGL, OpenGLES sử dụng phần hàm API OpenGL, chương trình 3D từ Papervision3D đẹp phong phú Hơn chế tương tác với Flash tăng thêm hấp dẫn, lôi Thư viện Papervision3D xây dựng với nhiều hàm, hỗ trợ lập trình tốt để tạo chương trình 3D đẹp mắt Việc lập trình OpenGLES gặp khó khăn phải cân nhắc đến tài nguyên hệ thống mà chương trình sử dụng, với Papervision3D việc máy ảo xử lý Như lựa chọn Papervision3D để phát triển xây dựng đồ họa 3D để thực thi thiết bị nhúng mang lại nhiều ưu điểm OpenGLES 2.5 Môi trường đồ họa OpenGLES PowerVR Tương tự Papervision3D, OpenGL OpenGLES thư viện hỗ trợ đồ họa 3D OpenGL sử dụng môi trường PC OpenGLES sử dụng thiết bị nhúng Khi tệp tin tạo sử dụng OpenGL, sử dụng để thực thi mơi trường thiết bị nhúng với OpenGLES có thành phần khơng xuất Bởi vì, có 10% hàm OpenGL sử dụng OpenGLES, 50% số hàm từ OpenGL phải chỉnh sửa thay đổi với tham số cho sử dụng tài nguyên Bởi lực xử lý thiết bị nhúng bị hạn chế Với môi trường giả lập PC mô PowerVR insider 17 cung cấp cho người phát triển phần cứng phần mềm thiết bị nhúng PowerVR đưa giải pháp mạnh mẽ, linh hoạt cho việc thực thi ứng dụng 2D/3D véc tơ với GPU 18 bao gồm xử lý, tạo ảnh 2D/3D mã hóa - giải mã Video Tất API hỗ trợ bao gồm: OpenGLES 2.0/1.1, OpenVG 1.1, OpenGL 2.0/3.0, DirectX 9/10 OpenCL Đặc biệt với phiên (từ phiên 5), PowerVR cung cấp giải pháp cho tất dạng đồ họa 3D, 2D, đồ họa véc tơ cho thiết bị nhúng với kỹ 15 đệm z toán người thợ sơn 17 Một chip đồ họa nhúng hỗ trợ thực thi OpenGLES 2.0 18 Graphics Processing Unit 16 Thuật 23 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com CHƯƠNG 2: CƠ SỞ LÝ THUYẾT thuật chống cưa, đưa chức xử lý hình ảnh chuyên sâu Trên thực tế, PowerVR trở thành chip xử lý đồ họa phổ biết sử dụng điện thoại di động để hiển thị hình ảnh 2D, 3D, tăng tốc đồ họa véc tơ 19 sử dụng cơng ty, tập đồn điện tử hàng đầu giới 19 với phiên cao cấp 24 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com CHƯƠNG Kỹ thuật xử lý đồ họa 3D Flash Dựa vào phần sở lý thuyết trên, chương mơ tả tốn đồng thời nêu phương pháp giải mơ hình minh họa cho giải pháp 3.1 Mơ tả tốn Do dự án mang tính dài hạ, thời điểm chúng tơi dừng lại mức độ tìm hiểu, phân tích kiểm thử mã nguồn mở cách tối thiểu để đưa tính thực thi dự án Trong phạm vi dự án, xây dựng kỹ thuật xử lý 3D Flash hệ thống nhúng (trước hết giả lập có hỗ trợ đồ họa OpenGLES 2.0 PowerVR SDK Sử dụng Gnash để xây dựng trình xử lý Flash, hiển thị Flash Video nhằm mục đích thực thi 3D Flash Papervision3D Tiếp đấy, đưa mơ hình giả lập lên thiết bị di động để chơi 3D Flash 3.2 3.2.1 Mơ hình đề xuất Ý tưởng Từ tìm hiểu lý thuyết chương hai, kết hợp với yêu cầu toán đặt chúng tơi có số nhận xét • Việc xử lý đồ họa 3D Flash theo chế xử lý AS 3.0 Papervision3D phát triển dựa AS 3.0, kỹ thuật tương tác, kiện với người dùng hoàn toàn tương tự Các vật thể 3D mơ hình từ đối tượng AS 3.0 PowerVR giới thiệu chương hai 25 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com CHƯƠNG 3: KỸ THUẬT XỬ LÝ ĐỒ HỌA 3D FLASH Từ Flash Player phiên trở hiển thị Papervision3D mà không cần phải cài đặt thêm thư viện nào; • Máy ảo AVM2 Gnash chưa hỗ trợ hết cho AS 3.0 nên Papervision3D không chơi Gnash Phần hiển thị Gnash hỗ trợ nhiều công nghệ, tảng đồ họa (OpenGL, agg, gtk, ) chứng tỏ xử lý hình ảnh Gnash tốt; • Máy ảo Tamarin-AVM2 thực thi ngôn ngữ AS 3.0 với hiệu cao, tối ưu việc vận hành biên dịch JIT chế quản lý nhớ MMgc Xử lý 3D Flash Papervision3D với AS 3.0 nên máy ảo Tamarin-AVM2 đảm trách tốt với đồ họa 3D 3.2.2 Giải pháp Theo ý tưởng trên, để xử lý đồ họa 3D Papervision3D chúng tơi cần có máy ảo thực thi AS 3.0 Kết hợp đầu máy ảo với phần hiển thị Gnash cho kết qủa hiển thị 3D Flash Vì vậy, giải pháp sử dụng máy ảo tamarin- AVM2 cho việc xử lý 3D Papervision3D, kết hợp với chức hiển thị đồ họa Gnash thu máy chơi 3D Flash hiệu Giải pháp minh họa hình 3.1 • Với AS 1.0 2.0 việc thực thi ABC tiếp tục với máy ảo AVM1 Gnash • Với AS 3.0 Papervision3D xử lý máy ảo tamarin-AVM2 Sau xử lý ABC, tamarin-AVM2 chuyển đầu cho Gnash thực bước hiển thị Rendering ActionScript Bytecode Gnash AVM1 AS1,2 Displaying SWF Tamarin AVM2 NanoJIT AS3 OpenGL|ES Papervision3D Hình 3.1: Mơ hình kết hợp tamarin Gnash Phần Tamarin, chương hai 26 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com CHƯƠNG Thực nghiệm Trên sở thực nghiệm này, chúng tơi có sử dụng dự án nguồn mở thực thi Flash khác để đưa vào so sánh tìm phương án tối ưu cho hệ thống Trong phần thực nghiệm chúng tơi có sử dụng số cơng cụ bao gồm: • Bộ cơng cụ phát triển Java: JDK • Bộ lập trình phát triển Flex Builder • Bộ biên dịch Flash nguồn mở Flex SDK 3.4 • Cơng cụ tách mã ABC từ tệp SWF “abcdump” gói tamarin-central Mơi trường thực nghiệm: • Bộ xử lý: Intel Core Duo 1.6GHz • Bộ nhớ RAM: 1.5GB • Hệ điều hành : Ubuntu 9.10 / Linux Mơ hình thực nghiệm hình 4.1 gồm bước sau: • Sử dụng phát triển Flex Buider có sử dụng thư viện Papervision3D để sinh tệp SWF • Dùng cơng cụ abcdump gói util tamarin để tách tệp SWF Papervision3D sang dạng ABC Phần phụ lục B nói chi tiết cách thức thực nghiệm sử dụng cơng cụ “abcdump” • Thực thi tệp ABC với máy ảo tamarin 27 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com CHƯƠNG 4: THỰC NGHIỆM Flex Builder SWF AS2,3,Papervision3D Papervision3D OUTPUT abcdump/tamarin ABC tamarin-AVM2 Hình 4.1: Mơ hình xử lý 3D 4.1 Kết thực thi 4.1.1 Cấu tạo ABC Sử dụng công cụ “abcdump” gói tamarin-central, chúng tơi tách thành phần ABC tệp Flash AS 3.0 Với Papervision3D, sinh tệp ABC tương ứng Từ phép bóc tách này, chúng tơi hiểu rõ chất thành phần tệp, đồng thời nắm chế nhận đầu vào máy ảo tamarin-AVM2 4.1.2 Cấu hình phần cứng cần thiết Để thực thi đồ họa 3D Flash Papervision3D, thiết bị di động tối thiểu cần phải có chip hỗ trợ xử lý OpenGLES có khả vận hành máy ảo tamarin Gnash Dựa vào thực nghiệm đồ họa, đưa cấu hình tối thiểu để đáp ứng cho việc xử lý 3D Flash Cấu hình đề xuất bảng dưới: Bộ xử lý Tốc độ xử lý Bộ nhớ RAM tối thiểu ARM v7 PBX A9 600 - 800 MHz 128MB ARM v7 PB A8 550 MHz 64MB ARM v6 RealView EB 200 - 400 MHz 32MB ARM v6 RealView PB 200 - 400 MHz 32MB 4.2 Minh họa thực nghiệm Sử dụng môi trường phát triển lập trình Flex Builder kết hợp với thư viện Papervision3D, chúng tơi tạo chương trình 3D Flash đơn giản Tệp Flash chạy phần mềm Flash Player, hiển thị hình 4.2 Ví dụ minh họa hình lập phương quay không gian 3D Đoạn mã Papervision3D dùng để tạo chương trình nói chi tiết phần phụ lục C 28 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com CHƯƠNG 4: THỰC NGHIỆM Hình 4.2: Thực thi 3D Papervision3D Flash Player Khóa luận giai đoạn thực dự án nên chưa có thực nghiệm thiết bị nhúng Tuy nhiên, kết sau hồn thành dự án, chúng tơi xây dựng môi trường xử lý 3D Flash thiết bị di động mà chất lượng hình ảnh tốc độ xử lý đạt minh họa 29 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com CHƯƠNG Kết luận hướng phát triển 5.1 Kết luận Trong giai đoạn đầu dự án, đạt số kết quả: hiểu chế xử lý, xây dựng dồ họa 3D Flash-Papervision3D, chế hiển thị Flash Gnash, kiểm tra tính khả thi sử dụng máy ảo Tamarin, đề giải pháp cho máy Flash xử lý 3DPaperision3D Giao đoạn tìm hiểu, xây dựng vấn đề lý thuyết tảng cho việc xây dựng mơ hình thực thi 3D Flash thiết bị di động Với thời gian không cho phép, 5.2 Hướng phát triển Trong khn khổ thực hiện, chúng tơi chứng minh tính khả thi cho việc xử lý 3D Flash thiết bị nhúng Đồng thời, lý thuyết mơ hình xây dựng sở cho bước dự án để đưa hệ thống xử lý Flash hoàn thiện hệ thống nhúng, môi trường OpenGLES Hơn nữa, thuật toán xử lý 3D dựa vào lý thuyết tìm hiểu Papervision3D 30 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com PHỤ LỤC A Kiểu tập lệnh AVM2 A.1 Một số kiểu liệu AVM2 • int (nguyên) biểu diễn giá trị nguyên độ lớn 32bit, khoảng giá trị là: • uint (ngun khơng dấu) có độ dài 32bit, giá trị nằm khoảng • double (số thực dấu phẩy động) • string (xâu ký tự) biểu diễn ký tự Unicode String dạng UTF-8 độ lớn • namespace • null biểu diễn khơng đối tượng • undefined biểu diễn khơng có giá trị A.2 Tóm tắt tập lệnh AVM2 Các lệnh định kiểu liệu mà thực hậu tố sau tên lệnh : _b (Boolean) , _a (any), _i (int), _d (double), _s (string), _u (unsigned), _o (object) • Lệnh tải lưu Truy cập vào ghi cục thông qua lệnh sau: getlocal, getlocal0, getlocal1, getlocal2, getlocal3, setlocal0, setlocal1, setlocal2, setlocal3 • Lệnh số học Phép cộng thực thi lệnh: increment, increment_i, inclo- cal, inclocal_i, add, add_i Phép trừ gồm: decrement, decrement_i, delocal, delocal_i, subtract, subtract_i Phép nhân chia: multiply, multiply_i, divide modulo Để đảo dấu giá trị dùng: negate, negate_i 31 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Phụ lục A Kiểu tập lệnh AVM2 • Phép tính bit: bitnot, bitand, bitor, bitxor, lshift, rshift, urshift • Chuyển đổi kiểu ngơn ngữ AS lỏng lẻo, đối tượng chuyển đổi kiểu liệu để thực phép toán Trong vài trường hợp, chuyển đổi kiểu yêu cầu lệnh coerce gồm: coerce, convert_b, coerce_a, convert_i, convert_d, convert_s, convert_u, convert_u convert_o • tạo đối tượng điều chỉnh lệnh bởi: newclass, newobject, newarray, newac- tivation Gọi hàm constructor: constructor, constructsuper constructprop Namespace tạo động dxns dxnslate • Quản lý Stack (ngăn xếp): pushnull, pushundefined, pushtrue, pushfalse, pushnan, pushbyte, pushshort, pushstring, pushint, pushdouble, pushscope pushnamespace Pop để lấy giá trị khỏi đầu ngăn xếp, swap chuyển đổi giá trị giá trị • Lệnh chuyển điều khiển: lệnh chuyển việc thực thi tới lệnh khác cấu trúc rẽ nhánh: iflt, ifnlt, ifnle, ifge, ifngt, ifnge, ifeq, ifne, ifstricteq, ifstrictne, iftrue iffalse Lệnh label dùng để vị trí đích lệnh rẽ nhánh • Gọi hàm trả hàm thực hàm: call để gọi hàm Các kiểu gọi tĩnh, động, gọi phương thức lớp sở sau: callmethod, callstatic, callsuper Để lấy giá trị trả về: callpropvoid, callsupervoid sử dụng callproperty callsuper tương ứng • Lệnh bắt lỗi: throw • Lệnh gỡ rối chương trình: debugfile debugline giá trị thời điểm cụ thể để tìm chỗ khơng hợp lý 32 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com PHỤ LỤC B Công cụ Abcdump / Tamarin asc1 Gói tamarin-central cung cấp cơng cụ abcdump Chúng sử dụng biên dịch để tạo tệp thực thi abcdump môi trường Ubuntu/Linux Sử dụng ví dụ chương trình hình 4.2 abcdump tách đoạn mã có phần đầu: d e c o m p r e s s e d swf 105344 −> 240585 s i z e [ R e c t 0 10000 0 ] f r a m e r a t e 24 frame count F i l e A t t r i b u t e s b 0% 77 ( i n v a l i d ) 458 b 0% E n a b l e D e b u g g e r 31 b 0% DebugID 16 b 0% S c r i p t L i m i t s b 0% S e t B a c k g r o u n d C o l o r b 0% P r o d u c t I n f o 26 b 0% F r a m e L a b e l 11 b 0% DoABC2 239972 b 99% Dựa vào phần đầu mã ABC thu thơng tin tệp Flash Papervision3d là: kích thước, tốc độ khung hình, số khung, thuộc tính Phần tiếp theo: a b c name f r a m e magic e0010 actionscript compiler 33 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Phụ lục B Công cụ abcdump/tamarin Cpool numbers s i z e 233 % Cpool s t r i n g s c o u n t 3143 s i z e 90348 37 % Cpool n a m e s p a c e s c o u n t 326 s i z e 954 % Cpool n s s e t s c o u n t 69 s i z e 749 % Cpool names c o u n t 1626 s i z e 6712 % M e t h o d I n f o c o u n t 1122 s i z e 8757 % I n s t a n c e I n f o c o u n t 126 s i z e 9211 % C l a s s I n f o c o u n t 126 s i z e 1852 0% S c r i p t I n f o s i z e 954 % M e t h o d B o d i e s c o u n t 1062 s i z e 120186 50 % Phần cung cấp thông tin đối tượng, lớp tệp Flash Phần cuối (trích dẫn) lệnh cần AVM thực thi theo kịch bản: OPCODE SIZE getlex getlocal setproperty initproperty debugfile callpropvoid pushstring kill convert_u ifstricteq bitor greaterequals throw pushundefined modulo strictequals in lshift % OF 110533 11012 9% 5690 5% 3874 3% 3224 2% 3123 2% 2698 2% 596 0% 552 0% 0% 0% 0% 0% 0% 0% 0% 0% 0% 0% S y m b o l C l a s s 15 b 0% ShowFrame b 0% End b 0% 34 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com PHỤ LỤC C Mã nguồn chương trình Papervision3D package { import f l a s h e v e n t s Event ; / / I m p o r t t h u v i e n xu l y s u k i e n c u a F l a s h AS import org p a p e r v i s i o n d m a t e r i a l s C o l o r M a t e r i a l ; / / I m p o r t t h u v i e n mau c u a P a p e r v i s i o n d import org p a p e r v i s i o n d m a t e r i a l s u t i l s M a t e r i a l s L i s t ; / / Import chat l i e u i m p o r t o r g p a p e r v i s i o n d o b j e c t s p r i m i t i v e s Cube ; / / I m p o r t h i n h l a p phuong t r o n g P a p e r v i s i o n d i m p o r t o r g p a p e r v i s i o n d view B a s i c V i e w ; / / Thua ke l o p B a s i c V i e w t r o n g g o i view de t a o khung h i e n t h i p u b l i c c l a s s H e l l o W o r l d e x t e n d s B a s i c V i e w { / / Khai bao l o p p r i v a t e v a r c u b e : Cube ; p r i v a t e var matList : M a t e r i a l s L i s t ; p r i v a t e var color : ColorMaterial ; p u b l i c f u n c t i o n H e l l o W o r l d ( ) { / / B a t dau ham k h o i t a o c o l o r =new C o l o r M a t e r i a l ( x000000 ) ; / / Khoi t a o mau den m a t L i s t = new M a t e r i a l s L i s t ( ) ; m a t L i s t a d d M a t e r i a l ( c o l o r , " a l l " ) ; / / gan mau c u b e =new Cube ( m a t L i s t ) ; / / Khoi t a o d o i t u o n g h i n h l a p phuong scene addChild ( cube ) ; / / Them h i n h l a p phuong t r e n khong g i a n 3D startRendering (); / / Thuc h i e n ve l e n v i e w p o r t } / / k e t t h u c ham k h o i t a o 35 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Phụ lục C Minh họa mã nguồn chương trình Papervision3D override protected function onRenderTick ( event : Event = n u l l ) : void { c u b e yaw ( ) ; / / t a o quy dao c u b e r o l l ( ) ; / / t a o quay cho v a t t h e super onRenderTick ( event ) ; / / } / / k e t t h u c phuong t h u c o n R e n d e r T i c k } } 36 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Tài liệu tham khảo [1] GNU URL http://www.gnu.org/software/gnash/ [2] Papervision3d URL http://blog.papervision3d.org/ [3] Adobe, URL http://adobe.com/ [4] Adobe, URL http://www.actionscript.org/ [5] Adobe Systems Incoporated SWF File Format Specification Version 10 adobe, 2008 [6] Adobe, URL http://www.adobe.com/products/flashplayer/ [7] Adobe Systems Incoporated ActionScript Virtual Machine (AVM2) Overview San Jose, 2006 [8] Adobe Systems Incoporated Adobe Flash Player ActionScript Virtual Machine adobe, 2006 [9] Mozilla, URL https://developer.mozilla.org/En/Nanojit [10] Mozilla, URL https://developer.mozilla.org/en/MMgc# Allocating_objects [11] Pault Tondeur Jeff Winder Papervision3D Essential Birmingham - Mumbai, 2009 37 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com ... quản lý nhớ MMgc Xử lý 3D Flash Papervision3D với AS 3.0 nên máy ảo Tamarin-AVM2 đảm trách tốt với đồ họa 3D 3.2.2 Giải pháp Theo ý tưởng trên, để xử lý đồ họa 3D Papervision3D chúng tơi cần... 3D Flash thiết bị nhúng Đồng thời, lý thuyết mơ hình xây dựng sở cho bước dự án để đưa hệ thống xử lý Flash hồn thiện hệ thống nhúng, mơi trường OpenGLES Hơn nữa, thuật toán xử lý 3D dựa vào lý. .. phần 3D đồ họa máy tính Sau chi tiết thành phần để tạo đồ họa 3D cho Flash dựa vào Papervision3D: Mơ hình xây dựng Papervision3D Ngơn ngữ AS đến phiên 3.0 hỗ trợ việc tạo ứng dụng hoạt họa 2D