X-Git-Url: http://www2.svjatoslav.eu/gitweb/?a=blobdiff_plain;f=doc%2Findex.html;h=a80e8d05939d8479cf579b7831c0fc3638dc8755;hb=746baf8325af6a3a2d104af274c0632c82dbafa2;hp=afcce63e5ab8ccfed7e20d2dea6f289c6e54724e;hpb=581fa47296d1c583331b454eae59d5555d432b1a;p=sixth-3d.git diff --git a/doc/index.html b/doc/index.html index afcce63..a80e8d0 100644 --- a/doc/index.html +++ b/doc/index.html @@ -2,7 +2,7 @@ Sixth 3D - 3D engine - + @@ -220,7 +220,7 @@ published by the Free Software Foundation. -
  • other applications hosted at svjatoslav.eu +
  • other applications hosted at svjatoslav.eu
  • @@ -228,8 +228,9 @@ published by the Free Software Foundation.

    1 Project description

    -In software, pure Java realtime 3D rendering engine. With the final goal of -becoming a platform for buildng 3D user interfaces. +In-software, pure Java realtime 3D rendering engine. With the final +goal of becoming a platform for buildng 3D user interfaces and +interactive data visualization.

    +
    -

    2 Software development

    +

    2 Instructions to embed Sixth-3D in your project

    -
    -

    2.1 TODO

    -
    -
      -
    • partial (region) frame repaint -
    • -
    • antialiazing -
    • -
    -
    -
    -
    -

    2.2 Instructions to embed Sixth-3D in your project

    -

    Maven *pom.xml* file snippet:

    @@ -324,25 +341,98 @@ See generated code graph using +

    3 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. +
    • + +
    • Once partial rendering works, in would be easy to add multi-core +rendering support. So that each core renders it's own region of the +screen. +
    • + +
    • 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. +
      • + +
      • 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. + +
          +
        • Such information allows further optimizations: + +
            +
          • 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 unload unused textures from RAM. +
          • +
          +
        • +
        +
      • +
      +
    • +
    +