Mythruna
March 28, 2024, 03:49:18 PM *
Welcome, Guest. Please login or register.
Did you miss your activation email?

Login with username, password and session length
News: Welcome to the new forums. See "Announcements" for a note for new users.
 
   Home   Help Search Login Register  
Pages: [1]
  Print  
Author Topic: Simarboreal-Editor Documentation  (Read 8566 times)
Rayblon
Donators
Hero Member
***
Posts: 1861


Hmmm...


View Profile
« on: July 16, 2016, 09:46:40 PM »

The Simarboreal-editor executables for windows, linux, and mac can be found here.



This documentation is intended to allow any user to effectively use the Simarboreal editor, so all details of the software's user interface that can be discussed, will be discussed(While the target audience is developers, a fair few users use this tool for recreation or just to check it out). As such, some of the introductory discussion may be unnecessary for advanced users, and much of the descriptions will be described in plain english. The functions will be discussed in units split into chapters, which can be quickly accessed using the index titles and your browser's search function.

INDEX
1. Installation, setup, and basic controls
     1.1 Running Simarboreal-editor
     1.2 Launcher Interface
     1.3 Keybinds and Controls
     1.4 Saving, Loading, Exporting, and Tree Stats
2. Visualization Options
3. Tree Parameters
     3.1 Tree
     3.2 Branches and Roots
     3.3 Leaves
     3.4 LOD
     3.5 Grid
4. Deep Alpha
    4.1 Diagnostics


1. Installation, setup, and basic controls

This unit will discuss launching and configuration of the editor, as well as basic keyboard and navigation controls. If you're familiar with the isosurface demo's controls and setup, then this chapter will likely not be needed.

1.1 Installation

he executable files for Mac, linux, and windows can be found in jar files found in the release folder. Extract the contents of the jar file corresponding with your operating system.

1.2 Launcher Interface

The launcher is a simple interface with six display options, the start button, and a button that closes the launcher. The six display options are as follows:

I. Resolution Box: This dropdown box has settings like "320 x 240" and "640 x 480" and higher. If in windowed mode, the resolution will also determine the size of the editor's window, but will stretch to fit in fullscreen mode. This setting determines the size of the images rendered in the editor, in pixels.

II. Color Depth: There are two options, 24 bpp or 16 bpp. Bpp stands for "Bits Per Pixel". Essentially, more bits per pixel means more unique colors, at the cost of additional memory. Depending on your display and display settings, this setting may have no visible effect and may be best set to 16 bpp to conserve memory.

III. Refresh Rate: Depending on your display, you may have only one option (typically 60 hz), or additional, higher settings like 75 hz or 120 hz. Hz stands for hertz, or your refresh rate. This setting is only available in fullscreen mode. This setting has no effect on performance, but even if you get, say, 500 fps, you will always see at most the fps you set here.

IV. Anti-Aliasing: Improves the appearance of far-away objects. Anti-Aliasing works by rendering each frame at a higher resolution than normal and shrinking it down. Depending on the size of your tree(s), this may have no effect.

V. Fullscreen Checkbox: Checked = Fullscreen, Unchecked = Windowed. Checking this checkbox will reset your resolution to an extremely high setting and may change your color depth setting, so be sure to adjust your resolution after toggling this setting.

VI. Vsync Checkbox: Vsync fixes the brief stutters and tearing that occasionally occurs when turning quickly in-game. It does so by "reducing" the editor's fps to that of your display's refresh rate. This is a recommended setting.


1.3 Keybinds and Controls

This is a list of Simarboreal-editor's keybinds and their functions.

ESC - Freaking murders the instance.
SPACE - Toggles between editing and viewing mode. Editing mode frees your cursor up to use the UI, while viewing mode removes your cursor from the screen and allows you to move your camera around.
Mouse - Look around in viewing mode.
←/↑/→/↓ - Rotates the camera in its respective direction.
W/A/S/D - Allows for movement forward, left, backward, and right, respectively.
Q/Z - Allows for upward and downward movement of the camera, respectively.
F3 - Toggles the editing UI, coordinates, and data usage interface.
F5 - Toggles the rendering data in the bottom left.
Print Screen - Instantly saves a png of your screen, with an alpha channel. If the skybox is disabled, the sky will be transparent in the image.


1.4 Saving, Loading, Exporting, and Tree Stats

You can save your tree's parameters for long editing projects or to return to an ideal set of parameters by clicking the "Save parms" button. This will save your tree configuration, but that type of file cannot be used as a mesh. You can use the "load parms" button to open any Tree Parameters file, including parameters from other people, naturally. If you discover a very nice set of tree parameters, be sure to save and share it. ;)

The "Export j3o" button exports the tree as a j3o file. Due to how the leaves are rendered, trees can only be exported as j3o files until a suitable alternative is developed. There are currently no immediate plans to support exporting to other formats.

The "Save Tree Atlas" button produces two png files . They depict the tree in four iterations; one from each of the four cardinal directions. The first one is a color map, while the second one, suffixed with "-normals" is comprised of normal maps for the images.

Tree Stats, as in the triangle and vertice count can be found directly above the save, load, and export buttons. "Verts" represents the vertice count and "tris" represents the triangle count. Those are the only numbers you should be concerned about when considering whether you have room to increase the quality of the tree or not. The stats in the bottom right corner cover everything in the instance and will greatly inflate your number if you rely on them.


2. Visualization Options

The visualization settings are present in the topmost tab in the window. By clicking the "visualization Options" bar, you can minimize these options. These are options that don't affect the tree itself, but allows you to change its surroundings and how it's rendered in the editor.

Time of day (*) - Changes the position of the sun, changing the shadows and lighting accordingly. At 1 or 0, the most extreme values, the sun is right on the horizon, lighting is at its darkest, and shadows stretch on forever.
Shadow Strength (*) - The opacity of shadows. For drop shadows, it makes the gradient more visible as the value increases, while for normal shadows it renders the shadowed areas as pitch black at a volume of 1.
Grass - Toggles a grass texture on the neon green floor.
Sky - Toggles a light blue skybox. The sky is a static color that is unaffected by time of day. Screenshots taken using the Print Screen function will render the sky as an alpha channel when it's disabled.
Avatars - Toggles two grey character models for scaling purposes.
Wireframe - Toggles yellow lines on the edges of all triangles on the tree.
Test Pattern -Toggles a gridlike pattern on the tree instead of the bark texture.
Bump-map - Toggles rendering of the bumpmap in the trees bark texture.
Wind - Toggles a swaying animation for the tree, which is affected by a number of other settings.
Shadows - Casts single-opacity shadows from the sun to the tree.
Drop Shadows - Draws a radial black gradient under the tree. The size of the shadow as well as its center will adjust itself depending on the size of the tree and the center between all of the branches. The drop shadow will get smaller the higher the branches are, and is most opaque at a precise distance. If all of the branches are too near the ground, then the drop shadow may appear unusually faint or not appear at all.


3. Tree Parameters

These are the effectual items in the editor that create the changes the to mesh of the tree itself. They are separated into five tabs that focus on specific parts or elements of the tree.


3.1 Tree

Settings spanning different sections of the tree that wouldn't fit neatly into other sections.

Seed - Regenerates the tree using the chosen number as the seed. Randomly changes the appearance of the tree within the constraints of the other parameters.
Radius (m) - Scales the radius of all parts of the tree, in meters. The visible length of all branches are preserved, so the tree will grow up and outwards as the radius increases.
Height (m) - Adjusts trunk height, in meters, somewhat scaling branch length with it.
Root Height (m) - Adjusts the length of root segments. A larger root height value denotes a larger root system.
Y Offset (m) - Offsets the tree from the center point vertically, in meters.
Texture U Repeat - Adjusts the texture tile scaling to have more or less iterations. Lower values mean larger looking textures.
Texture V scale - Adjusts the vertical scaling of the tree texture. Smaller numbers will appear to stretch the texture vertically, while larger numbers will compress it.
Wind Flex Height (m): Adjusts a soft minimum height for wind flexing in the entire tree. Changes here are only visible with wind enabled.
Trunk Flex: Adjusts the amount of bending seen in the trunk due to wind flex. A value of zero will cause the trunk to no longer flex.  Changes here are only visible with wind enabled.
Branch Flex:Adjusts the amount of bending seen in branches due to wind flex. A value of 0 will cause branches to no longer flex. Changes here are only visible with wind enabled.


3.2 Branches and Roots

The settings affecting tree structure below and above the trunk. These settings are split into 5 levels, ranging from level 0 to level 4. Level 0 affects the trunk and is used in conjunction with the inherit function (discussed later), while the proceeding four levels determine the traits of each level of the branches/roots, with the first level being the first branches splitting from the trunk, the second being the ones branching from those branches, and so on. The terms branches and roots are used interchangeably here, as they share the exact same parameters which function very similarly.

The checkboxes on the level 1-4 tabs toggle each branch level. Unchecking a branch level will remove all the subsequent levels as well (Disabling level 1 branches will disable level 2, 3, and 4 branches as well).

The following details this section's named parameters:

Inherit - Causes the level to inherit the settings from level 0. If inherit is checked for a level, any changes made to that level's parameters will not be visible until inherit is unchecked.
Radial segments - Determines the number of surfaces running along the length of the branches. The lowest setting makes the branches triangular, with the highest setting making them appear round. This has a significant effect on polygon count.
Length Segments - Determines the number of individual segments in a level. The minimum setting will make each level completely straight. Has a significant effect on polygon count.
Segment Variation (*) - Determines the variation in the contortion of the length segments. Higher values will make the length segments more variable in their contortions, while a lower setting will make the contortions less dramatic. The lowest setting creates a smooth curve along affected branch levels.
Taper (*) - Adjusts the tapering for a level. Low values will cause the level to taper more, while a taper of 1 will cause there to be no tapering at all.
Twist (rads) - Twists the branches/roots of the level, in radians. Twisting in one level is most visible in the subsequent levels, as it completely rotates them.
Gravity (*) - Adjusts the level's tendency to contort downward. A negative value will pull the level upward, while a positive value will pull the level downward. This setting does not alter the length of the level.
Side Joints - Determines the number of branching points in the level's nodes (Where it splits into the next level's branches/roots). For instance, a branch or root with a side joints setting of 5 will have five limbs branch from it at the next level. Naturally, this has no effect on the lowest level branches.
Angle (rads) - Adjusts the rotation of that level's node, in radians. This parameter will rotate subsequent levels.
Inclination (rads) - Adjusts the angle of a level's branches, relative to the parent node they're attached to. Increasing inclination causes branches to be more aligned with their node's orientation, while decreasing it causes their orientation to be increasingly dissimilar, until all of a level's branches form right angles with their nodes.
Radius Scale (*) - Scales the level's radius from the branches' node. This affects the radius of subsequent levels. At max, the radius of a level is 2x that of its parent nodes.
Length Scale (*) - Scales the level's length from the branches' node. This affects the length of subsequent levels. Depending on the height of the tree, maxxing this setting will make your tree pierce the heavens.
Tip Joint - toggles a joint that grows upwards atop the tip of the trunk. Used to create tall trees.
Tip rotation (rads) - Rotates the joints on each side joint of a tip joint. This doesn't affect side joints on normal branches or roots.


3.3 Leaves

The parameters relating to the leaf billboards that can be applied to the tips of branches. This is, naturally, the section with the most customization options and has many features requiring extensive technical knowledge.

Enabled - Turns on the leaves. Shocking, I know.
Size (m) - Adjusts the size of the leaf billboards, in meters. That's all there is to it.


3.4 LOD

Level Of Detail settings. It is separated into four identical subtabs, the "Highest" tab, and tabs labelled Level 1-3. The subtabs contain settings for the mesh that come into effect at certain distances from the tree; changing detail depending on the level range the camera is in. Each sub tab has two numbers at the bottom, the number of LOD verts and a triangles statistic separate from the master triangles statistic.

Distance (m) - Default value is 20. This parameter creates a non-inclusive ring around the tree where one will be able to see the tree in full detail. Slight adjustments to this setting are advised for larger trees, if derendering branches becomes a problem.
Branch Depth - Allows you to choose how many branch levels are rendered, where 1 will only display level 0 (aka the trunk) and 5 will display up to level 4 branches.
Root Depth - Allows you to choose how many root levels are rendered, where 1 will only display level 0 (aka the trunk) and 5 will display up to level 4 root joints.
Max Radial Segments - Sets an upper limit to how many radial polygons will be rendered. This applies to the entire tree rather than affecting branches and roots separately. Setting a maximum of three will make all branches appear triangular, while setting a max of 24 will leave the appearance unchanged from its current settings.
Mesh Type - This parameter has three options: Normal, Flat Poly, and Imposter. The normal type uses normal triangles and possesses the highest detail and graphics cost. The flat poly mesh type turns the branches into quads (think four sided branches) that rotate themselves to always face the camera. The imposter mesh type uses a copy of the tree's Tree Atlas to display a billboard of it that changes depending on the angle.


3.5 Grid

Settings involved with rendeing repeating or similar iterations of the same tree. These do not change the tree. Trees in the grid will take on different heights if the tree's Y offset is adjusted.

Width - Adjusts he number of tree columns, adding trees to the east.
Height - Adjusts the number of tree rows, adding trees to the north..
Spacing (m) - Adjusts the distance between trees in the grid.
Seed Range - Adjusts the number of seeds usable in the grid's trees. Larger seed range = more unique trees in the grid.
Rotation Variation (*) - Adjusts the maximum rotation for other trees in the grid
Lean Variation - Adjusts how far trees lean in a direction within a grid.
Scale Variation - Adjusts the range of possible scales for each tree.
Position variation - Adjusts the positions of trees in the grid so that they don't form a perfect grid.


4. Deep Alpha

This chapter is dedicated to diagnostic and technical features of the tool. Currently, this chapter is only for describing the diagnostics interface.

4.1 Diagnostics

In the top right are your coordinates, with your Memory and Data Memory usage below them. East is toward the positive X direction, west in the negative x direction, north is in thepositive Z direction, and south is in the negative z direction.

In the bottom left is a menu that can be disabled using the F5 keybind. Most notably, it displays your fps, but it also displays lots of basic rendering data. It should be noted for basic users that, although the menu in the bottom left lists "vertices" and "tris", those numbers do not represent the counts in the meshes themselves.
« Last Edit: July 23, 2016, 10:36:30 AM by Rayblon » Logged

Rayblon
Donators
Hero Member
***
Posts: 1861


Hmmm...


View Profile
« Reply #1 on: July 16, 2016, 09:59:23 PM »

I'm posting this extremely early into the documentation because I'm slightly more clueless about this than I was about Mythruna, to put things lightly. That, and to document additions and such. Given that this documentation may need to be tranferred to a more official resource than a forum post, if you have any nitpicks at all, I can make adjustments accordingly.

For the launcher settings, I took a page from the Mythruna handbook since they're identical save for some naming conventions. It's a little less than concise, so if it needs to be scaled back, give me the word.



So, first round of questions...

What can you tell me about the files in the github release? What significance do the folders and files outside of the release folder have, if any? Would a user have any reason to interact with files outside of the release folder?

Are there any keybinds that I missed?

I assumed that the image sets from the tree atlas are from the cardinal directions. Is that accurate?

Is the test pattern used to analyze how the texture is deformed by the tree? If not, how is it used?


I'm gonna take a break from documenting now. I'll get back to it later this evening.
« Last Edit: July 17, 2016, 01:15:54 PM by Rayblon » Logged

pspeed
Administrator
Hero Member
*****
Posts: 5612



View Profile
« Reply #2 on: July 17, 2016, 05:26:16 PM »

I'm posting this extremely early into the documentation because I'm slightly more clueless about this than I was about Mythruna, to put things lightly. That, and to document additions and such. Given that this documentation may need to be tranferred to a more official resource than a forum post, if you have any nitpicks at all, I can make adjustments accordingly.

For the launcher settings, I took a page from the Mythruna handbook since they're identical save for some naming conventions. It's a little less than concise, so if it needs to be scaled back, give me the word.

Seems fine... minus the few cases it mentions Mythruna directly.  The real target audience for the tool will kind of already know these settings but I understand that you are trying to cast a wider net.

So, first round of questions...

What can you tell me about the files in the github release? What significance do the folders and files outside of the release folder have, if any? Would a user have any reason to interact with files outside of the release folder?

If the "user" is a developer then they might.  The stuff outside of the release folder is the code for the tool.  For example, a developer can check it out and build it themselves, fix bugs they find, or just tweak it to their own needs.  Whatever.  Open Source for the win.

Are there any keybinds that I missed?

I can't think of any.  Ptrt-screen will save a PNG I think.

I assumed that the image sets from the tree atlas are from the cardinal directions. Is that accurate?

I think so.  It renders four of them.  They are either from the 45 degrees off cardinal, or plain cardinal.  Since they line up with the hi-res LOD then you should be able to orbit around the tree and see if they switch on the axis or at 45 degrees.  (If they switch on the axis then I took pictures from 45 degree angles.  If they switch on the 45 then I took cardinal... pretty sure it's that, though.)

Is the test pattern used to analyze how the texture is deformed by the tree? If not, how is it used?

Yes, that's right.  You can see how the texture is actually mapped around the mesh.  Useful for me when developing.  Useful for anyone else who wants to enhance the mesh extrusion code.  Useful for developers who might want to know exactly how the mesh is constructed for other reasons of their own.

It's a tool that was designed primarily for software developers... so it provides some things that might be useful there.
Logged
Rayblon
Donators
Hero Member
***
Posts: 1861


Hmmm...


View Profile
« Reply #3 on: July 19, 2016, 08:19:25 AM »

Sorry for not getting back to this very quickly. I've been getting dry eye alot over the past week or so and it makes it painful to do alot of reading and such. ;c
Logged

Rayblon
Donators
Hero Member
***
Posts: 1861


Hmmm...


View Profile
« Reply #4 on: July 20, 2016, 08:52:12 AM »

My eyes stopped hating me today so I'll pick up the documentation again now. I'll talk about the updates on this post and add my ?'s to here as per usual.

Fixed the Mythruna references in the launcher settings documentation, added a print screen entry to the keybinds.

One thing I noticed about the print screen function is that without the skybox enabled, the sky is rendered as an alpha channel. It's a nice touch... even if it does that by default due to the black sky not actually being there.

I noticed in the "Tree" tab, a number of settings have a "(m)" Is that just a designation for meters?

The parameter "Texture U Repeat"... what does the U stand for?


I didn't make as much progress tonight as I'd hoped, but progress is progress. Cheesy
« Last Edit: July 20, 2016, 10:16:40 PM by Rayblon » Logged

pspeed
Administrator
Hero Member
*****
Posts: 5612



View Profile
« Reply #5 on: July 21, 2016, 12:45:08 PM »

My eyes stopped hating me today so I'll pick up the documentation again now. I'll talk about the updates on this post and add my ?'s to here as per usual.

Fixed the Mythruna references in the launcher settings documentation, added a print screen entry to the keybinds.

One thing I noticed about the print screen function is that without the skybox enabled, the sky is rendered as an alpha channel. It's a nice touch... even if it does that by default due to the black sky not actually being there.

I noticed in the "Tree" tab, a number of settings have a "(m)" Is that just a designation for meters?

The parameter "Texture U Repeat"... what does the U stand for?


I didn't make as much progress tonight as I'd hoped, but progress is progress. Cheesy

Yes, (m) is for meters.

Texture U repeat controls how many times the texture will repeat on the U coordinate.  (As in "U,V texture coordinates".)
Logged
Rayblon
Donators
Hero Member
***
Posts: 1861


Hmmm...


View Profile
« Reply #6 on: July 21, 2016, 10:58:38 PM »

Thanks for the timely response, as usual. Smiley

Time for today's update and ?'s post. I've created material for every part of the editor at this point


Now for questions.


Branches/roots
So, first off, I want to ask: Is it a safe bet to just merge the branches and roots sections? The tabs seem identical, aside from the presets.

Next is another suffix question. I saw the parameters "Segment Variation (*)" and "Taper (*)". I see that suffix around in alot of places. What does it represent?

I'm assuming "Twist (rads)" means in radians, but confirmation never hurts.

"Tip joint" is something I want to clarify on as well. This parameter converts a side joint from each node into a tip joint to serve as a continuation of the main branch, correct?

"Tip rotation (rads)" is a function that exclusively rotates joints branching from a tip joint, is that accurate?

LOD
LOD is something I'm gonna need lots of help with. It seems very... finicky and generally hard to understand sometimes.  I messed with some of those settings and I think an unexperienced user that isn't paying attention would wreck their tree editing experience here. The abbreviation stands for Limit Of Detection, though, correct? Does this affect the tree mesh like the other settings or no? I ask because it doesn't seem to affect the triangle count

The Distance parameter seems to create a ring around the tree where it will be displayed in full detail, where getting to close to the tree will cause it to enter low poly mode if you set it high enough. That is, at least, how it behaves in the "highest" subtab. What do each of the subtabs apply to?

I understand what the mesh type parameters do to some extent, but I'm not sure how to describe the features of normal and flat poly meshes.  Do normal meshes simply use triangles, while flat poly meshes always pair their triangles into quadrilaterals?
Logged

pspeed
Administrator
Hero Member
*****
Posts: 5612



View Profile
« Reply #7 on: July 21, 2016, 11:32:58 PM »

Thanks for the timely response, as usual. Smiley

Time for today's update and ?'s post. I've created material for every part of the editor at this point


Now for questions.


Branches/roots
So, first off, I want to ask: Is it a safe bet to just merge the branches and roots sections? The tabs seem identical, aside from the presets.

I guess the settings are similar but one goes down and the other up.  Often times you want different root settings than branch settings which is why they are separate.

Next is another suffix question. I saw the parameters "Segment Variation (*)" and "Taper (*)". I see that suffix around in a lot of places. What does it represent?

I don't remember exactly.  More examples of where I used it might help but I suspect it's a "non-unit" or maybe indicating a multiplier.

I'm assuming "Twist (rads)" means in radians, but confirmation never hurts.

Yes, radians.  So 3.14159... is 180 degrees.

"Tip joint" is something I want to clarify on as well. This parameter converts a side joint from each node into a tip joint to serve as a continuation of the main branch, correct?

In a regular L-system, you have great flexibility over how you replicate and morph things at each level.  I limited this greatly to produce a simpler interface.  But just branching, branching, branching makes it hard to do things like pine trees and such that essentially replicate the whole tree at each level.  The tip joint is sort of a compromise.  So rather than _just_ branching out when you reach the tip, the root trunk will get an additional tip joint that replicates the tree but shrunk down and with some additional tweaks (like tip rotation).  It's kind of like planting a smaller version of the tree at the top of the tree... and doing that again a few times.  I think I limit it or maybe I let the user limit it?  I don't have the tool up so I can't say for sure.

But it lets you have tall trees.  Adding a little rotation gives you some variation. 

"Tip rotation (rads)" is a function that exclusively rotates joints branching from a tip joint, is that accurate?

Yeah, it rotates each new tip by that amount.

You can almost replicate something similar to what Mythruna's 'scrub' trees (the really tall but sparse ones) by having a branch factor of 2 or 3 and turning on the tip joint with very little scaling but about 90 degrees tip rotation.

LOD
LOD is something I'm gonna need lots of help with. It seems very... finicky and generally hard to understand sometimes.  I messed with some of those settings and I think an unexperienced user that isn't paying attention would wreck their tree editing experience here. The abbreviation stands for Limit Of Detection, though, correct? Does this affect the tree mesh like the other settings or no? I ask because it doesn't seem to affect the triangle count

The Distance parameter seems to create a ring around the tree where it will be displayed in full detail, where getting to close to the tree will cause it to enter low poly mode if you set it high enough. That is, at least, how it behaves in the "highest" subtab. What do each of the subtabs apply to?

I understand what the mesh type parameters do to some extent, but I'm not sure how to describe the features of normal and flat poly meshes.  Do normal meshes simply use triangles, while flat poly meshes always pair their triangles into quadrilaterals?

LOD stands for "level of detail".  It's away of simplifying rendering if you are farther away.  Each level has a distance range within which it is in effect.

At each range you can adjust settings that help control how many triangles are rendered.  I don't remember what all of the settings are but for the regular hi-poly mesh then there should be a way to control the depth of branching and maybe something else to control the quality of the mesh like number of radials or something.  I don't remember.

There is also the flat polygon version which renders a _greatly_ simplified version of the tree using a shader trick.  Basically, instead of rendering a round branch section (lots of triangles) it just renders a quad that always orients to the camera.  From far away it still looks 3D because of the lighting.  You can best see this as lower quality if you set it up as the first LOD and fly up to the tree.  You can see that the branches are all quads that rotate around some imaginary axes where the centers of the branches are.

The lowest level renders the whole tree as a quad that orients to the camera.  It has a texture altas of the tree from four different directions and it switches to them based on the view angle.  For hundreds and hundreds of trees, really far away, this looks pretty good.

Generally, I tend to have four levels of detail and I adjust the distances based on a compromise of quality and how many trees I would expect to have.

1) the highest level of detail is the full tree as I've defined it... all branches all the way down, etc..  I often set this to cut off pretty close to the tree.  Conservatively, about the point where when walking you'd be able to see enough under the canopy to see the missing branches in level 2.
2) still a full mesh, but limit the branch level to 1 or 2 (where the leaves will hide the branches) and the root level to 1 or so.  I may reduce the mesh quality (radials, etc.) as allowed by the cut off distance of (1).  The idea is the transition should look pretty smooth at whatever change distance was picked.
3) the 'flat poly' version where all branches are just quads.  This should reduce most trees down to 20 quads or so I guess... factoring in the depth limit in (2).  If you can get away with it, this distance cut off should be to the point where it's hard to see the 3D-ness of the leaf ball.
4) the imposter "sprites" as described above and this is the final level and goes out all the way until you want the trees to disappear.

I spend a lot of time playing with those parameters with a 10x10 forest with maximum position variation and a little rotation, leaning, and scaling variation.

In Dragonfly Odyssey I guess I was rendering thousands of trees this way... most of them flat imposters at any given time because of the distances.
Logged
Rayblon
Donators
Hero Member
***
Posts: 1861


Hmmm...


View Profile
« Reply #8 on: July 22, 2016, 12:35:31 AM »

I guess the settings are similar but one goes down and the other up.  Often times you want different root settings than branch settings which is why they are separate.

Yeah, I definitely agree that the parameters for the two should be different. I was just asking for the purposes of the documentation since they looked identical in the menu and it would cut down immensely on documentation time... as we've seen. heh

I don't remember exactly.  More examples of where I used it might help but I suspect it's a "non-unit" or maybe indicating a multiplier.

It was associated with lots of random things, now that I think about it. Time of day had it, as did shadow strength, segment variation, gravity, and radius and length scale. Sometimes it seems multiplicative, but yeah, it looks like it's not really a unit. Out of curiosity, is there a use for suffixing parameters with a "non-unit"?


In a regular L-system, you have great flexibility over how you replicate and morph things at each level.  I limited this greatly to produce a simpler interface.  But just branching, branching, branching makes it hard to do things like pine trees and such that essentially replicate the whole tree at each level.  The tip joint is sort of a compromise.  So rather than _just_ branching out when you reach the tip, the root trunk will get an additional tip joint that replicates the tree but shrunk down and with some additional tweaks (like tip rotation).  It's kind of like planting a smaller version of the tree at the top of the tree... and doing that again a few times.  I think I limit it or maybe I let the user limit it?  I don't have the tool up so I can't say for sure.

But it lets you have tall trees.  Adding a little rotation gives you some variation. 

It doesn't allow user control outside of the boolean for it and the rotation feature. It works well enough for what it is, when you know the editor. I might try making some presets for people to demo that feature, since it's a little finicky to make the tall part come out.

The LOD talk
Ah. That makes sense. I edited the  LOD section with your description, to the best of my ability.



Well, I guess the documenting is done, ignoring any egregious errors in the documentation that I missed. When you get the time, could you give the documentation a once-over and help me identify said errors? I was eyeballing lots of the settings, so my interpretation may not be accurate 100%. It's amazing, though, just how much your understanding of something grows by documenting it. By recording how different elements worked, I figured out most, but not all of the features on my own. Before this, I was convinced that half the features did nothing or just broke the tree. xD
« Last Edit: July 22, 2016, 09:24:47 AM by Rayblon » Logged

pspeed
Administrator
Hero Member
*****
Posts: 5612



View Profile
« Reply #9 on: July 22, 2016, 05:41:05 PM »

Before this, I was convinced that half the features did nothing or just broke the tree. xD

Heheh.  Smiley
Logged
Rayblon
Donators
Hero Member
***
Posts: 1861


Hmmm...


View Profile
« Reply #10 on: July 22, 2016, 10:13:26 PM »

Oh and of course you can redistribute the documentation wherever you like, and make changes as needed. If you use it elsewhere, attribution doesn't really matter to me.
« Last Edit: July 23, 2016, 03:14:39 AM by Rayblon » Logged

Pages: [1]
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.20 | SMF © 2013, Simple Machines Valid XHTML 1.0! Valid CSS!