Logout succeed
Logout succeed. See you again!

Evaluation of 3D Scene Graph APIs for Java PDF
Preview Evaluation of 3D Scene Graph APIs for Java
Evaluation of 3D Scene Graph APIs for Java Thomas Winger MasterThesis May2012 FacultyofComputerSciences, ØstfoldUniversityCollege 2 Abstract Thisthesispresentsanevaluationofasetof3DSceneGraphAPIsforJava. Theworkconsistmainly of two parts: Defining a methodology for comparing the APIs, and then applying the proposed methodologytotheAPIs. An overview of the available 3D Scene Graph APIs in Java is presented, and a selection of thesearechosenfortheevaluation. TheAPIssubjectedtotheevaluationareJava3D,Ardor3Dand jMonkeyEngine3. The proposed methodology focuses on the comparison on four different aspects. These are: Project Management and Technical Infrastructure, System Architecture, System Features and Ca- pabilities,andSystemPerformance. The results from applying the evaluation method show that none of the APIs were superior to theothersinallrespects. TheresultsidentifystrengthsandweaknesseswitheachAPI,thatindicate whichusecaseseachAPImightbebettersuitedfor. Keywords: SceneGraph,API,Evaluation,Java,3DGraphics,OpenGL,Java3D,jMonkeyEngine3, Ardor3D i Acknowledgements I wish to thank Børre Stenseth for the support, proof reading and critical discussions during this thesis, and throughout my years at Østfold University College. Thanks to Michael Louka for as- sisting me in defining the methodology, insightful discussions, and in proof reading this thesis. I alsowanttothankTom-RobertBryntesenfortheinspiringtechnicaldiscussions,andtheassistance throughoutthisthesis. Iwouldalsoliketothankmyfriends,familyandMiaforyourcontinuedsupportthroughoutmy five years studying in Halden. Without your support and understanding, none of this would have beenpossible. iii Prerequisites This thesis covers many aspects related to computer science, with a special focus on computer graphics. It is not possible to go into detail on every subject covered in this thesis, therefore it is assumed that the reader has a basic understanding of 3D computer graphics, as well as a general knowledgeabouttheprogramminglanguageJava. IntheBackgroundchapter,informationaboutsomeofthemostimportantaspectsisgiven. AglossaryofwordsandexpressionsisincludedinAppendixA. v Table of Contents Abstract i Acknowledgements iii Prerequisites vii 1 Introduction 1 1.1 Motivation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1.2 ResearchObjectives . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 1.3 Methodology . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 1.4 SelectionofAPIs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 1.5 Outline . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 2 Background 7 2.1 RelatedWork . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 2.1.1 EvaluationofOpenSourceProjects . . . . . . . . . . . . . . . . . . . . . 8 2.1.2 Performanceanalysis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 2.2 Real-time3DGraphicLibraries . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 2.3 Immediate-andRetained-Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 2.4 SceneGraphsand3DSceneGraphAPIs . . . . . . . . . . . . . . . . . . . . . . . 18 2.5 Shaders . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 2.6 StereoscopicRendering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 2.7 DesignStructureMatrix . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 2.8 SoftwareLicensing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 vii viii TABLEOFCONTENTS 3 Investigationof3DSceneGraphAPIs 29 3.1 Noteabouttheinvestigation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 3.2 Java3D . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 3.2.1 History . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 3.2.2 Releases. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 3.2.3 Community . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 3.2.4 Showcase . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 3.2.5 Licensing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 3.2.6 Packaging . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 3.2.7 SceneGraphStructure . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 3.3 jMonkeyEngine3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 3.3.1 History . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 3.3.2 Releases. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 3.3.3 Community . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 3.3.4 Showcase . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 3.3.5 Licensing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 3.3.6 Packaging . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 3.3.7 SceneGraphStructure . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 3.4 Ardor3D . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 3.4.1 History . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 3.4.2 Releases. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 3.4.3 Community . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 3.4.4 Showcase . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 3.4.5 Licensing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 3.4.6 Packaging . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 3.4.7 SceneGraphStructure . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 3.5 jReality . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 3.6 Aviatrix3D . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 3.7 Xith3D . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 3.8 jPCT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 4 EvaluationMethodology 43 4.1 ComparingAPIs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43