Added features to implement
[sixth-3d.git] / doc / index.org
1 #+TITLE: Sixth 3D - 3D engine
2
3 -----
4 - This is a subproject of [[http://www2.svjatoslav.eu/gitbrowse/sixth/doc/index.html][Sixth]]
5
6 - [[http://www2.svjatoslav.eu/gitweb/?p=sixth-3d.git;a=snapshot;h=HEAD;sf=tgz][download latest snapshot]]
7
8 - This program is free software; you can redistribute it and/or modify it under
9   the terms of version 3 of the [[https://www.gnu.org/licenses/lgpl.html][GNU Lesser General Public License]] or later as
10   published by the Free Software Foundation.
11
12 - Program author:
13   - Svjatoslav Agejenko
14   - Homepage: http://svjatoslav.eu
15   - Email: mailto://svjatoslav@svjatoslav.eu
16
17 - [[http://svjatoslav.eu/programs.jsp][other applications hosted at svjatoslav.eu]]
18
19 * (document settings) :noexport:
20 ** use dark style for TWBS-HTML exporter
21 #+HTML_HEAD: <link href="https://bootswatch.com/darkly/bootstrap.min.css" rel="stylesheet">
22 #+HTML_HEAD: <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
23 #+HTML_HEAD: <script src="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.1/js/bootstrap.min.js"></script>"
24 #+HTML_HEAD: <style type="text/css">
25 #+HTML_HEAD:   footer {background-color: #111 !important;}
26 #+HTML_HEAD:   pre {background-color: #111; color: #ccc;}
27 #+HTML_HEAD: </style>
28
29 * Project description
30 In software, pure Java realtime 3D rendering engine. With the final goal of
31 becoming a platform for buildng 3D user interfaces.
32
33 + See: [[http://www2.svjatoslav.eu/gitbrowse/sixth-3d-demos/doc/index.html][demos of current 3D engine capabilities]]
34
35
36 System is implemented in Java because:
37 - It scales well to handle great complexity.
38 - It is easy to refactor and experiment with.
39 - It is fast enough thanks to Java virtual machine just-in-time compiler.
40 - Easy to run on various hardware platforms and operating systems.
41
42 3D rendering is done in software, 100% pure Java on CPU. At least for now.
43 Modern CPU cores count keeps growing and therefore rendering by CPU is not as
44 expensive as it used to be for the old single core systems.
45
46 CPU rendering performance is already good enough to implement usable 3D UI at
47 sufficient detail level, resolution and frame rate.
48
49 Pure Java also means easy portability and installation. No need to deal with
50 platform specific dependencies.
51
52 Also CPU rendering allows to easily test different rendering algorithms and
53 retains complete control of every rendered pixel.
54
55 * Software development
56 ** TODO
57 + partial (region) frame repaint
58 + antialiazing
59 ** Instructions to embed Sixth-3D in your project
60 Maven *pom.xml* file snippet:
61 #+BEGIN_SRC xml
62 <dependencies>
63     ...
64     <dependency>
65         <groupId>eu.svjatoslav</groupId>
66         <artifactId>sixth-3d</artifactId>
67         <version>1.0</version>
68     </dependency>
69     ...
70 </dependencies>
71
72 <repositories>
73     ...
74     <repository>
75         <id>svjatoslav.eu</id>
76         <name>Svjatoslav repository</name>
77         <url>http://www2.svjatoslav.eu/maven/</url>
78     </repository>
79     ...
80 </repositories>
81 #+END_SRC
82
83 See [[file:codeGraph/index.html][generated code graph]] using [[http://www2.svjatoslav.eu/gitbrowse/javainspect/doc/index.html][this tool]].