Added features to implement
[sixth-3d.git] / doc / index.html
1 <!doctype html>
2 <html lang="en">
3 <head>
4 <title>Sixth 3D - 3D engine</title>
5 <!-- 2017-03-06 Mon 10:18 -->
6 <meta charset="utf-8">
7 <meta name="viewport" content="width=device-width, initial-scale=1">
8 <meta name="generator" content="Org-mode">
9 <meta name="author" content="Svjatoslav Agejenko">
10 <link href="https://bootswatch.com/darkly/bootstrap.min.css" rel="stylesheet">
11 <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
12 <script src="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.1/js/bootstrap.min.js"></script>"
13 <style type="text/css">
14 footer {background-color: #111 !important;}
15 pre {background-color: #111; color: #ccc;}
16 </style>
17 <style type="text/css">
18 /* org mode styles on top of twbs */
19
20 html {
21     position: relative;
22     min-height: 100%;
23 }
24
25 body {
26     font-size: 18px;
27     margin-bottom: 105px;
28 }
29
30 footer {
31     position: absolute;
32     bottom: 0;
33     width: 100%;
34     height: 101px;
35     background-color: #f5f5f5;
36 }
37
38 footer > div {
39     padding: 10px;
40 }
41
42 footer p {
43     margin: 0 0 5px;
44     text-align: center;
45     font-size: 16px;
46 }
47
48 #table-of-contents {
49     margin-top: 20px;
50     margin-bottom: 20px;
51 }
52
53 blockquote p {
54     font-size: 18px;
55 }
56
57 pre {
58     font-size: 16px;
59 }
60
61 .footpara {
62     display: inline-block;
63 }
64
65 figcaption {
66   font-size: 16px;
67   color: #666;
68   font-style: italic;
69   padding-bottom: 15px;
70 }
71
72 /* from twbs docs */
73
74 .bs-docs-sidebar.affix {
75     position: static;
76 }
77 @media (min-width: 768px) {
78     .bs-docs-sidebar {
79         padding-left: 20px;
80     }
81 }
82
83 /* All levels of nav */
84 .bs-docs-sidebar .nav > li > a {
85     display: block;
86     padding: 4px 20px;
87     font-size: 14px;
88     font-weight: 500;
89     color: #999;
90 }
91 .bs-docs-sidebar .nav > li > a:hover,
92 .bs-docs-sidebar .nav > li > a:focus {
93     padding-left: 19px;
94     color: #A1283B;
95     text-decoration: none;
96     background-color: transparent;
97     border-left: 1px solid #A1283B;
98 }
99 .bs-docs-sidebar .nav > .active > a,
100 .bs-docs-sidebar .nav > .active:hover > a,
101 .bs-docs-sidebar .nav > .active:focus > a {
102     padding-left: 18px;
103     font-weight: bold;
104     color: #A1283B;
105     background-color: transparent;
106     border-left: 2px solid #A1283B;
107 }
108
109 /* Nav: second level (shown on .active) */
110 .bs-docs-sidebar .nav .nav {
111     display: none; /* Hide by default, but at >768px, show it */
112     padding-bottom: 10px;
113 }
114 .bs-docs-sidebar .nav .nav > li > a {
115     padding-top: 1px;
116     padding-bottom: 1px;
117     padding-left: 30px;
118     font-size: 12px;
119     font-weight: normal;
120 }
121 .bs-docs-sidebar .nav .nav > li > a:hover,
122 .bs-docs-sidebar .nav .nav > li > a:focus {
123     padding-left: 29px;
124 }
125 .bs-docs-sidebar .nav .nav > .active > a,
126 .bs-docs-sidebar .nav .nav > .active:hover > a,
127 .bs-docs-sidebar .nav .nav > .active:focus > a {
128     padding-left: 28px;
129     font-weight: 500;
130 }
131
132 /* Nav: third level (shown on .active) */
133 .bs-docs-sidebar .nav .nav .nav {
134     padding-bottom: 10px;
135 }
136 .bs-docs-sidebar .nav .nav .nav > li > a {
137     padding-top: 1px;
138     padding-bottom: 1px;
139     padding-left: 40px;
140     font-size: 12px;
141     font-weight: normal;
142 }
143 .bs-docs-sidebar .nav .nav .nav > li > a:hover,
144 .bs-docs-sidebar .nav .nav .nav > li > a:focus {
145     padding-left: 39px;
146 }
147 .bs-docs-sidebar .nav .nav .nav > .active > a,
148 .bs-docs-sidebar .nav .nav .nav > .active:hover > a,
149 .bs-docs-sidebar .nav .nav .nav > .active:focus > a {
150     padding-left: 38px;
151     font-weight: 500;
152 }
153
154 /* Show and affix the side nav when space allows it */
155 @media (min-width: 992px) {
156     .bs-docs-sidebar .nav > .active > ul {
157         display: block;
158     }
159     /* Widen the fixed sidebar */
160     .bs-docs-sidebar.affix,
161     .bs-docs-sidebar.affix-bottom {
162         width: 213px;
163     }
164     .bs-docs-sidebar.affix {
165         position: fixed; /* Undo the static from mobile first approach */
166         top: 20px;
167     }
168     .bs-docs-sidebar.affix-bottom {
169         position: absolute; /* Undo the static from mobile first approach */
170     }
171     .bs-docs-sidebar.affix .bs-docs-sidenav,.bs-docs-sidebar.affix-bottom .bs-docs-sidenav {
172         margin-top: 0;
173         margin-bottom: 0
174     }
175 }
176 @media (min-width: 1200px) {
177     /* Widen the fixed sidebar again */
178     .bs-docs-sidebar.affix-bottom,
179     .bs-docs-sidebar.affix {
180         width: 263px;
181     }
182 }
183 </style>
184 <script type="text/javascript">
185 $(function() {
186     'use strict';
187
188     $('.bs-docs-sidebar li').first().addClass('active');
189
190     $(document.body).scrollspy({target: '.bs-docs-sidebar'});
191
192     $('.bs-docs-sidebar').affix();
193 });
194 </script>
195 </head>
196 <body>
197 <div id="content" class="container">
198 <div class="row"><div class="col-md-9"><h1 class="title">Sixth 3D - 3D engine</h1>
199 <hr >
200 <ul class="org-ul">
201 <li>This is a subproject of <a href="http://www2.svjatoslav.eu/gitbrowse/sixth/doc/index.html">Sixth</a>
202 </li>
203
204 <li><a href="http://www2.svjatoslav.eu/gitweb/?p=sixth-3d.git;a=snapshot;h=HEAD;sf=tgz">download latest snapshot</a>
205 </li>
206
207 <li>This program is free software; you can redistribute it and/or modify it under
208 the terms of version 3 of the <a href="https://www.gnu.org/licenses/lgpl.html">GNU Lesser General Public License</a> or later as
209 published by the Free Software Foundation.
210 </li>
211
212 <li>Program author:
213 <ul class="org-ul">
214 <li>Svjatoslav Agejenko
215 </li>
216 <li>Homepage: <a href="http://svjatoslav.eu">http://svjatoslav.eu</a>
217 </li>
218 <li>Email: <a href="mailto://svjatoslav@svjatoslav.eu">mailto://svjatoslav@svjatoslav.eu</a>
219 </li>
220 </ul>
221 </li>
222
223 <li><a href="http://svjatoslav.eu/programs.jsp">other applications hosted at svjatoslav.eu</a>
224 </li>
225 </ul>
226
227 <div id="outline-container-sec-1" class="outline-2">
228 <h2 id="sec-1"><span class="section-number-2">1</span> Project description</h2>
229 <div class="outline-text-2" id="text-1">
230 <p>
231 In software, pure Java realtime 3D rendering engine. With the final goal of
232 becoming a platform for buildng 3D user interfaces.
233 </p>
234
235 <ul class="org-ul">
236 <li>See: <a href="http://www2.svjatoslav.eu/gitbrowse/sixth-3d-demos/doc/index.html">demos of current 3D engine capabilities</a>
237 </li>
238 </ul>
239
240
241 <p>
242 System is implemented in Java because:
243 </p>
244 <ul class="org-ul">
245 <li>It scales well to handle great complexity.
246 </li>
247 <li>It is easy to refactor and experiment with.
248 </li>
249 <li>It is fast enough thanks to Java virtual machine just-in-time compiler.
250 </li>
251 <li>Easy to run on various hardware platforms and operating systems.
252 </li>
253 </ul>
254
255 <p>
256 3D rendering is done in software, 100% pure Java on CPU. At least for now.
257 Modern CPU cores count keeps growing and therefore rendering by CPU is not as
258 expensive as it used to be for the old single core systems.
259 </p>
260
261 <p>
262 CPU rendering performance is already good enough to implement usable 3D UI at
263 sufficient detail level, resolution and frame rate.
264 </p>
265
266 <p>
267 Pure Java also means easy portability and installation. No need to deal with
268 platform specific dependencies.
269 </p>
270
271 <p>
272 Also CPU rendering allows to easily test different rendering algorithms and
273 retains complete control of every rendered pixel.
274 </p>
275 </div>
276 </div>
277
278 <div id="outline-container-sec-2" class="outline-2">
279 <h2 id="sec-2"><span class="section-number-2">2</span> Software development</h2>
280 <div class="outline-text-2" id="text-2">
281 </div><div id="outline-container-sec-2-1" class="outline-3">
282 <h3 id="sec-2-1"><span class="section-number-3">2.1</span> <span class="label label-primary TODO">TODO</span> </h3>
283 <div class="outline-text-3" id="text-2-1">
284 <ul class="org-ul">
285 <li>partial (region) frame repaint
286 </li>
287 <li>antialiazing
288 </li>
289 </ul>
290 </div>
291 </div>
292 <div id="outline-container-sec-2-2" class="outline-3">
293 <h3 id="sec-2-2"><span class="section-number-3">2.2</span> Instructions to embed Sixth-3D in your project</h3>
294 <div class="outline-text-3" id="text-2-2">
295 <p>
296 Maven *pom.xml* file snippet:
297 </p>
298 <div class="org-src-container">
299
300 <pre class="src src-xml">&lt;<span style="color: #A6E22E;">dependencies</span>&gt;
301     ...
302     &lt;<span style="color: #A6E22E;">dependency</span>&gt;
303         &lt;<span style="color: #A6E22E;">groupId</span>&gt;eu.svjatoslav&lt;/<span style="color: #A6E22E;">groupId</span>&gt;
304         &lt;<span style="color: #A6E22E;">artifactId</span>&gt;sixth-3d&lt;/<span style="color: #A6E22E;">artifactId</span>&gt;
305         &lt;<span style="color: #A6E22E;">version</span>&gt;1.0&lt;/<span style="color: #A6E22E;">version</span>&gt;
306     &lt;/<span style="color: #A6E22E;">dependency</span>&gt;
307     ...
308 &lt;/<span style="color: #A6E22E;">dependencies</span>&gt;
309
310 &lt;<span style="color: #A6E22E;">repositories</span>&gt;
311     ...
312     &lt;<span style="color: #A6E22E;">repository</span>&gt;
313         &lt;<span style="color: #A6E22E;">id</span>&gt;svjatoslav.eu&lt;/<span style="color: #A6E22E;">id</span>&gt;
314         &lt;<span style="color: #A6E22E;">name</span>&gt;Svjatoslav repository&lt;/<span style="color: #A6E22E;">name</span>&gt;
315         &lt;<span style="color: #A6E22E;">url</span>&gt;http://www2.svjatoslav.eu/maven/&lt;/<span style="color: #A6E22E;">url</span>&gt;
316     &lt;/<span style="color: #A6E22E;">repository</span>&gt;
317     ...
318 &lt;/<span style="color: #A6E22E;">repositories</span>&gt;
319 </pre>
320 </div>
321
322 <p>
323 See <a href="codeGraph/index.html">generated code graph</a> using <a href="http://www2.svjatoslav.eu/gitbrowse/javainspect/doc/index.html">this tool</a>.
324 </p>
325 </div>
326 </div>
327 </div>
328 </div><div class="col-md-3"><nav id="table-of-contents">
329 <div id="text-table-of-contents" class="bs-docs-sidebar">
330 <ul class="nav">
331 <li><a href="#sec-1">1. Project description</a></li>
332 <li><a href="#sec-2">2. Software development</a>
333 <ul class="nav">
334 <li><a href="#sec-2-1">2.1. </a></li>
335 <li><a href="#sec-2-2">2.2. Instructions to embed Sixth-3D in your project</a></li>
336 </ul>
337 </li>
338 </ul>
339 </div>
340 </nav>
341 </div></div></div>
342 <footer id="postamble" class="">
343 <div><p class="author">Author: Svjatoslav Agejenko</p>
344 <p class="date">Created: 2017-03-06 Mon 10:18</p>
345 <p class="creator"><a href="http://www.gnu.org/software/emacs/">Emacs</a> 24.4.1 (<a href="http://orgmode.org">Org-mode</a> 8.2.10)</p>
346 </div>
347 </footer>
348 </body>
349 </html>