X-Git-Url: http://www2.svjatoslav.eu/gitweb/?a=blobdiff_plain;f=doc%2Findex.org;h=31765217f9ee05375c29ea87300efd1fce8066d5;hb=9fd4e404b77be4193d14e6cc799b3f42e24d4486;hp=b71817e45d6a7b6c4f3f832f5823455b01cccf22;hpb=916ecef8d7e369921e292553d89e47767ab7082b;p=sixth-3d.git
diff --git a/doc/index.org b/doc/index.org
index b71817e..3176521 100644
--- a/doc/index.org
+++ b/doc/index.org
@@ -1,14 +1,19 @@
#+TITLE: Sixth 3D - 3D engine
------
-- This is a subproject of [[https://www3.svjatoslav.eu/projects/sixth/][Sixth]]
-
-- Clone GIT repository using command:
- : git clone https://www2.svjatoslav.eu/git/sixth-3d.git
+* (document settings) :noexport:
+** use dark style for TWBS-HTML exporter
+#+HTML_HEAD:
+#+HTML_HEAD:
+#+HTML_HEAD:
+#+HTML_HEAD:
-- [[https://www2.svjatoslav.eu/gitweb/?p=sixth-3d.git;a=snapshot;h=HEAD;sf=tgz][Download latest snapshot in TAR GZ format]]
+* General
+- This is a subproject of parent project: [[https://www3.svjatoslav.eu/projects/sixth/][Sixth]].
-+ This program is free software: you can redistribute it and/or modify
+- This program is free software: you can redistribute it and/or modify
it under the terms of the [[https://www.gnu.org/licenses/lgpl.html][GNU Lesser General Public License]] as
published by the Free Software Foundation, either version 3 of the
License, or (at your option) any later version.
@@ -20,15 +25,13 @@
- [[https://www.svjatoslav.eu/projects/][Other software projects hosted at svjatoslav.eu]]
-* (document settings) :noexport:
-** use dark style for TWBS-HTML exporter
-#+HTML_HEAD:
-#+HTML_HEAD:
-#+HTML_HEAD: "
-#+HTML_HEAD:
+** Source code
+- [[https://www2.svjatoslav.eu/gitweb/?p=sixth-3d.git;a=snapshot;h=HEAD;sf=tgz][Download latest snapshot in TAR GZ format]]
+
+- [[https://www2.svjatoslav.eu/gitweb/?p=sixth-3d.git;a=summary][Browse Git repository online]]
+
+- Clone Git repository using command:
+ : git clone https://www2.svjatoslav.eu/git/sixth-3d.git
* Project description
+ See: [[https://www3.svjatoslav.eu/projects/sixth-3d-demos/][demos of current 3D engine capabilities]]
@@ -80,8 +83,9 @@ pixel.
- As a result it is easy to run on various hardware platforms and
operating systems.
-* TODO API documentation
-Documentation currently missing for the lack of time.
+* API documentation
+Note: due to a lack of time, there is still big room for improvement
+on documentation.
So far best resource is to download and explore source code for:
+ 3D engine ([[https://www3.svjatoslav.eu/projects/sixth-3d/graphs/][generated code graphs]] (generated using [[https://www3.svjatoslav.eu/projects/javainspect/][JavaInspect]]))
@@ -115,6 +119,9 @@ Maven *pom.xml* file snippet:
For API usage examples, see [[https://www3.svjatoslav.eu/projects/sixth-3d-demos/][demos]].
* TODO features to add
++ read this as example, and apply improvements/fixes where applicable:
+ http://blog.rogach.org/2015/08/how-to-create-your-own-simple-3d-render.html
+
+ Partial region/frame repaint: when only one small object changed on
the scene, it would be faster to re-render that specific area.
@@ -125,30 +132,29 @@ For API usage examples, see [[https://www3.svjatoslav.eu/projects/sixth-3d-demos
+ Antialiazing. Would improve text readability. If antialiazing is too
expensive for every frame, it could be used only for last frame
before animations become still and waiting for user input starts.
+** Render only visible polygons
++ This would significantly reduce RAM <-> CPU traffic.
-+ Render only visible polygons.
- + This would significantly reduce RAM <-> CPU traffic.
-
- + General algorithm description:
- + For each horizontal scanline:
- + sort polygon edges from left to right
- + while iterating and drawing pixels over screen X axis (left to
- right) track next appearing/disappearing polygons.
- + For each polygon edge update Z sorted active polygons list.
- + Only draw pixel from the top-most polygon.
- + Only if polygon area is transparent/half-transparent add
- colors from the polygons below.
++ General algorithm description:
+ + For each horizontal scanline:
+ + sort polygon edges from left to right
+ + while iterating and drawing pixels over screen X axis (left to
+ right) track next appearing/disappearing polygons.
+ + For each polygon edge update Z sorted active polygons list.
+ + Only draw pixel from the top-most polygon.
+ + Only if polygon area is transparent/half-transparent add
+ colors from the polygons below.
- + As a bonus, this would allow to track which polygons are really
- visible in the final scene for each frame.
++ As a bonus, this would allow to track which polygons are really
+ visible in the final scene for each frame.
- + Such information allows further optimizations:
+ + Such information allows further optimizations:
- + Dynamic geometry simplification:
- + Dynamically detect and replace invisible objects from the
- scene with simplified bounding box.
+ + Dynamic geometry simplification:
+ + Dynamically detect and replace invisible objects from the
+ scene with simplified bounding box.
- + Dynamically replace boudnig box with actual object once it
- becomes visible.
+ + Dynamically replace boudnig box with actual object once it
+ becomes visible.
- + Dynamically unload unused textures from RAM.
+ + Dynamically unload unused textures from RAM.