Orulex

From OrbiterWiki
Jump to: navigation, search

Project home: http://orbides.1gb.ru
Author: Artyom "Artlav" Litvinovich

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 you to add a global landable mesh to the planets. Simply said, it turns flat planets into mountainous planets.

Latest stable version is 1.0 Latest development version is 1.2_080527

Contents

[edit] Basic features (1.0)

[edit] System Requirements:

Out of the box:

Hi-quality:

[edit] Performance Guidelines (1.0)

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.

[edit] Known bugs/issues (1.0)

[edit] Data download Servers List

Earth

Moon

Mars

Venus

[edit] 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.

[edit] Generator ideas and function description

[edit] 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.



[edit] Basic ideas

Function string in config\terrain\planet_name.cfg

[edit] Terrain function

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.

[edit] List of terrain functions

[edit] Perlin noise

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.

[edit] Ridge noise

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.

[edit] Sea level

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

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

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!

[edit] Sinusoidal terrain

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.

[edit] Cosinusoidal terrain

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.

[edit] Curve function

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


[edit] Other operators/functions

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 min < f < max

[edit] See Also

Meshland

[edit] Download Links

Orulex's Homepage by Artlav

Development version Orbiter forum thread

Download 1.0 at OrbiterHangar

1.0 Orbiter forum thread

[edit] Additional links

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)

Personal tools
Namespaces
Variants
Actions
Navigation
External
Toolbox
Google AdSense