* (document settings) :noexport:
** use dark style for TWBS-HTML exporter
-#+HTML_HEAD: <link href="https://bootswatch.com/darkly/bootstrap.min.css" rel="stylesheet">
+#+HTML_HEAD: <link href="https://bootswatch.com/4/darkly/bootstrap.min.css" rel="stylesheet">
#+HTML_HEAD: <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
#+HTML_HEAD: <script src="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.1/js/bootstrap.min.js"></script>"
#+HTML_HEAD: <style type="text/css">
#+HTML_HEAD: </style>
* Project description
-In-software, pure Java realtime 3D rendering engine. With the final
++ See: [[http://www2.svjatoslav.eu/gitbrowse/sixth-3d-demos/doc/index.html][demos of current 3D engine capabilities]]
+
+[[id:d03013e5-931b-40ca-bc4b-e4b3f23b9a4e][In software]], [[id:a11f7150-1b25-4ca4-a3c3-8c8bd1352bd4][pure Java]] realtime 3D rendering engine. With the final
goal of becoming a platform for buildng 3D user interfaces and
-interactive data visualization.
+interactive data visualization for [[http://www2.svjatoslav.eu/gitbrowse/sixth/doc/index.html][project Sixth]].
-+ See: [[http://www2.svjatoslav.eu/gitbrowse/sixth-3d-demos/doc/index.html][demos of current 3D engine capabilities]]
+Sixth 3D can be also used as standalone [[id:08f71987-90af-40dc-bb65-bac87db9e652][3D engine in your project]].
+** Justification for software rendering
+ :PROPERTIES:
+ :ID: d03013e5-931b-40ca-bc4b-e4b3f23b9a4e
+ :END:
+3D rendering is done in software, 100% pure Java on CPU. At least for
+now. Modern CPU cores count keeps growing and therefore rendering by
+CPU is not as expensive as it used to be for the old single core
+systems.
-System is implemented in Java because:
+CPU rendering performance is already good enough to implement usable
+3D UI at sufficient detail level, resolution and frame rate.
+
+Also CPU rendering allows to freely test different rendering and
+optimization algorithms and retains complete control of every rendered
+pixel.
+** Justification for Java
+ :PROPERTIES:
+ :ID: a11f7150-1b25-4ca4-a3c3-8c8bd1352bd4
+ :END:
- It is easy to refactor and experiment with.
+- Easy portability and installation. No need to deal with platform
+ specific dependencies.
+
- It scales well to handle great complexity.
- Allows to implement clever performance optimizations (instead of
going for GPU offered brute-force rendering approach).
- As a result it is easy to run on various hardware platforms and
operating systems.
-3D rendering is done in software, 100% pure Java on CPU. At least for
-now. Modern CPU cores count keeps growing and therefore rendering by
-CPU is not as expensive as it used to be for the old single core
-systems.
-
-CPU rendering performance is already good enough to implement usable
-3D UI at sufficient detail level, resolution and frame rate.
-
-Pure Java also means easy portability and installation. No need to
-deal with platform specific dependencies.
-
-Also CPU rendering allows to easily test different rendering
-algorithms and retains complete control of every rendered pixel.
-
+* TODO API documentation
+Documentation currently missing for the lack of time.
+So far best resource is to download and explore source code for:
++ 3D engine ([[file:codeGraph/index.html][generated code graph]] (generated using [[http://www2.svjatoslav.eu/gitbrowse/javainspect/doc/index.html][this tool]]))
++ For API usage examples, see [[http://www2.svjatoslav.eu/gitbrowse/sixth-3d-demos/doc/index.html][demos]].
* Instructions to embed Sixth-3D in your project
+ :PROPERTIES:
+ :ID: 08f71987-90af-40dc-bb65-bac87db9e652
+ :END:
Maven *pom.xml* file snippet:
#+BEGIN_SRC xml
<dependencies>
<dependency>
<groupId>eu.svjatoslav</groupId>
<artifactId>sixth-3d</artifactId>
- <version>1.0</version>
+ <version>1.1</version>
</dependency>
...
</dependencies>
</repositories>
#+END_SRC
-See [[file:codeGraph/index.html][generated code graph]] using [[http://www2.svjatoslav.eu/gitbrowse/javainspect/doc/index.html][this tool]].
+For API usage examples, see [[http://www2.svjatoslav.eu/gitbrowse/sixth-3d-demos/doc/index.html][demos]].
* TODO features to add
+ Partial region/frame repaint: when only one small object changed on
the scene, it would be faster to re-render that specific area.