Sixth 3D engine demos
-Table of Contents
-+
Sixth 3D engine demos
+-
-
- This is a subproject of Sixth 3D -
- download latest snapshot +
- This is a subproject of Sixth 3D which in turn is a subproject of +Sixth. + +
- download latest snapshot +
- This program is free software; you can redistribute it and/or modify it under the terms of version 3 of the GNU Lesser General Public License or later as -published by the Free Software Foundation. +published by the Free Software Foundation. +
- Program author:
-
-
- Svjatoslav Agejenko -
- Homepage: http://svjatoslav.eu/ -
- Email: mailto://svjatoslav@svjatoslav.eu/ -
+ - Svjatoslav Agejenko + +
- Homepage: http://svjatoslav.eu + +
- Email: mailto://svjatoslav@svjatoslav.eu + +
1 Description
+1 Overview
+2 Navigating in space
+key | +result | +
---|---|
cursor keys | +move: left, right, forward, backward | +
mouse scroll wheel | +move: up, down | +
dragging with mouse | +look around | +
3 Samples
+3.1 Raytracing through voxels
++Test scene that is generated simultaneously using: +
+-
+
- conventional polygons
+
-
+
- for realtime navigation, and + +
+ - voxels
+
-
+
- for on-demand raytracing + +
+
+Instead of storing voxels in dumb [X * Y * Z] array, dynamically +partitioned octree is used to compress data. Press "r" key anywhere in +the scene to raytrace current view through compressed voxel +datastructure. +
+3.2 Conway's Game of Life
++The Game of Life, also known simply as Life, is a cellular automaton +devised by the British mathematician John Horton Conway in 1970. +
+ +-
+
- https://en.wikipedia.org/wiki/Conway's_Game_of_Life
+
-
+
- Game rules:
+
-
+
- 2 cell states: alive / dead + +
- Each cell sees 8 neighboring cells. + +
- If alive cell neighbors count is 2 or 3, then cell survives, +otherwise it dies. + +
- Dead cell becomes alive if neighbors count is exactly 3. + +
+
+ - Game rules:
+
+Current application projects 2D game grid/matrix onto three +dimensional space. Extra dimension (height) is used to visualize +history (previous iterations) using glowing dots suspended in space. +
+ ++Usage: +
+key | +result | +
---|---|
mouse click on the cell (cell) | +toggles cell state | +
<space> | +next iteration | +
ENTER | +next iteeration with the history | +
"c" | +clear the matrix | +
3.3 Text editors
++Initial test for creating user interfaces in 3D and: +
+-
+
- window focus handling + +
- picking objecs using mouse + +
- redirecting keyboard input to focused window + +
+Window focus acts like a stack. +
+ ++When window is clicked with the mouse, previously focused window (if +any) is pushed to the focus stack and new window receives focus. Red +frame appears around the window to indicate this.
++When ESC key is pressed, window focus is returned to previous window +(if any). +
+ ++When any window is focused, all keyboard input is redirected to that +window, including cursor keys. To be able to navigate around the world +again, window must be unfocused first using ESC key. +
+ + +-
+
- TODO:
+
-
+
- Improve focus handling:
+
-
+
- Perhaps add shortcut to navigate world without exiting entire +stack of focus. + +
- Possibility to retain and reuse recently focused elements. + +
- Store user location in the world and view direction with the +focused window. So that when returning focus to far away object, +user is redirected also to proper location in the world. + +
+ - Possibility to store recently visited locations in the world and +return to them. + +
+ - Improve focus handling:
+
3.4 Mathematical formulas
+3.5 Sinus heightmaps and sphere
+-Sample scenes rendered at interactive framerates by Sixth 3D engine. +Simple test scene. Easy to implement and looks nice.
Created: 2016-08-04 Thu 00:13
- +