| TerraNoise my sincere thanks go out to Jason Bevins and his 'libnoise' library, which is a portable open source, coherent noise generating library for C++ scrolling this page, the initial idea was born I am only going to give brief descriptions here of what you can do with this application as I feel the interface is highly intuitive and self explaining |
||||||||||
| creating a terrain: - drag a generator from the list and drop it on the canvas - drag/drop an exporter onto the canvas - connect the 2 components by "draging" a line from the generators yellow output to the exporters green input - click the "none"-button in exporter to select a output-name and format (export a terragen-terrain) - open the terrain in terragen and render ![]() if any value of the generator is changed, the terrain is saved for you automatically all you have to do is to play with the sliders and spinners for more complex terrains, you "only" have to create more complex networks creating textures works exact the same way: colorize the export with a color-component and save as tga ![]() ... but please keep in mind, that this application isn't meant to be a texture-generator to generate a normalmap, click the Normalmap-Checkbox and save as tga ![]() for better results with normalmaps generate a terrain with octaves set to ~6, then generate a normalmap with same settings, but octaves set to maximum the higher the octave-values the higher the details, don't confuse this with the quality-slider! below a sample of using a normalmap |
||||||||||
|
||||||||||
| General notes: all generators generate noise-values in 3D-space, with values below and above zero the resulting heightmap is viewed in black/white, where black is -1.0 and white is +1.0 values above +1.0 are also white - but not "whiter" :) the exported terrain will not be cut off here try to stay near this -1.0/1.0 borders to have more visual control what happens the 3 output-types (cylinder/sphere/plane) are not mapping-types, it's more like cutting out a 3D-surface from the generated 3d-noise to adjust where this "cut-out" should happen, use the transform-rollouts |
Export-Settings:
|
Preferences (CTRL+P):
|
||||||||
| Render controls: LED: shows render activity threads: number of rederthreads to use size: the output size used by exporters lock-button: locks with & height (square output) cylinder-button: renders output for cylindrical mapping sphere-button: renders output for spherical mapping, for generating whole planets plane-button: renders output for planar mapping, for heightfields T-button: for generating seamless terrain tiles or textures |
Shortcuts: CTRL+O - open CTRL+S - save CTRL+SHIFT+S - save as CTRL+N - new, clears the canvas without any warning CTRL+P - preferences |
"special" functionality: - use TAB-key to hide/show the component treeview - every mouse-drag action can be undone/canceled by pressing right mouse-button while left mouse-button is still down - while spinning or paning mouse leaves screen an appears on opposite side of screen - pan: drag with middle mouse button (canvas, generator-previews, curve-components, export) - zoom: hold down CTRL+ALT and drag with middle mouse button (generator-previews and curve-components) | Canvas: paning with middle mouse-button (undo with right mouse-button) if you cant find you components anymore, a doubleclick with middle mouse-button will bring them back into view |
Treeviews: they have no scollbars, "scroll" by draging with middle mouse-button, mouse-wheel |
Spinners: they work like the spinners in Max holding down CTRL while spinning - speed-up by 10 holding down ALT while spinning - slow-down by 10 right-click on arrows sets a default value undo with right mouse-button |
Components: component-type can be changed at any time by choosing from the dropdown-list all component-types share the component-params of a component all components have max-like rollouts they can be opened/closed (click on titles of rollouts, or context-menu) componnet adjusts its size, depending on rollout-states re-arrange rollouts by drag rollout-title re-arraging rollouts will change the way generators work, rendering is done "top-down" eq. translate then scale will give a different result when scaled first and the translated only some components can be resized (curve-modifiers, exporters and color-component) zoom/pan works for curve-components controlpoints of curve-components are deleted by DEL-key (the only question my testers asked) - create: drag/drop from treeview - move: by draging on titlebar, or CTRL+drag anywhere on a component - clone: SHIFT-drag existing component, or contextmenu of component - delete: by using contextmenu - minimize/restore: doubleclick on titlebar, or via contextmenu - enable/disable: click on the green "led" in top-left corner of a component a disabled component gets rendered, but it delivers no output, no output means a value of 0.0 when enabling a component, dependant components are re-rendered |
Output-Rollout: preview (of generators) can be paned and zoomed, all connected components should update in realtime |
Params-Rollout: contains component specific params when using a spinner only the components preview is rendered when releasing the spinner the final noise-map is rendered then dependant components if you're interested in what exactly all these parameters do, Jason Bevins libnoise has very good documentation included |
Transform-Rollouts (generators only): translate/rotate/scale and turbulence rollout-titles are colored different to indicate their effect is position-dependent rendering is done "top-down", eq. scale-rotate vs. rotate-scale will give different results |
Connecting components: all outputs have a yellow-ish color input colors depend on component-type components without inputs deliver a outputvalue of 0.0 connections can be created from output to input, or from input to output outputs can have more than one connection, inputs can only have one a cursor change indicates where it's possible to make a connection endless-loops are detected, such connections shouldn't be possible, a future version may support feedback-loops input-connections can be swaped by using ALT-key, also between different components components can be inserted between 2 connected components by using the contextmenu of the connection-line |
Future plans: 3D-preview of generated terrain (textured) set camera and sun positions and export a terragen world file flight-path editor for camera animation and export a terragen animation-script some more components..., craters, image and tg-terrain inputs, etc. masking to define where to apply modifications terrain erosions generating slope-dependant materials to use with Max hdri-sky generation ? all should stay 100% procedural . .. ... feel free to request anything you can think of in the forum |
|
||||||||