Kỹ thuật xây dựng đồ họa 3D dựa trên công nghệ Plash dành cho thiết bị nhúng

46 502 0
Kỹ thuật xây dựng đồ họa 3D dựa trên công nghệ Plash dành cho thiết bị nhúng

Đ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

Tài liệu tham khảo công nghệ thông tin Kỹ thuật xây dựng đồ họa 3D dựa trên công nghệ Plash dành cho thiết bị nhúng

ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ Đinh Anh Thái KỸ THUẬT XÂY DỰNG ĐỒ HỌA 3D DỰA TRÊN CÔNG NGHỆ FLASH DÀNH CHO THIẾT BỊ NHÚNG KỸ THUẬT HIỂN THỊ FLASHVIDEO DỰA TRÊN GNASH KHÓA LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY Ngành: Cơng nghệ phần mềm Cán hướng dẫn: PGS TS Nguyễn Việt Hà ThS Vũ Quang Dũng HÀ NỘI-2010 Lời cảm ơn Lời tơi xin bày tỏ lịng biết ơn sâu sắc tới thầy giáo PGS TS Nguyễn Việt Hà- phó Hiệu trưởng trường Đại học Cơng nghệ, ĐHQGHN ThS Vũ Quang Dũng- Giảng viên môn Công nghệ phần mềm, khoa Công nghệ thông tin, trường Đại học Công nghệ, ĐHQGHN Các thầy hướng dẫn tơi tận tình suốt q trình thực khóa luận suốt năm học vừa qua Tôi xin bày tỏ lịng biết ơn tới thầy, giáo Khoa Công nghệ thông tin, Trường Đại học Cơng nghệ, ĐHQGHN Các thầy tận tình dạy bảo, dẫn tạo điều kiện tốt cho chúng tơi học tập suốt q trình học đại học Các thầy tận tình giúp đỡ cho tơi để hồn thành khóa luận tốt nghiệp Tơi xin cám ơn phịng thí nghiệm Cơng nghệ phần mềm Toshiba-Coltech, mơ hình liên kết trường Đại học Cơng nghệ Tập đồn Toshiba, cho tơi định hướng nghiên cứu đại, theo kịp xu hướng phát triển giới Tôi xin cảm ơn bạn sinh viên phịng thí nghiệm cho tơi ý kiến đóng góp giá trị thực đề tài Cuối xin gửi tới bố mẹ tồn thể gia đình lịng biết ơn tình cảm yêu thương sâu sắc Hà Nội, 15 tháng năm 2010 Sinh viên Đinh Anh Thái ii Tổng quan Tổng quan Khóa luận mang tới hiểu biết, kỹ thuật vể cách thể FlashVideo dựa Gnash nhằm hướng tới mục tiêu dự án phịng thí nghiệm Toshiba-Coltech "3D Visualization Framework" Trong giai đoạn đầu tìm hiểu dự án, chúng tơi tìm hiểu máy ảo ActionScript số kỹ thuật khác liên quan tới công nghệ Adobe Flash, cách thể đối tượng đồ họa 3D thông qua thư viện nguồn mở PaperVision 3D Abstract In this thesis, we present our investigation in Flash technology and its details This thesis is a part of jointed project of Toshiba-Coltech laboratory in 3D Visualization framework, that takes us to approach the technology from learning new techniques of ActionScript virtual machine and 3D graphics with OpenGLES 2.0 environment The first part is to be done by me - Dinh Anh Thai, and the other will be done by Le Viet Son iii Tóm tắt nội dung Cơng nghệ 3D ngày sử dụng rộng rãi phổ biến tới người sử dụng, từ người dùng phổ thông tới chuyên gia công nghệ Hiện nay, công nghệ 3D phát triển mạnh nhằm mang tới thể đồ họa sống động, gần với sống thực cho người Cùng với định hướng Tập đồn Toshiba, phịng thí nghiệm cơng nghệ phần mềm Toshiba-Coltech hướng tới nghiên cứu công nghệ này- Kỹ thuật hiển thị đồ họa 3D hệ thống nhúng Sau q trình lựa chọn cơng nghệ để thực đồ họa 3D hệ thống nhúng, hướng tới sử dụng công nghệ Flash- Công nghệ độc quyền cung cấp Adobe Systems Incorprated Flash với ưu điểm gọn nhẹ, dễ dàng thực thi nhiều tảng, môi trường khác sử dụng phổ biến nhiều hệ thống khác nhau: hệ thống y tế, PC, thiết bị cầm tay, đồ gia dụng Adobe Flash( Tên gọi khác: Macromedia Flash) công nghệ chứa tảng đa phương tiện sử dụng để tạo hoạt họa, video, tương tác gồm MacroMedia Flash- Chương trình tạo tập tin Flash, Flash Player- Ứng dụng có nhiệm vụ chơi hiển thị tập tin Flash Flash dùng kỹ thuật đồ họa vector đồ họa điểm(raster graphics) Flash kèm với ngôn ngữ kịch riêng gọi ActionScript, ActionScript sử dụng để tạo tương tác, hoạt cảnh, hành động phim Flash Trong thời gian thực khóa luận, chúng tơi nắm kỹ thuật hiển thị thực thi đồ họa, cách xử lý kiện để hiển thị đối tượng tệp tin Flash, cách để chương trình chơi Flash dùng để thực thi tệp tin SWF Dựa số mã nguồn mở, đưa giải pháp thể 3D phần mềm nguồn mở Gnash kết hợp với Tamarin Hiện tại, Gnash hỗ trợ thực thi đồ họa 2D cho tệp tin Flash Tamarin máy ảo ActionScript nguồn mở Adobe với Mozilla cung cấp cho cộng đồng không cung cấp kèm theo cách hiển thị đồ họa cho tệp tin Flash Để thực giải pháp, chúng tơi đề xuất mơ hình cho việc kết hợp Gnash với Tamarin với phương pháp thực thi Bằng việc thêm máy ảo mới, Gnash hỗ trợ tốt cho ActionScript qua hỗ trợ thực thi hiệu phiên iv sau SWF( phiên 10) Trong ActionScritp hỗ trợ đối tượng bản, hiệu ứng đơn giản cho đồ họa 3D, với mơ hình này, Gnash thực thi đồ họa 3D Bằng việc sử dụng thư viện đồ họa 3D hỗ trợ cho ActionScript 3, hồn tồn tạo hiệu ứng, phim Flash 3D phức tạp Trong khóa luận này, tơi thực chương trình để thể kỹ thuật hiển thị FlashVideo dựa vào Gnash tệp tin SWF hiển thị tiến trình xử lý đối tượng ActionScript v Mục lục 1 1.1 Thực trạng 1.2 Hướng tiếp cận 1.3 Đặt vấn đề Phạm vi nghiên cứu Cơ sở lý thuyết 2.1 ActionScript - Flash - SWF 2.1.1 Ngôn ngữ ActionScript 2.1.2 Công nghệ Flash 2.1.3 Tệp tin Flash - SWF ActionScript Virtual Machine( AVM) 2.2.1 Giới thiệu AVM 2.2.2 Kiến trúc AVM 2.2.3 Bộ dọn dẹp nhớ AVM 11 2.2.4 Bộ xác thực AVM 12 2.2.5 Bộ thông dịch AVM 13 2.2.6 AVM Just-in-Time Compiler(JIT) 13 2.2 2.3 Tamarin 14 2.3.1 2.3.2 Mục đích dự án Tamarin 15 2.3.3 Tamarin central 16 2.3.4 2.4 Giới thiệu Tamarin 14 Tamarin redux 16 PaperVision 3D 16 vi MỤC LỤC 2.4.1 2.4.2 2.5 Giới thiệu 16 Đặc điểm PaperVision 3D 17 Gnash 17 2.5.1 2.5.2 Kiến trúc 18 2.5.3 Giới thiệu 18 Đặc điểm Gnash 21 Bài toán 22 3.1 Cơ sở 22 3.2 Giải pháp 23 3.2.1 3.2.2 3.3 Khái quát 23 Nội dung 23 Kỹ thuật hiển thị Flash Video 24 3.3.1 3.3.2 3.4 Cấu trúc liệu lưu trữ đối tượng hiển thị 24 FlashVideo với kiện 26 Áp dụng 27 3.4.1 3.4.2 Thực thi đồ họa 3D thiết bị nhúng 29 Hiển thị 3D Gnash dựa PaperVision 3D 30 Thực nghiệm 4.1 31 Các so sánh, đánh giá 31 4.1.1 4.1.2 Tamarin 32 4.1.3 4.2 LightSpark 31 Kiểm nghiệm 32 Demo 33 Kết luận 35 Tài liệu tham khảo 36 vii Danh sách hình vẽ 1.1 Ví dụ hiển thị trực quan 3D 2.1 Cấu trúc file SWF 2.2 Ví dụ tag có tập tin abc sau giải mã(Flash-SWF) 2.3 Minh họa cho nội dung tệp tin SWF 2.4 Kiến trúc AVM 2.5 Q trình chuyển mã cơng nghệ Flash 10 2.6 Cơ chế dọn dẹp nhớ 12 2.7 Các trình AVM 14 2.8 Kiến trúc Tamarin 15 2.9 Các thành phần thể đồ họa 3D 17 2.10 Các thành phần Gnash 19 2.11 Quá trình xử lý qua thành phần Gnash 20 3.1 Cấu trúc DisplayList 25 3.2 FlashVideo với kiện 26 3.3 Luồng xử lý đối tượng đồ họa Gnash 27 3.4 Sơ đồ kế thừa as_object 28 3.5 Mơ hình Gnash thực thi đồ họa 3D 29 4.1 Biểu đồ so sánh kết thực thi 33 4.2 Luồng xử lý Video Flash- Gnash Player 34 viii Bảng từ viết tắt Từ viết tắt 3D abc AS AGG API AVM GUI LIR LLVM MIR OpenGL OpenGLES PC PP3D JIT SWF VM ZCT Từ cụm từ Dimension(ba chiều) ActionScript Byte Code ActionScript(Ngôn ngữ kịch công nghệ Flash) Anti-Grain Geometry(Engine thể đồ họa 2D) Application Programming Interface ActionScript Virtual Machine( Máy ảo ActionScript) Graphics User Interface(Giao diện người dùng đồ họa) Low-Level Intermediate Representation Low-Level Virtual Machine Macromedia Intermidiate Representation Open Graphics Library(Thư viện đồ họa 2D 3D) OpenGL Embeded Systems(Thư viện đồ họa OpenGL cho hệ thống nhúng) Personal Computer( Máy tính cá nhân) PaperVision 3D (Thư viện Flash 3D) Just-in-time Small Web Format Shockwave Flash Virtual Machine( Máy ảo) Zero Count Table Bảng 1: Bảng từ viết tắt ix CHƯƠNG Đặt vấn đề 1.1 Thực trạng Ngày nay, với phát triển khoa học kỹ thuật công nghệ, thiết bị điện tử trở thành công cụ hỗ trợ hữu ích cơng việc người Những thiết bị sản xuất, sử dụng hầu khắp lĩnh vực xã hội, từ sản xuất công nghiệp tới sản xuất nông nghiệp cung cấp dịch vụ Các thiết bị điện tử làm sống người trở nên đơn giản, thuận tiện hơn, tăng suất, hiệu Những thiết bị điện tử này, từ thiết bị lớn robot cơng nghiệp, siêu máy tính tới thiết bị nhỏ bé, gắn bó với cá nhân máy tính cá nhân, PDA hỗ trợ cho người sử dụng cách hiệu Do nhu cầu người luôn thay đổi, thiết bị thay đổi không ngừng, liên tục đổi mới, đưa đặc điểm để hỗ trợ cho nhu cầu Thiết bị điện tử hỗ trợ cá nhân sản xuất với mục đích cung cấp cho số lượng lớn người dùng, số phần lớn người dùng phổ thơng Vì vậy, thiết bị phải dễ sử dụng, với giao diện thân thiện Trong năm gần đây, kỹ thuật tảng sử dụng đồ họa 2D có bước tiến với xuất đồ họa 3D mang đến thiết bị sử dụng đồ họa 3D sử dụng rộng rãi Tivi 3D, điện thoại di động 3D Sự phát triển công nghệ nhằm nhằm mang tới thỏa mãn nhu cầu ngày cao người dùng thẩm mỹ, chức sản phẩm Một vấn đề thiết bị hỗ trợ cá nhân nói riêng thiết bị nhúng nói chung: lực hạn chế xử lý, dung lượng lưu trữ nhớ nhớ thực thi Những ứng dụng thực thi PC thực thi thiết bị nhúng nên kỹ thuật xử lý hình ảnh thơng thường từ 2D sang 3D áp dụng cho PC khơng áp dụng đắn với hệ nhúng Những đặc điểm dẫn đến nhu cầu phát triển hệ thống đồ họa không phụ thuộc tảng( hệ điều hành, lực xử lý ) đặc biệt tính gọn nhẹ, đơn giản có khả tạo hiệu ứng 3D cách mềm mại, uyển CHƯƠNG 3: BÀI TOÁN Tệp tin Flash(SWF): Cách tổ chức tệp tin, nội dung tệp tin, trình đọc liệu nhị phân sang mã máy ảo Tamarin: dự án hợp tác Adobe Mozilla việc phát triển máy ảo Flash cho cộng đồng phát triển Mozilla dựa vào để phát triển dự án TraceMonkeyTích hợp Flash vào trình duyệt Mozilla Adobe tiếp tục phát triển tính cho máy ảo 3.2 Giải pháp 3.2.1 Khái quát Vì Flash cơng nghệ đóng nên việc tìm hiểu, sửa chữa tùy biến cho phù hợp với nhu cầu, mục đích sử dụng khó khăn, lý mà AppleMột hãng cơng nghệ lớn khác không hỗ trợ Flash cho sản phẩm Nhiệm vụ đặt phát triển, tùy biến sản phẩm dựa Flash đòi hỏi phải nắm bắt chi tiết công nghệ, kỹ thuật, đặc tả cách xử lý Flash Phiên Flash hỗ trợ số đối tượng 3D Để phục vụ mục tiêu dự án, mục đích khóa luận nhằm giới thiệu q trình tìm hiểu, xây dựng lại hệ thống có sẵn, qua nắm bắt tảng cơng nghệ để thực Dựa sở này, Gnash lựa chọn tốt so với việc sử dụng phần mềm đóng hồn tồn cung cấp Adobe Đây dự án nguồn mở, nhiên tồn số hạn chế, tồn lớn Gnash chưa hỗ trợ đầy đủ cho phiên sau SWF (Gnash 0.8.7) Gnash hỗ trợ tốt cho SWF phiên 7, tương đối đầy đủ với SWF phiên 8, chưa hỗ trợ đầy đủ với SWF đặc biệt chưa hỗ trợ phiên 10 3.2.2 Nội dung • Hỗ trợ Gnash thực thi đồ họa 3D, sử dụng thư viện đồ họa PaperVision3D, cách cải tiến thêm lớp as_object để phù hợp với lớp có AS Gnash với đối tượng as_object định nghĩa cho AS đó, PP3D thư viện AS viết dựa vào AS Đối tượng AS có thuộc tính dựa đặc điểm thiết kế theo tính kế thừa, khn dạng Trong đó, AS thiết kế đối tượng dựa vào phương thức để thiết lập trạng thái cho đối tượng • Cải tiến máy ảo có Gnash 23 CHƯƠNG 3: BÀI TOÁN Mặc dù Gnash có hai máy ảo chạy độc lập VM Machine2 Đối với VM thiết kế tương đối đầy đủ hỗ trợ đầy đủ cho AS 1/2 với Machine khơng phải Machine chưa thực thi cách đắn mã máy có nguồn gốc AS Hiện Machine coi mã máy AS thực thi mã máy AS Do chúng tơi cần phải thay đổi Machine để thực thi cách đắn AS cách cải tiến Machine( tốn nhiều công sức thời gian) cách chuyển quyền điều khiển mã máy AS sang cho Tamarin • Cung cấp lớp DisplayObject cho Tamarin Tamarin cung cấp bao gồm máy ảo AS 2( AVM2) NanoJIT Tamarin cung cấp lớp có AS mà không đưa lớp quan trọng việc hiển thị hình ảnh Flash DisplayObject Bằng cách viết lại DisplayObject dựa thuộc tính đối tượng đặc điểm chương trình quản lý hình(X11, Gtk ) cách cải tiến, cài đặt DisplayObject cung cấp sẵn Gnash để tương thích với đối tượng hiển thị AS • Cải tiến phần renderer Gnash hỗ trợ thêm lựa chọn OpenGLES Hiện Gnash hỗ trợ việc dùng thư viện đồ họa: AGG, Cairo mặc định GTK Dựa hướng giải trên, rút phương án tốt sử dụng Tamarin để hỗ trợ Gnash, tức đưa giải pháp để Tamarin hoạt động Gnash Vì Gnash cung cấp sẵn đối tượng thực thi phần hiển thị DisplayObject, DisplayList Gnash hỗ trợ OpenGL xử lý nhiều tới máy ảo AVM2 phức tạp chỉnh sửa Machine Trong phần khóa luận nói tới giải pháp 3.3 3.3.1 Kỹ thuật hiển thị Flash Video Cấu trúc liệu lưu trữ đối tượng hiển thị Display List thành phần Gnash để tổ chức tất phần tử đồ họa( gồm MovieClips, text, Jpgs ) hiển thị chúng hình Nói cách khác, Display List cấu trúc liệu dùng để tổ chức phần tử đồ họa sau hiển thị lên hình Nguyên tắc cấu trúc liệu tn theo mơ hình MovieClips có độ sâu định với MovieClips khác Hai máy ảo định nghĩa Gnash 24 CHƯƠNG 3: BÀI TOÁN Kiến trúc chương trình thực thi tệp tin Flash phải chứa DisplayList, cấu trúc dạng với giai đoạn(Stage) cần thực thi gốc nhánh DisplayObjectContainers, cuối DisplayObjects nút lá( hình vẽ 3.1) Stage thành phần sở để chứa thành phần DisplayObjects với trạng thái( frame- khung) tồn Stage Trong Gnash, Stage tương ứng với lớp movie_root, thành phần tồn định nghĩa tệp tin Flash nhị phân(SWF) chương trình thực thi phân tích từ tệp tin Stage chứa tất thành phần mà bạn nhìn thấy từ tệp tin Flash bạn, chứa thứ chứa thành phần tham chiếu thành phần khác Flash Stage thành phần DisplayList thể lên hình Frame DisplayObjectContainer chứa DisplayObjecs Trong Gnash, MovieClip lớp có chức tương tự- Chứa đựng phần tử đồ họa hành vi giống quản lý độ sâu, gắn với đối tượng khác Tất thành phẩn ẩn( chưa định nghĩa), từ trường văn tới ảnh hình vẽ, stage, mở rộng từ lớp DisplayObject Tất dạng DisplayObjects có thuộc tính x, y, visible lớp lại chứa đặc tính riêng cho đối tượng DisplayObject thành phần đại diện cho tất đối tượng đồ họa sử dụng Flash Hình 3.1: Cấu trúc DisplayList Sử dụng danh sách hiển thị dạng cây, trỏ đối tượng qua phần tử DisplayObjectContainer với trạng thái tương ứng vẽ 25 CHƯƠNG 3: BÀI TOÁN 3.3.2 FlashVideo với kiện Flash hỗ trợ nhiều kiểu kiện từ thiết bị chuột, bàn phím Với việc sử dụng kiện, Flash làm cho tệp tin có tính tương tác cao tên gọi ngôn ngữ ActionScript( kịch hành động) Đối với tệp tin, movie sau đưa vào DisplayList, kiện thực trải qua trình( thể hình vẽ 3.2): The capture phase(Giai đoạn bắt kiện): kiện nghe bắt đầu xuống từ stage tới mục tiêu nguồn gốc kiện The target phase(Giai đoạn tìm mục tiêu): Sự kiện nghe từ thân The building phase(Giai đoạn thực thi): kiên quay trở lại nghe danh sách hiển thị, ngược từ mục tiêu tới trạng thái đầu Hình 3.2: FlashVideo với kiện Dưới ví dụ cách thực thi kiện Gnash Trở lại ví dụ hình vẽ 3.4, với kiện chuột( MouseEvent) người sử dụng chọn vào sub1a, dễ dàng nhận thấy giai đoạn bắt kiện, đối tượng lựa chọn từ stage ⇒ mc1a ⇒ mc1_a ⇒ sub1a Sự kiện tạo dần từ stage xuống tới đối tượng sử dụng kiện Sự kiện này, tiếp tục xử lý đối tượng chọn, bước tìm mục tiêu Sau cùng, kiện lần ngược lên từ đối tượng chọn tới stage để đối tượng phía xử lý Chú ý: Luồng kiện displaylist cho thấy phần danh sách xử lý kiện mà chỉ cho ta biết phần xử lý kiện 26 CHƯƠNG 3: BÀI TOÁN 3.4 Áp dụng Căn vào mã nguồn cung cấp, dựa vào chức luồng kiện mã nguồn, dựng lại chế thực GNASH hình vẽ 3.3 Hình 3.3: Luồng xử lý đối tượng đồ họa Gnash Đầu vào Gnash tập tin có phần mở rộng swf, sau qua q trình phân tích từ SWFParser, tag lưu trữ vào cấu trúc liệu dạng bảng tagTableLoader Từ đây, với kiện bắt GUI hành động tập tin Flash định nghĩa, tác động tới danh sách hiển thị( DisplayList) sau đó, nạp liệu từ danh sách tag, đối tượng lưu trữ TagLoaderTable tới GUI Nhìn vào hình vẽ ta nhận rằng, đối tượng chủ yếu cần quan tâm as_object, thành phần quan trọng để định nghĩa đối tượng sau thực thi máy ảo Sở dĩ Gnash thực tệp tin Flash version cao AS có thêm số thuộc tính thay đổi cách thể thuộc tính cho đối tượng Flash Vì lý này, AS đưa vào máy ảo mới, AVM2 Gnash chưa hỗ trợ đầy đủ AVM2 phải nhiều cơng sức để hồn chỉnh vấn đề Giải pháp đưa là: cải tiến lớp as_object để thể đầy đủ thuộc tính phương thức có AS chỉnh sửa hoàn chỉnh AVM có Gnash để tạo mã máy phù hợp với nội dung mong muốn hiển thị GUI Vì as_object liên quan tới nhiều lớp khác như: GcResources, as_function- Một lớp định nghĩa hàm cung cấp cho đối tượng as_object, định nghĩa 27 CHƯƠNG 3: BÀI TOÁN hàm đối tượng có AS Do nhiệm vụ đặt chỉnh sửa as_function để thực thi thuộc tính đối tượng AS Chi tiết lớp liên quan thể hình vẽ 3.4 Hình 3.4: Sơ đồ kế thừa as_object Hiện Gnash cung cấp hai máy ảo chạy độc lập: máy ảo vm để chạy cho tệp tin Flash phiên cũ( từ phiên trở lại) hoàn chỉnh đầy đủ, máy ảo Machine chưa hoàn chỉnh để thực thi nội dung tập tin Flash từ phiên Để phù hợp với mục tiêu nhiệm vụ giai đoạn dự án, sử dụng Tamarin- Máy ảo cho phép xử lý mã máy từ phiên trở lên Flash Tamarin biết đến AVM sử dụng để thay cho máy ảo Machine có Gnash Trong q trình thực hiện, chúng tơi sử dụng biện pháp chuyển quyền điều khiển Gnash cho máy ảo Tamarin thực thi gặp tập tin Flash có phần header chứa nội dung phiên trở lên Trong Gnash, máy ảo không khởi tạo chương trình chạy mà xác định tag sinh từ phiên bắt đầu khởi tạo máy ảo tương ứng để thực thi tag Mỗi kiểu tệp tin Flash có cách định nghĩa hành động khác nhau: DoAction AS2 ABC blocks AS Một tệp tin SWF chứa kiểu hành động: DoAction ABC blocks AVM thực thi mã theo ABC blocks không thực thi mã theo DoAction Đối với Gnash, máy ảo VM đọc vào tag ABC blocks hành động chuyển sang xử lý Machine, gặp tag DoAction, máy ảo VM tạo VM mới, hủy VM cũ để thực tác vụ Dựa sở này, đề xuất việc sử dụng Tamarin theo chế sau: ABC blocks tồn tệp tin Flash, lớp SWFParser phân tích thành khối ABC để nạp vào máy ảo Tamarin Đối với khối DoAction giữ nguyên kiến trúc cũ Hình vẽ 3.5 thể kiến trúc mơ hình 28 CHƯƠNG 3: BÀI TỐN Hình 3.5: Mơ hình Gnash thực thi đồ họa 3D 3.4.1 Thực thi đồ họa 3D thiết bị nhúng Để hỗ trợ OpenGL ES, giai đoạn từ đưa đối tượng as_object sang danh sách hiển thị để xuất renderer lên hình, cần thêm gói renderer để hỗ trợ chuyển đổi từ đối tượng sang OpenGLES Vì Gnash thực thi OpenGL, toán đặt chuyển từ OpenGL⇒ OpenGLES Như biết, OpenGLES thư viện thu gọn OpenGL chuẩn để thi hành thiết bị di động điện thoại di động thiết bị cầm tay khác Hiện đa số ứng dụng viết với chuẩn OpenGL Flash số Khi ứng dụng tệp tin sinh từ OpenGL, hiển nhiên số chức hiệu ứng khơng thực thi với OpenGLES OpenGLES giản lược số hàm, phương thức có OpenGL để thực thi thiết bị có tài nguyên, lực hạn chế Chỉ 10% API OpenGL tồn OpenGLES, 50% API OpenGL phải thay đổi, sửa chữa với tham số để tốn tài nguyên hơn, phần lớn đặc điểm OpenGL khơng hỗ trợ OpenGLES[14] Ngoài đa số ứng dụng đồ họa 3D phát triển PC Vấn đề đặt yêu cầu chuyển đổi từ OpenGL sang OpenGLES để thiết bị sử dụng cách rộng rãi tài nguyên cung cấp dễ dàng cho cộng đồng người phát triển Dogless[14] phát minh để dùng cho mục đích Với mơi trường giả lập PC mô PowerVR Insider3 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 Một chip đồ họa nhúng cho phép thực thi tảng OpenGLES 2.0 29 CHƯƠNG 3: BÀI TOÁN pháp mạnh mẽ, linh hoạt cho việc thực ứng dụng 2D/3D/vector với GPU4 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: OpenGL ES 2.0/1.1, OpenVG 1.1, OpenGL 2.0/3.0, DirectX 9/10 OpenCL Đặc biệt với phiên tiếp theo( từ phiên 5), PowerVR cung cấp giải pháp cho tất dạng đồ họa 3D, 2D, đồ họa Vector cho thiết bị nhúng, với kỹ 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ến sử dụng điện thoại di động để thể hình ảnh 2D, 3D, tăng tốc đồ họa Vector( với dòng cao cấp) sử dụng công ty công nghệ bán dẫn di động hàng đầu với hàng trăm sản phẩm Samsung 3.4.2 Hiển thị 3D Gnash dựa PaperVision 3D Hiện tại, thư viện đồ họa 3D dùng cho Flash dùng kết hợp với hỗ trợ Framework Flex SDK Adobe cung cấp Do mục tiêu dự án cần chuyển đồ họa Flash 3D lên thiết bị di động cần thiết phải chỉnh sửa thư viện Mục đích để thư viện chạy OpenGLES với thiết bị nhúng Chi tiết kỹ thuật trình bày khóa luận bạn Lê Viết Sơn "Phương pháp xử lý đồ họa 3D Papervision 3D" Trong tài liệu đó, bạn tìm thấy chế, giải pháp cho việc đưa PaperVision 3D vào Gnash, số thực nghiệm thể PP3D Graphics Processing Unit 30 CHƯƠNG Thực nghiệm Với sở lý thuyết giải pháp đề xuất, tiến hành số phương pháp xác định khả thực thi đồ họa 3D máy ảo Dựa vào số máy ảo Flash nguồn mở, thực số đánh giá dựa vào trình so sánh kết thực chủ yếu dựa vào thời gian thực test 4.1 Các so sánh, đánh giá Mục đích việc so sánh chứng minh khả thực thi máy ảo ActionScript với số test Các số liệu test sử dụng từ công cụ test Java Grande Benchmarks[15], thực sô máy ảo flash nguồn mở Lightspark, Tamarin Central, Tamarin Tracing, Tamarin Redux Ngồi ra, chúng tơi có sử dụng số kết phân tích để phục vụ cho mục địch so sánh đánh giá khả hiệu suất chúng, nhằm lựa chọn mã nguồn thích hợp cho mục đích dự án 4.1.1 LightSpark Lightspark[16]- Một chương trình mã nguồn mở thực thi Flash( Flash Player) đơn giản nhiều so với Gnash chứa thành phần Flash Player: thực thi thời gian chạy với chế độ đồ họa hỗ trợ tốt cho ActionScript đặc tả lớp, phương thức, cách thừa kế, mô tả đối tuọng Lightspark sử dụng máy ảo LLVM[17]1 thay sử dụng máy ảo riêng LLVM cung cấp chương trình khung với API để thực thi máy ảo Lightspark phụ thuộc nhiều vào LLVM, từ tốc độ biên dịch tới tối ưu mã Lightspark sử dụng Low-Level Virtual Machine 31 CHƯƠNG 4: THỰC NGHIỆM OpenGL để hiển thị hình ảnh, thực thi đa luồng Hiện Lightspark phát triển để tối ưu tốc độ khả thực thi phim Flash 4.1.2 Tamarin Hiện tại, Tamarin có phiên tamarin-Tracing, phiên thử nghiệm máy ảo ActionScript phiên thứ phát triển cộng đồng nguồn mở: Tamarin-redux Tamarin-tracing sửa đổi để hướng tới mục đích tối ưu hóa trình lúc thực thi mã chưa định nghĩa với việc sử dụng nhớ nhỏ Tamarin-redux phiên để giới thiệu tính sửa lỗi phát thêm trình thực thi phát sinh Tamarin-Central Adobe cung cấp kèm theo cơng cụ cho việc kiểm tra tính năng, hiệu suất Tamarin thực thi Flash( test-suite) Bộ máy ảo phát triển đội chuyên nghiệp thời gian kéo dài năm 4.1.3 Kiểm nghiệm Chương trình kiểm nghiệm thực thi dựa việc so sánh hiệu thực thi ba chương trình Kết test thực tế sử dụng phân phối từ DHPC Java Grande Benchmark[15] Một phiên test đưa vào mã nguồn Tamarin biên dịch tới mã máy AS sử dụng công cụ biên dịch ASC Adobe Sau test thực thi Lightspark Bộ công cụ này[18] gồm kiểm tra sau: Crypt mã hóa giải mã liệu ngẫu nhiên sử dụng thuật toán IDEA symmetric, cung cấp lượng lớn kiểm tra số ngun tốn tử logic FFT tính toán chuỗi Fast Fourier Transform liệu ngẫu nhiên, bao gồm liệu dấu phẩy động Series Tính toán N hệ số chuỗi Fourier, để chứng minh khả gọi hàm lớp Toán học SOR Tính tốn giải pháp hệ thống tương tác trực tuyến sử dụng Successive over-relaxation SparseMatMult Thực thi nhân ma trận ma trận ngẫu nhiên, chứng minh khả truy xuất nhớ Hình vẽ 4.1[19] cho thấy Lightspark thực thi tốn thời gian nhiều so với Tamarin kiểm tra Crypt, thấy kết tương đồng 32 CHƯƠNG 4: THỰC NGHIỆM Hình 4.1: Biểu đồ so sánh kết thực thi chương trình 4.2 Demo Dưới chương trình thực để thể chế xử lý FlashVideo Gnash tệp tin SWF Chương trình thể chế để tệp tin SWF- Đầu vào Gnash, thực thi thể lên hình Giao diện chương trình hình vẽ 4.2 Chương trình gồm phần là: • Process Comment: Thể luồng đầu vào, trình phân tích, thực thi chạy Gnash tệp tin SWF, đối tượng phân tích, gọi hiển thị • Display Component: Thể trực quan hình vẽ luồng thực thi tệp tin đầu vào cụ thể Thể ràng buộc đối tượng khác tạo trình thực thi Gnash • DisplayMovie: Thể nội dung tệp tin SWF đầu vào, cho phép người dùng tương tác với tệp tin Flash Vùng thể tiến trình( Process Comment) cho thấy rằng( tập tin tại), sử dụng tài nguyên nào, Gnash gọi khởi tạo đối tượng sao, trình thực thi tệp tin Q trình cịn thể cách thực thi máy ảo cài đặt Gnash sử dụng, phân phối thu hồi nhớ đối tượng cấp phát 33 CHƯƠNG 4: THỰC NGHIỆM Hình 4.2: Luồng xử lý Video Flash- Gnash Player Vùng hiển thị( Display Comment)- Phần phía Process Comment, cho hình dung cụ thể cách xử lý đối tượng, cách xử lý số kiện( events) mối quan hệ trình Gnash Với mơ hình này, q trình Gnash thể rõ ràng, dễ hiểu nhằm phục vụ cho mục đích thể kỹ thuật Flash Video Gnash khóa luận Phần cuối cùng, phần hiển thị nội dung tệp tin đầu vào swf Tại phần cửa sổ này, toàn nội dung tệp tin Flash thực thi, hiển thị giống với số chương trình chơi Flash khác( Flash Player) Với phần thể tệp tin Flash giúp dễ dàng kiểm tra xuất đối tượng so với nội dung thể phần lại Process Comment Display Comment 34 CHƯƠNG Kết luận Tổng kết Trong trình thực đề tài, tơi đạt số kết sau: đưa chế thể FlashVideo Gnash, đưa mơ hình đề xuất cho việc thể Flash 3D, cung cấp số hướng thực đề tài, chế để đưa flash 3D lên thiết bị nhúng Qua trình thực dựa vào số kết chứng tỏ tính đắn giải pháp khả thực Đây tiền đề quan trọng để tiếp tục thực việc xây dựng hệ thống riêng độc lập với Adobe Flash để thực thi thiết bị nhúng Mặc khác, hi vọng với giải pháp, kết nêu viết này, tạo điều kiện thuận lợi cho nhóm, hướng nghiên cứu khác xử lý Flash 3D, đặc biệt việc chuyển Flash 3D vào thiết bị, hướng nghiên cứu tiềm tương lai gần Hướng phát triển Qua khóa luận này, nhận thấy khả phát triển đề tài việc thực thi Flash 3D PC nói chung thiết bị nói riêng tiềm cần phải quan tâm, nghiên cứu sâu sắc, triệt để Việc cá nhân hóa thiết bị điện tử xu giới dĩ nhiên kèm với đồ họa máy tính cho thiết bị ngày phải tốt hơn, trực quan Những sở lý thuyết, giải pháp, thực nghiệm tiền đề cho tiếp tục công việc xây dựng Flash 3D để thể số cấu trúc liệu phức tạp, phân tích tăng tính trực quan cho người sử dụng toán sử dụng số liệu tính tốn lớn, phức tạp 35 Tài liệu tham khảo [1] PaperVision 3D Forum papervision 3d, June 21 1994 URL http://http: //blog.papervision3d.org/ (last accessed February 7, 2004) [2] Flare, data visualization for the web URL http://flare.prefuse.org/ [3] Action Script Adobe Systems [4] ECMAScript Language Specification Ecma International, December 2009 URL http://www.ecmascript.org/ [5] Adobe Flash Adobe and Macromedia [6] SWF File Format Specification Version 10 Adobe Systems Incorporated, November 2008 [7] Adobe Flash Player ActionScript Virtual Machine Adobe Systems, December 6, 2006 [8] ActionScript Virtual Machine overview Adobe Systems, May 2007 [9] Tracemonkey TraceMonkey URL https://wiki.mozilla.org/JavaScript: [10] Flex sdk framework URL http://opensource.adobe.com/wiki/ display/flexsdk/Flex+SDK [11] Jeff Winder and Paul Tondeur Papervision3d essentials Packt Publishing Ltd., 32 Lincoln Road Olton Birmingham, B27 6PA, UK, 1999 [12] Gnu project URL http://www.gnu.org/gnu/thegnuproject.html [13] Gnash Documents Gnash and GNU software/gnash/ URL http://www.gnu.org/ [14] OpenGL to openGL/ES translator and openGL/ES simulator PATENT APPLICATION, 20.04.2007 36 EUROPEAN TÀI LIỆU THAM KHẢO [15] Dhpc java benchmarks URL http://www.dhpc.adelaide.edu.au/ projects/javagrande/benchmarks/ [16] Alessandro Pignotti Lightspark project homepage lightspark.sourceforge.net URL http:// [17] The llvm compiler infrastructure URL http://llvm.org/ [18] PD Coddington JA Mathew and KA Hawick Dhcp grande benchmark URL http://www.dhpc.adelaide.edu.au/projects/javagrande/ benchmarks/dhpc_bench.tar.gz [19] Alessandro Pignotti An efficient actionscript 3.0 just-in-time compiler implementation Master’s thesis, University of Pisa, Pisa, Italy, 09/2008 37 ... cứu kỹ thuật xây dựng 3D cho thiết bị nhúng, xu hướng phát triển mạnh giới thời điểm Mục đích q trình nghiên cứu xây dựng chương trình khung1 hiển thị giao diện người dùng đồ họa 3D dựa công nghệ. .. mở Gnash, thư viện Flash 3D: Papervision 3D đưa giải pháp cho việc thực thi thiết bị nhúng Để thực mục đích trên, nhằm hướng tới mục tiêu xây dựng đồ họa 3D cho thiết bị nhúng, khuôn khổ khóa luận... cấp giải pháp cho tất dạng đồ họa 3D, 2D, đồ họa Vector cho thiết bị nhúng, với kỹ 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ến

Ngày đăng: 01/12/2012, 08:41

Hình ảnh liên quan

Bảng từ viết tắt - Kỹ thuật xây dựng đồ họa 3D dựa trên công nghệ Plash dành cho thiết bị nhúng

Bảng t.

ừ viết tắt Xem tại trang 9 của tài liệu.
Hình 1.1: Ví dụ về hiển thị trực quan 3D - Kỹ thuật xây dựng đồ họa 3D dựa trên công nghệ Plash dành cho thiết bị nhúng

Hình 1.1.

Ví dụ về hiển thị trực quan 3D Xem tại trang 11 của tài liệu.
Hình vẽ 2.2 là các tag có trong tập tin SWF sau khi được phân tích thành dạng XML4 . Chúng ta có thể dễ dàng nhận thấy cấu trúc của tệp tin SWF bao gồm tuần tự các tag nối tiếp nhau bao gồm các thuộc tính, các giá trị - Kỹ thuật xây dựng đồ họa 3D dựa trên công nghệ Plash dành cho thiết bị nhúng

Hình v.

ẽ 2.2 là các tag có trong tập tin SWF sau khi được phân tích thành dạng XML4 . Chúng ta có thể dễ dàng nhận thấy cấu trúc của tệp tin SWF bao gồm tuần tự các tag nối tiếp nhau bao gồm các thuộc tính, các giá trị Xem tại trang 16 của tài liệu.
Hình 2.3: Minh họa cho nội dung tệp tin SWF - Kỹ thuật xây dựng đồ họa 3D dựa trên công nghệ Plash dành cho thiết bị nhúng

Hình 2.3.

Minh họa cho nội dung tệp tin SWF Xem tại trang 17 của tài liệu.
Hình 2.4: Kiến trúc AVM - Kỹ thuật xây dựng đồ họa 3D dựa trên công nghệ Plash dành cho thiết bị nhúng

Hình 2.4.

Kiến trúc AVM Xem tại trang 18 của tài liệu.
Hình 2.5: Quá trình chuyển mã của công nghệ Flash - Kỹ thuật xây dựng đồ họa 3D dựa trên công nghệ Plash dành cho thiết bị nhúng

Hình 2.5.

Quá trình chuyển mã của công nghệ Flash Xem tại trang 19 của tài liệu.
Hình 2.6: Cơ chế của bộ dọn dẹp bộ nhớ - Kỹ thuật xây dựng đồ họa 3D dựa trên công nghệ Plash dành cho thiết bị nhúng

Hình 2.6.

Cơ chế của bộ dọn dẹp bộ nhớ Xem tại trang 21 của tài liệu.
Hình 2.7: Các quá trình của AVM - Kỹ thuật xây dựng đồ họa 3D dựa trên công nghệ Plash dành cho thiết bị nhúng

Hình 2.7.

Các quá trình của AVM Xem tại trang 23 của tài liệu.
Hình 2.8: Kiến trúc Tamarin - Kỹ thuật xây dựng đồ họa 3D dựa trên công nghệ Plash dành cho thiết bị nhúng

Hình 2.8.

Kiến trúc Tamarin Xem tại trang 24 của tài liệu.
PaperVision3D sử dụng các kỹ thuật trong đồ họa máy tính để xây dựng hình ảnh 3D trên màn hình, nó bao gồm các thành phần chính như: Camera, Viewport, Scene, Render ( được thể hiện trong hình vẽ 2.9). - Kỹ thuật xây dựng đồ họa 3D dựa trên công nghệ Plash dành cho thiết bị nhúng

aper.

Vision3D sử dụng các kỹ thuật trong đồ họa máy tính để xây dựng hình ảnh 3D trên màn hình, nó bao gồm các thành phần chính như: Camera, Viewport, Scene, Render ( được thể hiện trong hình vẽ 2.9) Xem tại trang 26 của tài liệu.
Các gói được sử dụng trong Gnash( hình vẽ 2.10): - Kỹ thuật xây dựng đồ họa 3D dựa trên công nghệ Plash dành cho thiết bị nhúng

c.

gói được sử dụng trong Gnash( hình vẽ 2.10): Xem tại trang 28 của tài liệu.
Hình 2.11: Quá trình xử lý qua các thành phần Gnash Chú thích: - Kỹ thuật xây dựng đồ họa 3D dựa trên công nghệ Plash dành cho thiết bị nhúng

Hình 2.11.

Quá trình xử lý qua các thành phần Gnash Chú thích: Xem tại trang 29 của tài liệu.
Hình 3.1: Cấu trúc của DisplayList - Kỹ thuật xây dựng đồ họa 3D dựa trên công nghệ Plash dành cho thiết bị nhúng

Hình 3.1.

Cấu trúc của DisplayList Xem tại trang 34 của tài liệu.
Hình 3.2: FlashVideo với các sự kiện Dưới đây là ví dụ về cách thực thi các sự kiện trong Gnash. - Kỹ thuật xây dựng đồ họa 3D dựa trên công nghệ Plash dành cho thiết bị nhúng

Hình 3.2.

FlashVideo với các sự kiện Dưới đây là ví dụ về cách thực thi các sự kiện trong Gnash Xem tại trang 35 của tài liệu.
Hình 3.3: Luồng xử lý đối tượng đồ họa trong Gnash - Kỹ thuật xây dựng đồ họa 3D dựa trên công nghệ Plash dành cho thiết bị nhúng

Hình 3.3.

Luồng xử lý đối tượng đồ họa trong Gnash Xem tại trang 36 của tài liệu.
Hình 3.4: Sơ đồ kế thừa as_object - Kỹ thuật xây dựng đồ họa 3D dựa trên công nghệ Plash dành cho thiết bị nhúng

Hình 3.4.

Sơ đồ kế thừa as_object Xem tại trang 37 của tài liệu.
Hình 3.5: Mô hình Gnash thực thi đồ họa 3D - Kỹ thuật xây dựng đồ họa 3D dựa trên công nghệ Plash dành cho thiết bị nhúng

Hình 3.5.

Mô hình Gnash thực thi đồ họa 3D Xem tại trang 38 của tài liệu.
Hình 4.1: Biểu đồ so sánh kết quả thực thi giữa các chương trình này. - Kỹ thuật xây dựng đồ họa 3D dựa trên công nghệ Plash dành cho thiết bị nhúng

Hình 4.1.

Biểu đồ so sánh kết quả thực thi giữa các chương trình này Xem tại trang 42 của tài liệu.
Hình 4.2: Luồng xử lý Video của Flash- Gnash Player - Kỹ thuật xây dựng đồ họa 3D dựa trên công nghệ Plash dành cho thiết bị nhúng

Hình 4.2.

Luồng xử lý Video của Flash- Gnash Player Xem tại trang 43 của tài liệu.

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan