From: Svjatoslav Agejenko Date: Sat, 31 May 2025 04:20:16 +0000 (+0300) Subject: Better documentation for swapping 3D engine X-Git-Url: http://www2.svjatoslav.eu/gitweb/?a=commitdiff_plain;h=d1dcaf1a7d0d65662b3cf12d9f725e3cba62cdd5;p=qbasicapps.git Better documentation for swapping 3D engine --- diff --git a/3D GFX/Swapping 3D engine/doc/index.html b/3D GFX/Swapping 3D engine/doc/index.html old mode 100755 new mode 100644 index 6552282..08bf2d5 --- a/3D GFX/Swapping 3D engine/doc/index.html +++ b/3D GFX/Swapping 3D engine/doc/index.html @@ -1,29 +1,243 @@ - -swapping 3D engine - - - -

swapping 3D engine

-
-
-3D engine implements visibility distance, far away objects will be -swapped into hard disk to increase framerate and reduce memory usage. -Visibility distance adjusts automatically. - -This techniqe allows handling of a very complex world (for QBasic). -World is broked down to 100x100x100 units sized blocks, -and stored on disk into separate files. One file per -block. - -This is just an experiment to test out the idea, -world will be synthezied and constantly updated. -Engine allows user to freely fly around using mouse and keyboard. - -
-
-System requirements:
-	CPU 500 MHz or better
-	MS QBasic (preferably QB 4.5) in your path
-
- - \ No newline at end of file + + + + + + + +Swapping 3D engine + + + + + + +
+

Swapping 3D engine

+

+Idea is to implement 3D engine that can run world with unlimited +complexity. To overcome RAM limits and keep good framerate, world is +divided into cube shaped segments. Those segments are swapped out to +disk when they are too far away. When you move around the world, +segments are swapped in on-demand. +

+ +

+Engine allows user to freely fly around using mouse and keyboard. +

+ +

+Sexment size is 100x100x100 units. Every segment is stored in its own +file within the filesystem. +

+ + +
+

screenshot.png +

+
+ + +
+

screenshot, 2.png +

+
+
+
+

Created: 2025-05-31 la 07:17

+

Validate

+
+ + diff --git a/3D GFX/Swapping 3D engine/doc/index.org b/3D GFX/Swapping 3D engine/doc/index.org new file mode 100755 index 0000000..58010e5 --- /dev/null +++ b/3D GFX/Swapping 3D engine/doc/index.org @@ -0,0 +1,25 @@ + +#+TITLE: Swapping 3D engine +#+LANGUAGE: en +#+LATEX_HEADER: \usepackage[margin=1.0in]{geometry} +#+LATEX_HEADER: \usepackage{parskip} +#+LATEX_HEADER: \usepackage[none]{hyphenat} + +#+OPTIONS: H:20 num:20 +#+OPTIONS: author:nil + + +Idea is to implement 3D engine that can run world with unlimited +complexity. To overcome RAM limits and keep good framerate, world is +divided into cube shaped segments. Those segments are swapped out to +disk when they are too far away. When you move around the world, +segments are swapped in on-demand. + +Engine allows user to freely fly around using mouse and keyboard. + +Sexment size is 100x100x100 units. Every segment is stored in its own +file within the filesystem. + +[[file:screenshot.png]] + +[[file:screenshot, 2.png]] diff --git a/3D GFX/Swapping 3D engine/doc/screenshot, 2.png b/3D GFX/Swapping 3D engine/doc/screenshot, 2.png new file mode 100644 index 0000000..3eca5d1 Binary files /dev/null and b/3D GFX/Swapping 3D engine/doc/screenshot, 2.png differ diff --git a/3D GFX/Swapping 3D engine/doc/screenshot.png b/3D GFX/Swapping 3D engine/doc/screenshot.png new file mode 100755 index 0000000..d482abb Binary files /dev/null and b/3D GFX/Swapping 3D engine/doc/screenshot.png differ diff --git a/3D GFX/Swapping 3D engine/doc/sshot.png b/3D GFX/Swapping 3D engine/doc/sshot.png deleted file mode 100755 index d482abb..0000000 Binary files a/3D GFX/Swapping 3D engine/doc/sshot.png and /dev/null differ diff --git a/3D GFX/Swapping 3D engine/engine.bas b/3D GFX/Swapping 3D engine/engine.bas index ba5a457..7fbe1c9 100755 --- a/3D GFX/Swapping 3D engine/engine.bas +++ b/3D GFX/Swapping 3D engine/engine.bas @@ -356,6 +356,7 @@ END IF cln$ = getClustName(clx, cly, clz) +' PRINT "Cluster name:" + cln$ OPEN cln$ FOR APPEND AS #1 PRINT #1, x1; y1; z1; x2; y2; z2; c CLOSE #1 @@ -882,15 +883,7 @@ visMinZ = -worldSize visDist = worldSize -'INPUT "create new world (y/n)", a$ -'IF a$ = "y" THEN -' createWorld -'ELSE -' INPUT "clear existing world (y/n)", a$ -' IF a$ = "y" THEN clearWorld -'END IF - -clearWorld +createWorld SCREEN 7, , , 1