Difference between revisions of "Orulex"

From OrbiterWiki
Jump to navigation Jump to search
(Added category.)
 
(25 intermediate revisions by 7 users not shown)
Line 1: Line 1:
 
{{Addon|
 
{{Addon|
 
1=http://orbides.1gb.ru|
 
1=http://orbides.1gb.ru|
2=Artlav
+
2=Artyom "Artlav" Litvinovich
 
}}
 
}}
 
[[Image:Oru-080401-1.jpg|200px|thumb|right|Earth in Orulex 1.0]]
 
[[Image:Oru-080401-1.jpg|200px|thumb|right|Earth in Orulex 1.0]]
 +
[[Image:Oru-080401-2.jpg|200px|thumb|right|Brighton Beach Crater on the Moon in Orulex 1.0]]
 +
[[Image:Oru-080401-3.jpg|200px|thumb|right|Venus in Orulex 1.0]]
 +
[[Image:Oru-080401-7.jpg|200px|thumb|right|Nereid in Orulex 1.0]]
  
'''Orulex''' is a dynamic landscape generator add-on for Orbiter which allows you to add a global landable meshes to the planets.
+
'''Orulex''' is a dynamic landscape generator add-on for Orbiter which allows users to add a global landable mesh to planets.
 +
Simply said, it turns flat planets into mountainous planets.
  
==Basic features (0.7.1)==
+
Latest stable version is 1.0
* Run-time generation of planet-wide meshes based on given mathematical expression.
+
Latest development version is 1.2_080527
* Supported functions are perlin noise, ridged perlin, sine and cosine terrain, i/o curve, crater, auxiliarys.
 
* Global and local heightmaps
 
* Automatic carving of surface bases into craters.
 
* Partially compatible with Visosad collision detection system.
 
 
 
==Known bugs/issues (0.7.1)==
 
* Static textures all over the planet.
 
* Blinking of the texture at night and with clouds.
 
* No mesh visible in windowed mode on some GPUs.
 
  
 
==Basic features (1.0)==
 
==Basic features (1.0)==
Line 23: Line 18:
 
* Easily downloadable textures and heightmaps data for Earth, and other planets.
 
* Easily downloadable textures and heightmaps data for Earth, and other planets.
 
* Lv11 global Orbiter and Lv6-Lv22 local downloaded textures (LandSat, USGS) support.
 
* Lv11 global Orbiter and Lv6-Lv22 local downloaded textures (LandSat, USGS) support.
 
+
* Collision detection support possibilities and SDK interface
==Known bugs/issues (1.0)==
 
* Windows Vista random CTD.
 
* Dislocated patches when flying with multithreaded mode on.
 
* Textures getting colorfully random on some machines (probably Orbiter/DirectX bug on older systems).
 
  
 
==System Requirements:==
 
==System Requirements:==
Line 38: Line 29:
 
* 2-3Ghz CPU, ~1Gb of disk space, Fast Cheap internet (Lv9 heightmap is 466Mb download).
 
* 2-3Ghz CPU, ~1Gb of disk space, Fast Cheap internet (Lv9 heightmap is 466Mb download).
  
==Configuration==
+
==Performance Guidelines (1.0)==
'''Syntax for all config files:'''
+
* If you got a multi-core CPU, it is almost always better to keep multithread mode on.
* parameter = value
+
* If you got single-core CPU and Orulex feels slow on response or pre-computation takes longer than 10-15 seconds, try turning multithread mode off.
* Any amount of tabs or spaces around = sign.
+
* Reducing polygon count may help if you got an old video card.
* // means star of line-comment (all of the line after it is ignored)
+
* Reducing LevLimit may give a more stable-looking landscape, but dropping quality exponentially.
* { opens the large comment, } closes the large comment, everything between them is ignored.
+
* If you got FPS jerks on older/single-core PC's, look on texture timings.
* 1 denotes TRUE/ON, 0 denotes FALSE/OFF.
+
TexGen-H defines time slice allocated when there is a lot to generate, TexGen-L defines time slice allocated when there are only small changes, like when you are flying around. Reducing them make Orbiter more responsive and terrain less responsive. Timings are not defined in multithread mode.
* All other numbers are in metres (unless specified otherwise), in real number format (±1.23±45).
+
 
 +
==Known bugs/issues (1.0)==
 +
* Windows Vista random CTD.
 +
* Dislocated patches when flying with multithreaded mode on.
 +
* Textures getting colorfully random on some machines (probably Orbiter/DirectX bug on older systems).
 +
 
 +
==Data download Servers List==
 +
'''Earth'''
 +
* SRTM global Earth terrain
 +
* NASA derived global 30 meters per pixel satellite image mosaic
 +
* NASA derived global 15 meters per pixel satellite image mosaic, donated and processed by I-Cubed using equipment from Isilon Systems.
 +
* USGS Digital Ortho
 +
* USGS Urban Area Ortho
 +
* Pseudo color 15m Landsat mosaic provided by MDA Federal, scenes comprised from early 2000s
 +
 
 +
'''Moon'''
 +
* Clementine global Moon terrain
 +
* Clementine 40xx
 +
* Clementine 30xx
 +
 
 +
'''Mars'''
 +
* MOLA global Mars terrain
 +
* Mars THEMIS Color
 +
 
 +
'''Venus'''
 +
* Magellan Imaging Radar (Color)
 +
* Magellan Imaging Radar (Grey)
 +
 
 +
==World Studio==
 +
World Studio is both the Orulex terrain config system and the versatile planet editor. It was first released on April 1, 2008 same with Orulex 1.0.
 +
 
 +
==Generator ideas and function description==
 +
===Configuration===
 +
 
 +
Orulex system configuration are done by World Studio program and config files editing, with options ranging from terrain polygon count to shapes of the worlds.
 +
2 PDF's with full description of world studio and file configuration can be found in the release package.
 +
 
 +
 
 +
 
 +
 
 +
===Basic ideas===
  
 +
Function string in config\terrain\planet_name.cfg
  
'''Main configuration''' can be found in visosad\orulex.cfg
+
* Planet functions is written in postfix notation.
 +
* In postfix, the sign of operation goes after the operands, so a+b will be ab+.
 +
* It have a significant comprehensive advantage, since there is no ()'s.
 +
* a+((b+f)*c+d/e) will be written as a b f+c*d e/++.
 +
* Functions specified the same way - f(x,y,z+w) is x y z w + f.
  
All pathes are relative to the Orbiter directory.
+
===Terrain function===
  
Global features:
+
The terrain is represented by a 3 to 1 function with arguments being the position on the planet and output being the altitude at this position. The concept is similar to the plotting of 1D functions, like sine and cosine - the X axis represents the position, and Y axis represents the altitude:
  
* '''Enabled''' - Enable/disable the system
+
[[Image:Functions in Orulex 1.jpg|800px|thumb|center|Imagine the same thing in 4D, and that's how it is done in Orulex.]]
* '''Debug''' - Enable/disable the debug string
 
* '''Collisions''' - Collision support on/off
 
* '''Multithread''' - Multithreaded mode on/off
 
* '''Reflection''' - Reflection model
 
  
Default values for all planets (used if not specified in planet cfg):
+
===List of terrain functions===
* '''MaxPolyCount''' - Maximum polygon count in the terrain should be in 20000-100000 range.
 
* '''Altlimit''' - Upper limit for terrain drawing.
 
* '''Blendlimit''' - Lower limit of terrain vanishing (starts at Altlimit-Blendlimit)
 
* '''Levlimit''' - Terrain level limit
 
* '''GlobalHMapLimit''' - Global heightmap level limit
 
* '''PriT''' - Preprocess timeslice
 
* '''SecT''' - Split/Merge timeslice
 
* '''TriT''' - TexGen-L timeslice
 
* '''QuaT''' - TexGen-H timeslice
 
* '''Configs''' - Configuration path
 
* '''Textures''' - Textures path
 
* '''Heightmaps''' - Heightmap path
 
  
 +
====Perlin noise====
 +
[[Image:Terrain Functions.jpg|100px|thumb|left|Classic perlin noise ground function.]]
 +
;Syntax:<nowiki>perlin(xd,yd,zd,band,scale)</nowiki>
 +
;xd,yd,zd:Distortion values for x,y,and z coordinates respectively.
 +
;band: The amount of noise bands to be used - the more of them the more detailed terrain is, but slower.
 +
;scale: The horizontal scale of the thing. It is roughly equivalent to the size of the pattern shown in viewer on the actual planet, i.e. if scale is 10000 then the pattern will be spread across 10 kilometers.
  
Planet textures are loaded from Orbiter textures directories, with Orbiter's default prioritites.
+
Output is in -1..1 range.
  
Planets configuration can be found in config/terrain/planet_name.cfg
+
====Ridge noise====
 +
[[Image:Terrain Functions 2.jpg|100px|thumb|left|Ridged perlin noise ground function. ]]
  
 +
;Syntax:<nowiki>ridge(xd,yd,zd,band,scale)</nowiki>
  
'''In planet_name.cfg'''
+
;Syntax:<nowiki>perlin(xd,yd,zd,band,scale)</nowiki>
The MaxPolyCount, Altlimit, Blendlimit have the same meaning as in name config, but for this planet only.
+
;xd,yd,zd:Distortion values for x,y,and z coordinates respectively.
 +
;band: The amount of noise bands to be used - the more of them the more detailed terrain is, but slower.
 +
;scale: The horizontal scale of the thing. It is roughly equivalent to the size of the pattern shown in viewer on the actual planet, i.e. if scale is 10000 then the pattern will be spread across 10 kilometers.
  
Terrain settings:
+
Output is in -1..1 range.
* '''seed''' - The Number, that defines the planet.
 
* '''radius''' - Radius of mesh. Better be near radius of planet.
 
* '''function''' - Planet terrain function. Described below.
 
* '''sbcrater''' - Surface base craters ridge height
 
* '''microtexture''' - Microtexturing
 
* '''belowsphere''' - Below sphere terrain
 
* '''glhmaplevel''' - Max global heightmap level
 
  
 +
====Sea level====
 +
[[Image:Terrain Functions 3.jpg|100px|thumb|left|Sea level function with Perlin noise]]
  
'''Heightmaps:'''
+
;Syntax:<nowiki>sealevel(f,min)</nowiki>
Defined by adding following string to the planet_name.cfg
 
  
'''heightmap=Name|Lon of start|Lon of end|Lat of start|Lat of end|Scale|Function|Flag|Use'''
+
Same as <nowiki>min2(min,f)</nowiki>. Returns <math>f</math> if <math>f>=min</math> and <math>min</math> if <math>f<min</math>.
  
'''height8map=Name|Lon of start|Lon of end|Lat of start|Lat of end|Scale|Function|Flag|Use'''
+
Useful to truncate below the sphere part of the terrain function into flat valleys. Almost always should be removed if planet have ocean. If your planet have an ocean, make sure thet the underwater part of the function is not truncated!
  
'''heightmaphei=Name|Lon of start|Lon of end|Lat of start|Lat of end|Scale|Function|Flag|Use'''
+
====Sinusoidal terrain====
 +
[[Image:Terrain Functions 4.jpg|100px|thumb|left|Sinusoidal terrain]]
  
All fields have fixed widths - 40|10|10|10|10|8|1|1|1
+
;Syntax:
 +
<nowiki>sintf(xd,yd,zd,scale)</nowiki>
  
First is filename relative to Heightmaps directory, then longitude of start, longitude of end, latitude of start, latitude of end, vertical scale, function, flag, use flag
+
;xd,yd,zd:Distortion values for x,y,and z coordinates respectively.
* '''heightmap''' - Heightmap file is a grayscale BMP with black as 0 and white as vertical scale altitude.
+
;scale: The horizontal scale of the thing. It is roughly equivalent to the size of the pattern shown in viewer on the actual planet, i.e. if scale is 10000 then the pattern will be spread across 10 kilometers.
* '''height8map''' - Heightmap file is a grayscale BMP with altitude asn sint8.
 
* '''heightmaphei''' - Heightmap file is a Orulex HEI.
 
  
 +
Output is in -1..1 range.
  
'''Heightmap functions are:'''
+
====Cosinusoidal terrain====
* '''0''' - addition (height-map)
+
[[Image:Terrain Functions 5.jpg|100px|thumb|left|Cosinusoidal terrain]]
* '''1''' - multiplication (mask-map).
 
* '''2''' - replacation (plain height-map)
 
* '''3''' - replacation-truncation (plain height-map with ocean truncated)
 
  
 +
;Syntax:<nowiki>costf(xd,yd,zd,scale)</nowiki>
  
'''Colormaps:'''
+
;xd,yd,zd:Distortion values for x,y,and z coordinates respectively.
Defined by adding following string to the planet_name.cfg
+
;scale: The horizontal scale of the thing. It is roughly equivalent to the size of the pattern shown in viewer on the actual planet, i.e. if scale is 10000 then the pattern will be spread across 10 kilometers.
'''colormap=Name|Lon of start|Lon of end|Lat of start|Lat of end|Scale|Function'''
 
All fields have fixed widths - 40|10|10|10|10|8|1|1|1
 
First is filename relative to Textures or Textures2 directory, then longitude of start, longitude of end, latitude of start, latitude of end, vertical scale, function
 
Colormap file is either BMP or DDS.
 
  
 +
Output is in -1..1 range.
  
'''Flat spaces:'''
+
====Curve function====
Defined by adding following string to the planet_name.cfg
+
;Syntax:<nowiki>curv(n,f,x1,y1,x2,y2,...,x(n-1)/2,y(n-1)/2)</nowiki>
'''flat=Lon of start Lon of end Lat of start Lat of end'''
 
  
  
'''SURFTILES:'''
+
Input/Output curve for f by points of xi,yi, lagrange interpolated. It is a very powerful tool, allowing to map the inputs to according to specific curve to the output, changing gradients and similar things. The I/O curve is too big a topic for this manual.  
Just paste the
+
For example: Callisto
BEGIN_SURFTILELIST
 
END_SURFTILELIST
 
part of the Orbiter base cfg into Orulex planet cfg, '''removing empty lines'''.
 
See earth.cfg for example.
 
  
  
'''Predefined terrain functions for randomator:'''
+
====Other operators/functions====
* '''1 1 1 3 6000 perlin''' = dense selenic world
+
;ax,ay,az:world coordinates
* '''1 1 1 3 10000 perlin''' = selenic world
+
;+, -, --, *, /, sin, cos, tan, ln, pow, round, trunc, sqr, sqrt max2, max3, min2, min3: Arithmetics and basic math
* '''1 1 1 4 15000 perlin''' = sparse selenic world
+
;trim(f,min,max): trims f into <math>min<f<max</math>
* '''1 1 1 3 20000 1000 1 1 1 4 10000 ridge sin * + ridge''' = tightly-ridged world
 
* '''1 1 1 3 100000 10000 1 1 1 3 100000 ridge sin * + ridge''' = ridge-cratered world
 
* '''1 1 1 1 10000 ridge cos 0.6- 5*''' = channel-cracked world
 
* '''1.1 1.1 1.1 3 10000 ridge 1 0 1 1 1 0.4 0 0.2 0 0 1 0.2 1 1 1 3 100000 ridge trim 0.2-2* 9 curv trim*''' = ridged-valleys world
 
  
==Planet functions==
+
==See Also==
'''Function=... in visosad\orulex\planet_name.cfg'''
+
[[Meshland]]
  
Planet function, written in postfix notation. Better not to edit if you don't know what postfix notation is.
+
==Download Links==
 +
[http://orbides.1gb.ru/orulex.php Orulex's Homepage by Artlav]
  
'''Visosad\funcdrw program''' can display functions 3D graph. Requires OpenGL.
+
[http://www.orbiter-forum.com/showthread.php?t=2007 Development version Orbiter forum thread]
  
 +
[https://www.orbiter-forum.com/resources/orulex_land_gen-v1-2.2390/ Orulex_Land_Gen-v1.2] Orbiter Forum/Resources.
  
'''Operators:'''
+
[http://www.orbiter-forum.com/showthread.php?t=999 1.0 Orbiter forum thread]
* sbcrater(scl) - defines surface base craters with scl height.
 
* perlin(xd,yd,zd,band,scale) - perlin noise ground function
 
* ridge(xd,yd,zd,band,scale) - ridged perlin noise ground function
 
* curv(n,f,x1,y1,x2,y2,...,x(n-1)/2,y(n-1)/2) - Input/Output curve for f by points of xi,yi, lagrange interpolated.
 
* sealevel(level) -sphere level cutoff function
 
* +, -, --, *, /, sin, cos, max2, max3, min2, min3 - arithmetics.
 
* ax,ay,az - world coordinates.
 
* trim(f,min,max) - trims f into min<f<max.
 
  
'''Heightmaps'''
+
==Additional links==
  
heightmap=Testmapmoon        |000041.025|000041.225|-0033.8375|-0033.6375|00002000|0
+
'''Extensions'''
  
Heightmap definition. Can be several of them.
+
[http://orbides.1gb.ru/orbf/MLVS-WIP-080327.zip WIP MeshLand 2, Collision Detection support for Orulex, Unstable]
  
All fields have fixed widths - 20|10|10|10|10|8|1
+
[http://orbides.1gb.ru/orbf/OrulexSDK-allvers.zip Interface SDK (Delta-Glider samples included)]
  
First is filename relative to visosad\orulex\hmap, then longitude of start, longitude of end, latitude of start, latitude of end, vertical scale, function
+
'''Pre-composed heightmaps'''
  
 +
[http://orbides.1gb.ru/orbf/earth-hmap-lv8.zip Earth Lv8 heightmap (84Mb)]
  
Where function is:
+
[http://orbides.1gb.ru/orbf/mars-hmap-lv8.zip Mars Lv8 heightmap (82Mb)]
* 0 - addition (height-map)
 
* 1 - multiplication (mask-map).
 
* 2 - replacation (plain height-map)
 
  
Heightmap file is a grayscale BMP with black as 0 and white as vertical scale altitude. 8bit BMP's seems to give errors.
+
[http://orbides.1gb.ru/orbf/moon-hmap-lv8.zip Moon Lv8 heightmap (81Mb)]
  
 +
[http://orbides.1gb.ru/orbf/everest_lv11.zip Everest Lv11 textures and heightmaps (5.3Mb)]
  
'''Run-time configuration''', found on page 2 of Orulex 3D Surface MFD:
+
[http://orbides.1gb.ru/orbf/grand_canyon_lv13.zip Grand Canyon Lv13 textures and heightmaps (9Mb)]
* Enabled - Enable/disable the drawing of the mesh.
 
* Debug - Enable/disable the debug string
 
* Collisions - Collision support on/off
 
  
==Links==
+
'''Demonstaration video'''
[http://orbides.1gb.ru/orulex.php Orulex's Homepage by Artlav]
 
  
[http://www.orbithangar.com/searchid.php?ID=2686 Download at OrbiterHangar]
+
[http://orbides.1gb.ru/orbf/oru-flight-080321-x264.avi China flying in Gregburch's Swift1 (x264, 21 MB)]
  
[http://www.orbitersim.com/Forum/default.aspx?g=posts&t=15133 Orbiter forum thread]
+
[http://orbides.1gb.ru/orbf/oru-flight-080321-xvid.avi China flying in Gregburch's Swift1 (xVid, 31 MB)]
  
 +
[[Category: Articles]]
 
[[Category:Add-ons]]
 
[[Category:Add-ons]]
[[Category:Celestial body add-ons]]
 

Latest revision as of 11:49, 15 October 2022

Project home: http://orbides.1gb.ru
Author: Artyom "Artlav" Litvinovich
Current version: Unknown
Compatibility: Unknown


Earth in Orulex 1.0
Brighton Beach Crater on the Moon in Orulex 1.0
Venus in Orulex 1.0
Nereid in Orulex 1.0

Orulex is a dynamic landscape generator add-on for Orbiter which allows users to add a global landable mesh to planets. Simply said, it turns flat planets into mountainous planets.

Latest stable version is 1.0 Latest development version is 1.2_080527

Basic features (1.0)[edit]

  • Generates planet terrain in Orbiter on the fly, using real data or fractal functions.
  • Easily downloadable textures and heightmaps data for Earth, and other planets.
  • Lv11 global Orbiter and Lv6-Lv22 local downloaded textures (LandSat, USGS) support.
  • Collision detection support possibilities and SDK interface

System Requirements:[edit]

Out of the box:

  • 256Mb RAM + what Orbiter and OS takes.
  • 1.5+Ghz CPU, good video card (if it runs Orbiter Lv10+NASSP with good FPS it will run Orulex as if nothing is here).

Hi-quality:

  • 1Gb RAM + what Orbiter and OS takes + what local maps you will download.
  • 2-3Ghz CPU, ~1Gb of disk space, Fast Cheap internet (Lv9 heightmap is 466Mb download).

Performance Guidelines (1.0)[edit]

  • If you got a multi-core CPU, it is almost always better to keep multithread mode on.
  • If you got single-core CPU and Orulex feels slow on response or pre-computation takes longer than 10-15 seconds, try turning multithread mode off.
  • Reducing polygon count may help if you got an old video card.
  • Reducing LevLimit may give a more stable-looking landscape, but dropping quality exponentially.
  • If you got FPS jerks on older/single-core PC's, look on texture timings.

TexGen-H defines time slice allocated when there is a lot to generate, TexGen-L defines time slice allocated when there are only small changes, like when you are flying around. Reducing them make Orbiter more responsive and terrain less responsive. Timings are not defined in multithread mode.

Known bugs/issues (1.0)[edit]

  • Windows Vista random CTD.
  • Dislocated patches when flying with multithreaded mode on.
  • Textures getting colorfully random on some machines (probably Orbiter/DirectX bug on older systems).

Data download Servers List[edit]

Earth

  • SRTM global Earth terrain
  • NASA derived global 30 meters per pixel satellite image mosaic
  • NASA derived global 15 meters per pixel satellite image mosaic, donated and processed by I-Cubed using equipment from Isilon Systems.
  • USGS Digital Ortho
  • USGS Urban Area Ortho
  • Pseudo color 15m Landsat mosaic provided by MDA Federal, scenes comprised from early 2000s

Moon

  • Clementine global Moon terrain
  • Clementine 40xx
  • Clementine 30xx

Mars

  • MOLA global Mars terrain
  • Mars THEMIS Color

Venus

  • Magellan Imaging Radar (Color)
  • Magellan Imaging Radar (Grey)

World Studio[edit]

World Studio is both the Orulex terrain config system and the versatile planet editor. It was first released on April 1, 2008 same with Orulex 1.0.

Generator ideas and function description[edit]

Configuration[edit]

Orulex system configuration are done by World Studio program and config files editing, with options ranging from terrain polygon count to shapes of the worlds. 2 PDF's with full description of world studio and file configuration can be found in the release package.



Basic ideas[edit]

Function string in config\terrain\planet_name.cfg

  • Planet functions is written in postfix notation.
  • In postfix, the sign of operation goes after the operands, so a+b will be ab+.
  • It have a significant comprehensive advantage, since there is no ()'s.
  • a+((b+f)*c+d/e) will be written as a b f+c*d e/++.
  • Functions specified the same way - f(x,y,z+w) is x y z w + f.

Terrain function[edit]

The terrain is represented by a 3 to 1 function with arguments being the position on the planet and output being the altitude at this position. The concept is similar to the plotting of 1D functions, like sine and cosine - the X axis represents the position, and Y axis represents the altitude:

Imagine the same thing in 4D, and that's how it is done in Orulex.

List of terrain functions[edit]

Perlin noise[edit]

Classic perlin noise ground function.
Syntax
perlin(xd,yd,zd,band,scale)
xd,yd,zd
Distortion values for x,y,and z coordinates respectively.
band
The amount of noise bands to be used - the more of them the more detailed terrain is, but slower.
scale
The horizontal scale of the thing. It is roughly equivalent to the size of the pattern shown in viewer on the actual planet, i.e. if scale is 10000 then the pattern will be spread across 10 kilometers.

Output is in -1..1 range.

Ridge noise[edit]

Ridged perlin noise ground function.
Syntax
ridge(xd,yd,zd,band,scale)
Syntax
perlin(xd,yd,zd,band,scale)
xd,yd,zd
Distortion values for x,y,and z coordinates respectively.
band
The amount of noise bands to be used - the more of them the more detailed terrain is, but slower.
scale
The horizontal scale of the thing. It is roughly equivalent to the size of the pattern shown in viewer on the actual planet, i.e. if scale is 10000 then the pattern will be spread across 10 kilometers.

Output is in -1..1 range.

Sea level[edit]

Sea level function with Perlin noise
Syntax
sealevel(f,min)

Same as min2(min,f). Returns if and if .

Useful to truncate below the sphere part of the terrain function into flat valleys. Almost always should be removed if planet have ocean. If your planet have an ocean, make sure thet the underwater part of the function is not truncated!

Sinusoidal terrain[edit]

Sinusoidal terrain
Syntax

sintf(xd,yd,zd,scale)

xd,yd,zd
Distortion values for x,y,and z coordinates respectively.
scale
The horizontal scale of the thing. It is roughly equivalent to the size of the pattern shown in viewer on the actual planet, i.e. if scale is 10000 then the pattern will be spread across 10 kilometers.

Output is in -1..1 range.

Cosinusoidal terrain[edit]

Cosinusoidal terrain
Syntax
costf(xd,yd,zd,scale)
xd,yd,zd
Distortion values for x,y,and z coordinates respectively.
scale
The horizontal scale of the thing. It is roughly equivalent to the size of the pattern shown in viewer on the actual planet, i.e. if scale is 10000 then the pattern will be spread across 10 kilometers.

Output is in -1..1 range.

Curve function[edit]

Syntax
curv(n,f,x1,y1,x2,y2,...,x(n-1)/2,y(n-1)/2)


Input/Output curve for f by points of xi,yi, lagrange interpolated. It is a very powerful tool, allowing to map the inputs to according to specific curve to the output, changing gradients and similar things. The I/O curve is too big a topic for this manual. For example: Callisto


Other operators/functions[edit]

ax,ay,az
world coordinates
+, -, --, *, /, sin, cos, tan, ln, pow, round, trunc, sqr, sqrt max2, max3, min2, min3
Arithmetics and basic math
trim(f,min,max)
trims f into

See Also[edit]

Meshland

Download Links[edit]

Orulex's Homepage by Artlav

Development version Orbiter forum thread

Orulex_Land_Gen-v1.2 Orbiter Forum/Resources.

1.0 Orbiter forum thread

Additional links[edit]

Extensions

WIP MeshLand 2, Collision Detection support for Orulex, Unstable

Interface SDK (Delta-Glider samples included)

Pre-composed heightmaps

Earth Lv8 heightmap (84Mb)

Mars Lv8 heightmap (82Mb)

Moon Lv8 heightmap (81Mb)

Everest Lv11 textures and heightmaps (5.3Mb)

Grand Canyon Lv13 textures and heightmaps (9Mb)

Demonstaration video

China flying in Gregburch's Swift1 (x264, 21 MB)

China flying in Gregburch's Swift1 (xVid, 31 MB)