#+attr_latex: :width 1000px
[[file:overview.png]]
-Goal of this project is to show off capabilities and API usage of
+The goal of this project is to show off capabilities and API usage of
[[https://www3.svjatoslav.eu/projects/sixth-3d/][Sixth 3D]] engine.
All [[id:5f88b493-6ab3-4659-8280-803f75dbd5e0][example scenes in this repository]] render at interactive
It requires Java 21 or newer to run.
-To start demo application, use command:
+To start the demo application, use command:
: java -jar sixth-3d-demos.jar
* Navigating in space
|--------------------------------+--------------------------------------|
| mouse click on the cell (cell) | toggles cell state |
| <space> | next iteration |
-| ENTER | next iteeration with the history |
+| ENTER | next iteration with the history |
| "c" | clear the matrix |
** Text editors
Initial test for creating user interfaces in 3D and:
+ window focus handling
-+ picking objecs using mouse
++ picking objects using mouse
+ redirecting keyboard input to focused window
[[file:Screenshots/Mathematical formulas.png]]
+ TODO: instead of projecting 2D visualizations onto 3D space,
- visualize some formula using all 3 dimensions avaliable.
+ visualize some formula using all 3 dimensions available.
** Sine heightmap and sphere
:PROPERTIES:
Instead of storing voxels in dumb [X * Y * Z] array, dynamically
partitioned [[https://en.wikipedia.org/wiki/Octree][octree]] is used to compress data. Press "r" key anywhere in
the scene to raytrace current view through compressed voxel
-datastructure.
+data structure.
** Graphics Benchmark
:PROPERTIES:
An automated graphics benchmark that measures the engine's rendering
performance across different rendering modes.
-The benchmark creates a 16x16x16 grid of cubes (4096 total) and runs
-three tests sequentially, each for 30 seconds:
+[[file:Screenshots/Benchmark.png]]
-- *Solid Cubes* - Tests solid-color polygon rasterization
-- *Textured Cubes* - Tests textured polygon rendering with texture sampling
-- *Wireframe Cubes* - Tests line rendering performance
+The benchmark will cycle through different scenes that utilize different
+rendering primitives (textured polygons, billboards, solid polygons,
+etc.) to measure their relative performance.
The camera follows a deterministic orbital path around the scene,
ensuring reproducible results across runs.
-Example benchmark results:
+At the end, the benchmark will output a report that is easy to preserve for
+later comparisons.
+
+Example benchmark report:
#+begin_example
================================================================================
GRAPHICS BENCHMARK RESULTS