Merge branch 'master' of ssh://svjatoslav.eu:10006/home/n0/git/qbasicapps
[qbasicapps.git] / graphics / 3D / 3D Synthezier / doc / index.org
diff --git a/graphics/3D/3D Synthezier/doc/index.org b/graphics/3D/3D Synthezier/doc/index.org
new file mode 100644 (file)
index 0000000..587aaf6
--- /dev/null
@@ -0,0 +1,151 @@
+#+TITLE:  QBasicApps - collection of applications mostly written in MS QBasic for DOS environment
+
+-----
+- [[http://www2.svjatoslav.eu/gitweb/?p=qbasicapps.git;a=snapshot;h=HEAD;sf=tgz][download latest snapshot]]
+
+- This program is free software; you can redistribute it and/or modify
+  it under the terms of version 3 of the [[https://www.gnu.org/licenses/lgpl.html][GNU Lesser General Public
+  License]] or later as published by the Free Software Foundation.
+
+- Program author:
+  - Svjatoslav Agejenko
+  - Homepage: http://svjatoslav.eu
+  - Email: mailto://svjatoslav@svjatoslav.eu
+
+- [[http://www.svjatoslav.eu/programs.jsp][other applications hosted at svjatoslav.eu]]
+
+
+
+Parses scene definition language and creates 3D world based on
+it. Result will be in a [[https://en.wikipedia.org/wiki/Wavefront_.obj_file][wavefront obj file]], witch can be then
+visualized using external renderer.
+
+Basic concept of defining scene is:
+- Simple and primitive objects are created on point and polygon level.
+- More complex ones can be created my combinig already existing ones,
+  while applying various transformations on them.
+
+Objects with all its subobjects can be rotated, mirrored or resized
+omong any axis. Generator has built in cache for data input and output
+to minimize file access.
+
+* System requirements
+| software | preferred version |
+|----------+-------------------|
+| DOS      |              6.22 |
+| QBasic   |               4.5 |
+* Installation
++ Unpack ZIP file in any folder.
++ update include path inside  bin/3dparse.bas
+*** Directory layout
++ bin
+  + 3dparse.bas - 3D generator main executable
+  + city1.3d - city with square-like buildings
+  + city2.3d - city with hexangular buildings
+  + result.mtl - shared material library
+  + *.bat - quick launch scripts
+
++ include - 3D objects used to compose the scene
+* Scene description language
+(read examples...)
+
+
+: here
+defines new segment
+
+: p  x y z
+defines new point
+
+: f  p1 p2 p3 p4
+defines new polygon,  p4  may be unused
+
+
+: warn  <message>
+displays warning message, and wait for key
+
+: end
+terminates parser
+
+: mtl  material
+selects material
+
+: mtlrnd  material ...
+selects random material from list
+
+: obj  object xz45 xy20 x+3 y*2
+includes sub object, can be rotated moved or resized, across X Y Z. If
+object name begin vith ~ then it will be loaded from current
+directory.  if object name ends with ~ then object will be parsed
+directly from file, and not chached, to allow loading of greater than
+500 lines files.
+
+[[file:rotation.png]]
+
+
+: rnd  p^1^2^3 p^7^2^1
+select random command to execute, ^ will be converted to spaces.
+
+: # whatever text
+comment
+
+: out  file
+specify output file name, must be first command
+
+: set  variable  contents
+set variable contents, variable must be number, contents can be
+string. max variables is 100. first is 0.
+
+: anycommand %1 anything
+inserts variable 1 contents info line
+
+: cmp  flag string1 string2
+compares strings, and inserts TRUE to flag, if they are equal, else inserts FALSE. max 9 falgs, 0 first. Each subobject has its own flags.
+
+: ?flag anycommand
+executes command if flag is true.
+
+exapmle: ?3 obj car z*2 xy45
+
+: dum
+dummy function, does notheing
+
+* Usage
+Make sure you have QB binaries in your PATH.  Execute
+: bin/city1.bat
+or
+: bin/city2.bat
+to generate example cities. After parsing is finished, appropriate
+*.obj files will appear in the bin directory holding generated scene.
+Visualize scene with your favourite renderer.
+* Examples
+Download Blender files:
+| file                   | size   |
+|------------------------+--------|
+| [[file:rectangular city.blend][rectangular city.blend]] | 3.6 MB |
+| [[file:hexagonal city.blend][hexagonal city.blend]]   | 21 MB  |
+
+They were produced by importing generated [[https://en.wikipedia.org/wiki/Wavefront_.obj_file][wavefront obj files]] into
+[[https://www.blender.org/][Blender]].
+
+** Rectangular city
+[[file:rectangular city, 1.jpeg]]
+
+[[file:rectangular city, 2.jpeg]]
+
+[[file:rectangular city, 3.jpeg]]
+** Hexagonal city
+[[file:hexagonal city, 1.jpeg]]
+
+[[file:hexagonal city, 2.jpeg]]
+
+[[file:hexagonal city, 3.jpeg]]
+
+* (document settings) :noexport:
+** use dark style for TWBS-HTML exporter
+#+HTML_HEAD: <link href="https://bootswatch.com/4/darkly/bootstrap.min.css" rel="stylesheet">
+#+HTML_HEAD: <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
+#+HTML_HEAD: <script src="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.1/js/bootstrap.min.js"></script>"
+#+HTML_HEAD: <style type="text/css">
+#+HTML_HEAD:   footer {background-color: #111 !important;}
+#+HTML_HEAD:   pre {background-color: #111; color: #ccc;}
+#+HTML_HEAD: </style>