Table Of ContentEvaluation 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:May 7, 2012 The APIs subjected to the evaluation are Java 3D, Ardor3D and .. Java is
becoming an attractive platform for game development. These indie