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
Description: