User Interface
When you run Koru for the very first time, you’ll see its main window:
There is a toolbar at the top, panels at the sides and the main working area in the middle. The main working area has tabbed user interface, so you can open several scenes, switch between them and even drag or copy shapes and materials between the scenes.
Main Toolbar
Koru toolbar helps you switch gizmo modes, undo or redo operations, select tools and toggle panels. Here is the left part of the toolbar:
The left section controls the gizmo, then go the undo/redo buttons, the next section is for tools and the last button runs export. The right part of the toolbar is for toggling panels:
You can read more about panels below.
Gizmo
Gizmo helps you move, rotate or scale objects in Koru. Although you can do this using the node properties panel, it is much easier to use the gizmo instead. Here is the gizmo:
These arrows (or other shapes in other modes) can be used for dragging, rotating and scaling objects in Koru. Note that you can transform only nodes, not meshes that way. In order to transform the mesh, you need to extract it first using the scene tree context menu.
You can switch gizmo modes using Scene menu by clicking Select, Move, Rotate, Scale, Set camera target or Create callouts items, or by clicking the buttons at the left of the toolbar:
From left to right:
- Selection mode - lets you select a shape by clicking it, the gizmo is displayed as three lines;
- Moving mode - lets you move the shape along one or two axis, gizmo is displayed as three arrows;
- Rotating mode - here you can rotate your object around any of the axis, displayed as three disks;
- Scaling mode - allows you to scale the object along one or few axis, gizmo is displayed as lines with boxes;
- Set camera target mode - this one lets you move the camera center, so it points to a different location;
- Create callouts mode - lets you create callouts by dragging them out of the points of interest.
You can also switch gizmo modes by pressing 1, 2, 3, 4, 5 or 6 keys on your keyboard.
Textures
Koru materials have lots of parameters that can use textures, like reflection, bump, mask and so on. Almost everywhere you can also provide a tint color or a multiplier. Here’s what it looks like:
The top one (Bump) has a multiplier, while the bottom one (Color) has a tint color instead. Both controls have texture boxes at the right. That’s the same image, explained:
By unchecking the box between the multiplier/tint field and the texture box, you can disable the texture for that parameter. In that case, only the tint or multiplier value will be used.
If you load an image to the texture control, it will change its appearance. Here we loaded image into the bottom control:
As you may see, the bottom control displays a “picture” icon in its texture box, showing that an image is loaded there. You can drag that texture box and drop it to another control that accepts textures to copy the image with all its settings to that control.
Texture Editor
By clicking the texture box you open the texture editor window:
Here’s what you can configure here:
Source section
- File - that’s the file picker that you can use to pick a different image file, if you like. You can also drop an image here or use the “cross” button to remove the image;
- Invert - by checking this you invert the image;
Color correction section
Here you can make a simple color correction of the image by adjusting brightness, contrast and gamma levels. As with other settings, this affects only this exactly parameter, so the same image loaded to a different material will stay intact.
Mapping section
Koru can shift, tile and rotate textures in each slot. Here you configure it using the controls below:
- Offset - lets you control how much the image should be shifted. Note that this is in UV coordinates, so shifting by 1 means no shifting and shifting by 0.5 means “half”;
- Repeat - controls the texture tiling, where 1 means “no tiling”, 2 means “double” and so on;
- Rotation - rotates the texture, the angle is defined in degrees;
- Wrap - lets you choose what to do if texture coordinates run out of [0; 1] range.
- Filtering - controls texture filtering mode;
Wrapping options are:
- Repeat - do nothing, simply tile the texture. That’s the default option;
- Clamp - clamp the texture running out of the [0; 1] range. Koru will use the edge pixels of the image to fill all the parts with texture coordinates out of range;
- Mirror - that’s pretty much like clamp, but instead of stretching Koru will mirror the pixels, so areas with out-of-range texture coordinates will get a reflected copy of the texture.
Filtering options are:
- Nearest - no filtering is performed at all. Good for pixel-art and related graphics;
- Linear - linear filtering, used by default.
Crop section
Sometimes you just need a part of the image. That’s where the crop helps. You can define the rectangle of the image you want to use, using Left/Top/Right/Bottom fields. Note that the parameters should be in [0; 1] range, as these are UV coordinates.
The difference between crop and repeat/offset approach is that crop works before repeat/offset and you can easily tile cropped image without risk of seeing the parts that should be cropped.
Other Parameters
Sometimes (for bump images) texture editor shows a different set of parameters, mostly by removing the color correction section and adding a height/normal map switch, which is essential for bump.
Koru Export
Once the scene is ready, you can export it to HTML. To do so click the export button in the toolbar:
Or click File → Export in the menu. Export Wizard window will pop up:
Here you need to decide what do you export for:
- Cloud - the scene is exported to Koru Cloud, you get a link and HTML embedding code;
- Server - the scene is exported for uploading to a web-server. Koru makes separate files for scene data, rendering core and HTML that links them together;
- Disk - the scene is exported to a self-contained HTML file that you can share or send by email (like 3D PDF).
Click the links above to read the tutorials for each option.
Koru Panels
You configure absolutely everything in Koru scenes using panels. Panels can be toggled on and off at the right side of the main toolbar or via the View menu:
You can arrange the panels the way you need around the screen. You can dock them either to the left or right sides of the window, leave them floating around or even hide them. Koru remembers the positions of all the panels, so the next time you run it — you’ll be in your comfortable environment.
Scene Tree Panel
This panel displays the current scene tree. You can choose to hide or show meshes (geometries) using the bottom menu. The scene tree also displays materials assigned to meshes:
The nodes are displayed gray, while the meshes are white. Materials are at the right of the meshes and can be hidden using the View menu at the bottom. You can hide and show nodes by checking the boxes next to them.
You can also display a popup menu by right–clicking the node in the scene tree:
Here’s what you can do with the menu:
- Cut, Copy, Paste, Delete - these are the standard operations that you can do with nodes;
- Extract meshes - if you select some meshes and click that item, Koru will make a new node and put all the selected meshes there. This way you can re-group the scene;
- Combine meshes - merges selected meshes into one, useful for converting muti-mesh glass objects to make them look solid and smooth;
- Group selected - lets you group selected nodes into the new node added to the root of the scene;
- Metadata editor - lets you edit metadata of the selected shape;
- Expand Selected, Expand Selected And Children, Collapse Selected - these items let you control the scene tree itself.
You can also access some of these items using the Edit and Scene menu items in the main menu bar.
Scene Properties Panel
All the scene-related properties like background, environment, floor and so on are located in the scene properties panel:
See below for the details of all the controls in the panel.
Background
Here you define what is displayed behind your scene. There are 7 options to choose from:
- Environment - you see the same environment image that is used for reflections and lighting, that’s the default;
- Transparent - there is no background at all, it is transparent. Note that semi-transparent mediums need a proper opaque background in order to be physically-correct;
- Plane Background - Koru displays the image you load, optionally tinted by the color you selected;
- Spherical Background - its pretty much the same as the “Environment” option, but you can load a different image instead;
- Radial Gradient - Koru displays radial gradient of two colors from the center of the scene to its edges;
- Vertical Gradient - same as above, but gradient runs fron top top bottom;
- Horizontal Gradient - same as above, but gradient runs from center to edges.
Then come the controls:
- Color - lets you choose background image and main tint color (disabled in “Environment” and “Transparent” background modes);
- Gradient color - defines secondary tint color, enabled in gradient background modes;
- Blur - lets you blur background image, works in spherical background mode.
Environment
Environment is the essential part of the scene, as it is used for reflections. It is important to use HDR images for environment to make reflections nice. Koru comes with some HDR environment textures in its materials library, but you can use your own images, too.
Here are the controls you can use:
- Color - lets you load an environment image and adjust its tint;
- Intensity - controls the brightness of the environment;
- Vertical offset - lets you move environment sphere up or down to better match the scene;
- Horizontal rotation - rotates environment scene left or right, so you can find better environment reflections layout;
- Vertical rotation - the same as above, but environment is rotated around another axis.
Floor Settings
This section lets you configure the floor. Note that you can edit “Floor” material if you want to customize the floor more.
- Show floor - toggles floor on and off;
- Shadow level - controls the darkness of the floor shadow that Koru computes.
- Use background texture - tells Koru to map the environment that way, so the bottom part of the environment becomes the floor;
- Texture scale - lets you scale environment image to better match it to the scene.
Glow effect for speculars
Koru adds some glow around bright speculars to make them even brighter. You can control this here:
- Enabled - turns the glow effect on and off;
- Level - controls the amount of glowing;
- Threshold - sets the minimal brightness that is enhanced by glow.
Watermark
Koru lets you add your own image on top of the rendered scene. Use Location control to select where to put the image, Scale parameter helps to adjust its size. Check Resize with viewport box if you want the watermark to be automatically scaled depending on the viewport resolution. Leave it unchecked if you want it to have its original size in pixels regardless of the viewport size.
Scene Materials Panel
All the objects in Koru scene share the same list of materials. You can use the same material on several objects and if you change the material, all the objects will be updated. Koru keeps the list of scene materials in the scene materials panel for your convenience.
On the screenshot above Koru displays the list of currently loaded materials. Not all of them are being used, but the scene still keeps them.
There are two special materials in Koru scene: default and floor. Default material is not shown in the list. Koru use that material for the meshes that have no materials assigned. If you create a mesh - it will get the default material. If you delete a material that is being used by a mesh - that mesh will also get the default material. You can’t edit that material, it is used to let Koru keep rendering the meshes that have no materials. Another special material is “Floor” which is assigned to the scene floor. You also can’t delete it, but modifications are allowed, so you can add a texture or reflection to it.
You can reorder materials in the list by dragging them with your mouse.
The bottom menu allows you to alter the list or manipulate materials.
- PLUS - adds a new material to the scene;
- MINUS - removes the currently selected materials from the scene. If material is assigned to a mesh, it is replaced with the “default” material;
- Edit - lets you clone or rename the selected material;
- Scene - lets you do some manipulations with the selected materials.
The Scene menu lets you do some useful tricks with selected materials:
There are two items there that may ease up your life a bit:
- Select geometry by selected materials - Koru looks through the scene and selects all the meshes that have materials currently selected in the list. This is useful if you need to find all the meshes of the same material;
- Apply material to selected geometry - Koru runs through the selected meshes and applies the currently selected material to them.
These actions are good together, say if you need to replace a material with another. You select the material, then select all the meshes with that material, then select another material and finally apply that material to all the selected objects.
How To Assign Materials
Besides the Scene → Apply material to selected geometry there is an easier way to assign material to a shape. You simply drag and drop the material onto the shape you want in preview or in scene tree and the material is automatically assigned to it.
How To Replace Materials
If you have a scene material and want to replace it with another one, and also update all the meshes to use the new material, there are two options. The first one is obvious yet long:
- Add the new material to the scene;
- Click the old material in the list;
- Click Scene→Select geometry by selected materials to select all the meshes that use the old material;
- Select the new material in the list;
- Click Scene→Apply material to selected geometry to apply the new material to all the meshes that have the old one.
The second option is somewhat faster. Simply drag the new material on top of the old one in the scene materials list. Wait a few seconds until the old material gets selected, then drop the new material on it. This will update the old material with the new one, leaving just its name. If you want to keep the old material, as well, you need to duplicate it first, then update the original one.
Materials Library Panel
Koru comes with a library of materials and images that you can use to speed up your scene setup. There is a panel called Materials Library that contains all the materials that come with Koru:
There is a filtering box at the top of the panel and a drop-down control that helps you filter out materials by their types. Then comes the long list of materials grouped by type (metal, glass, plastic, paint and so on), there are also images there, like textures and HDR environment images.
How To Use The Materials Library
You simply pick the material you need and drag it onto the shape you need either in scene preview or in the scene tree. The material is assigned to the shape and automatically added to the scene materials list. You can also drag materials directly into the scene materials list and then assign them from there.
The same applies to the images from the library, but instead of dragging them onto shapes or into the scene materials list, you need to drag them onto the texture controls of either material or scene properties editors.
Adding Your Own Materials
You can add your own materials to the library by dragging them from the scene materials panel into the materials library panel. Koru puts your materials into the special folder and you can then use them in other scenes.
Note that Koru doesn’t save textures with your custom materials, instead it saves absolute paths to them. This means if you add a custom material to the library and then move or delete its artwork, you will not be able to use that material later.
You can browse the saved materials folder with Explorer of Finder by clicking File → Open My Materials Library… item in the main menu.
Shapes Library Panel
Shapes panel displays some built–in shapes that you can start your scene with. Simply drag them into the scene or make a new one by dragging them into the empty workspace area. This way you can quickly test the application or add a simple shape to existing scene.
The panel is called Shapes Library and looks like this:
Koru does not (yet) provide an option to add your own shapes to the library, but we’re going to add this in the near future.
Materials Editor Panel
This is probably the most important panel in Koru. Here you can configure materials to make your scene looking the way you need. Here’s what it looks like:
The panel consists of three blocks:
- Material preview - the area where you can see the currently edited material rendered on a standard shape;
- Material tree - here you can find the tree of groups and layers that make the material;
- Parameters - the rest is the parameters of the currently selected item in the material tree.
Materials editor displays the properties of the currently selected material. You can select material by clicking an object in the scene, or directly in the scene materials list. The name of currently selected material is displayed in the panel title, so you always know what you edit.
Material Structure
It is described in more details here, but in two words materials consist of layers. Koru draws material layer by layer to render a surface.
Materials editor displays these layers in the material tree. By clicking items in the materials tree you see their properties at the right (or at the bottom for the narrow panel).
Main Parameters
Here you define if the material is single or double-sided. This affects culling and needs to be adjusted if geometry looks inverted.
Material Layer
Layers are the objects that actually define material. Here we’ll briefly run through all the properties.
Each layer can be emissive, diffuse or specular (or both). You activate the parts of the layer with check boxes in material editor. Each part has its own settings described below. There are also some common settings that works regardless of the layer’s type:
- Mask - helps you show and hide various parts of the layer. White mask means “show this”, black mask means “hide this”, gray helps to make layer partially visible;
- Bump - that’s a simple normal-based bump
Then goes Diffuse layer check box that toggles diffuse properties panel:
- Color - controls the color of the diffuse part of the layer;
- Opacity - controls the transparency level of the diffuse part;
- Transparency is mask - if enabled, the alpha-channel of diffuse texture is used as a layer mask. This is convenient for semi-transparent decals, labels and so on.
The Specular layer check box lets you configure the reflective options of the layer:
- Reflection - controls the reflection tint of the layer, it basically colors up the reflection;
- Transmission - controls the refraction tint of the layer, coloring the underlying parts of the layer;
- IOR - lets you choose how to setup reflection and refraction properties of the layer. You can choose between scalar and complex index of refraction and providing a measured data file for the material;
- N, K - scalar and complex parts of the index of refraction;
- IOR File - lets you load a file with measured parameters of the layer refraction;
- Reflection 90 Level - defines how much of reflected rays look different if reflected by the right angle;
- Reflection 90 - provides an alternative reflection color and image for right angle reflections;
- Roughness - controls the reflection blur of the layer, the more rough (uneven) the layer, the blurry the reflection;
- Anisotropy - controls the level of anisotropy effect;
- Angle - controls the direction of anisotropy (angle), works best with a proper texture, Koru has some in the materials library.
You can also add an optional thin-film interference effect to reflecting material (think of soap bubble, oil on water or color-coated sunglasses). Check Thin-film interference box to see these extra options:
- Thickness - the base thickness of the thin layer (measured in nanometers);
- Min Thickness - activates if the Thickness parameter gets a texture, so the Min thickness becomes the minimum value, while the Thickness values are added to it;
- IOR - lets you select the way Koru computes interference. The options are: Scalar, Complex and Measured data.
- N, K - scalar and complex parts of the index of refraction
- IOR File - lets you load a measured data file for the thin-film layer;
Finally, there is Emissive layer section that lets you make materials emissive. The options are quite straightforward:
- Color - defines emissive color;
- Level - controls the level of emission.
Snapshots Panel
This panel lets you save a specific scene state for further usage. This includes camera position, node visibility and positions, assigned materials. Use this to capture nice views and layouts of the scene for further usage:
All the snapshots operations are done using the bottom menu:
- PLUS - save the current view and adds it to the list;
- MINUS - removes the selected snapshot from the list;
- Save - updates the currently selected snapshot with the current view;
- Edit - displays a popup menu with two extra items:
- Rename - lets you rename the currently selected snapshot;
- Edit metadata - opens the metadata editor for the selected snapshot.
You can double-click an item to activate the snapshot.
Snapshot Parameters
Below the list you can find controls that modify the properties of currently selected snapshot.
First comes Snapshot properties section that control the main parameter of a snapshot:
- Visible to user - controls if a snapshot is visible to user when exported.
Then comes Saved information section which controls what information is restored when snapshot is activated:
- Camera state - tells Koru to restore the camera state;
- Transformations - the same for node transformations, keep it checked if you want Koru to position nodes the same way you do it before taking this snapshot;
- Visibility - the same for node visibility;
- Assigned materials - tells Koru to restore assigned materials the way they was before taking the snapshot.
Koru stores both camera state, node visibility and transformations and assigned materials when you make a snapshot. However, by checking the boxes on and off, you can decide what options to restore when you activate a snapshot. You don’t need to re-take snapshot after changing the options.
Next section is Snapshot activation crossfade and it controls how one snapshot changes another:
- Duration - defines the time that snapshot use for activating;
- Exponent - controls the transformation curve of snapshot switching.
Finally comes the Sequence section that lets you automatically switch to another snapshot after specific period of time:
- Duration - controls how long to show the current snapshot, in seconds;
- Next snapshot - lets you choose the next snapshot that will be activated then.
Callout Styles Panel
Koru lets you create pre-defined styles that you can later use with callouts. Callout style contains all the information about the look and feel of callouts and you can easily make multiple callouts looks the same using styles.
The panel is called Callout Styles and looks like this:
All the styles are listed at the top, and the buttons under the list lets you make basic operations:
- PLUS - creates a new callout style;
- MINUS - deletes the currently selected callout style;
- Clone - makes a copy of the currently selected callout style, so you don’t need to start from scratch;
- Rename - renames the currently selected callout style.
You can export callout style for further usage by dragging the list item onto your desktop or into a folder on your computer. Later you can drag that file back into the callout styles list of another scene to re-use the style. You can also drag the style directly into another Koru scene opened in another tab.
Then goes the controls that you use to configure the currently selected callout style:
Text Parameters
This block controls the appearance of the callout text.
- Color - lets you change the color of the callout text;
- Alignment - controls how the text is aligned in callout;
- Font - defines the font used for displaying callout. You don’t need that font when displaying the scene in HTML, Koru will bake everything in at export;
- Font size - the size of the previously selected font to use in callouts;
- Bold - lets you make the text bold;
- Italic - lets you make the text italic;
- Padding - controls the vertical and horizontal padding around the text in callout.
Background
Here you control the callout background.
- Color - lets you specify the color of the callout background;
- Opacity - controls how transparent is the background.
Border
This section lets you configure the border around the callout.
- Radius - controls the radius of the border corners;
- Color - lets you specify the color of the border line;
- Width - lets you specify the width of the border line;
- Leader line - shows or hides the leader line of the callout (it uses the same style, as the border).
Node Properties Panel
Node properties panel displays the properties of the currently selected node. Here’s what it looks like for most of the nodes:
These are the same translation, rotation and scale parameters that you edit using gizmo. Actually using gizmo is probably the best way to edit them, so the panel can be used just for fine tuning the parameters.
The panel displays the node name in its title, so you always know what node you are working with.
Rendering Priority
Sometimes you need to make sure that a particular node is rendered after all the other ones are rendered. This is useful for semi-transparent objects and labels, for instance.
By default, Koru first renders opaque objects, then sorts the translucent ones from the further to nearer and renders them in that order. You can change that by setting a higher rendering priority. The larger the priority, the later the node will be rendered.
Lightmap Parameters
These parameters lets you specify if you want the node to cast or receive shadows. Read more about lightmaps here.
Callout Properties
Callouts don’t have all the transformation parameters like other nodes in Koru, here’s what callout properties panel looks like:
Here is the list of callout options you can use:
- Type - lets you switch between text-based and image-based callouts;
- Text - here you enter the callout text (text-based callouts only);
- Callout style - lets you select the callout style (text-based callouts only);
- Image - lets you choose the callout image (image-based callouts only);
- Offset - defines the screen offset (in pixels) between the callout itself and its target;
- Scale - controls the scale of callout;
- Visibility angle - controls the angle between the callout target surface and the camera, where the callout is still visible;
Then goes the transformation section where you can configure callout target position and define its rendering priority.
Decal properties
Decals have their own parameters in Node Properties panel:
See here for more details on decal parameters.
Image node properties
Image nodes (watermarks) also have their custom parameters explained in the watermarks tutorial.
Camera Settings Panel
This panel controls the Koru camera:
Here is the list of properties you can change:
- Target - sets the point that the camera looks on. You can also change this using gizmo;
- Distance - controls how far is the camera from its center point. You can change this with your mouse wheel;
- Yaw, Pitch - the angles of rotation of the camera around its center, you can change this with your mouse by dragging the preview;
- Roll - the third angle of the camera that you hardly need often;
- Field of view - how wide is the camera viewport in degrees;
- Aspect - controls the width to height ratio of the camera. For 4:3 enter 1.333, for 16:10 enter 1.6 and so on;
- Z Near and Z Far - define both near and far clipping planes of the camera. Koru will not render before Z Near and after Z Far;
- Gamma - allows you to control the gamma level of the camera.
You can restrict exported camera behavior using Camera Restrictions section:
- Allow Rotation - when checked, user can rotate camera in exported HTML scene;
- Min/Max Yaw - let you limit horizontal rotation angles;
- Min/Max Pitch - let you limit vertical rotation angles;
- Allow Zoom - when checked, user can zoom the scene using mouse wheel;
- Min/Max Distance - let you limit camera zoom;
- Allow Pan - when checked, user can pan the scene by dragging it with right mouse button.
Tools
Koru provides some tools to modify the scene for better visual appearance. The tool buttons are in the middle of the toolbar, or can be accessed via the Tools menu:
The tools are explained below.
Fit To View Tool
Sometimes you need to quickly set the camera so it sees the whole scene (or just a part of it) leaving just a thin border of empty space around. That’s what the “Fit to View” tool is for. You can run it by clicking a toolbar button, or using the Tools menu.
Let’s make a simple scene like this one:
Now run the “Fit to View” tool and see its window pops up:
As you may see, the tool has some options:
- Padding - controls how much empty space to leave around the scene after fitting the camera;
- Just selected objects - lets you decide if you want to focus on the whole scene or just on the selected objects;
- Including children objects - that’s a sub-option of the previous one. By unchecking it you focus just on the selected objects, not on their children;
- Keep aspect - when checked Koru keeps the camera aspect ratio, otherwise it may change the camera aspect in order to leave less empty space around the shape.
Now if you see, by default Koru fits to the whole scene and keeps aspect: the result can be seen in background. The whole scene is visible, there is some space around and the camera aspect is the same. Let’s check Just selected objects and see what happens:
The only selected object in the scene is the blue sphere, so after checking the “selected objects only” option, we see that Koru adjusted the camera to better see the sphere. There is still some padding around and the camera aspect is still the same, but the plane is not completely visible anymore.
You now need to confirm the changes you made by clicking the OK button, or revert them by clicking Cancel.
UV Mapping Tool
Koru needs meshes to have texture mapping in order to apply textures to them. Sometimes models don’t have that mapping or have incorrect one. The UV Mapping tool helps you generate or correct the mapping, if necessary.
We’ll start with a koru model with incorrect texture mapping and a sample checkers texture applied:
As you may see, texture mapping is not perfect, as the front face doesn’t look mapped at all. Let’s fix it with UV Mapping tool. To do so, click the Tools → Generate UV Mapping in the menu, or click the UV Mapping tool button in the toolbar. The UV Mapping generator window will pop up:
Note that the mapping in background becomes better. Here’s what you can configure:
- Mapping - defines the mapping type (see below);
- Fit to - lets you choose how to fit mapping: by using mesh (geometry), node, selection or the whole scene;
- Flip U/V - lets you flip the generated mapping horizontally, vertically or both.
- Normalize - normalizes the box Koru uses for UV calculations. This helps to evenly distribute the mapping;
- Scale - lets you scale the bounding box used to calculate mapping. Again, this helps to apply a better mapping especially in “box” mode;
- Repeat - lets you tile the applied UV coordinates.
Koru supports 4 standard mapping types: Box, Planar, Cylindrical and Spherical. For all the types (except the Box one) you can choose the main axis. For instance by selecting “Spherical Z” you choose the spherical mapping along the Z axis.
Edit Normals Tool
Sometimes you need to re-generate normals of a single mesh or even the whole model. You may need to make them smooth or hard, or even flip them. You can do this in Koru using the Edit Normals tool.
Let’s start with a simple sphere shape with reflective metallic material (Steel for instance):
Now click the Tools → Edit Normals menu item or the corresponding button in the toolbar to see the normals editor window pops up:
Nothing really changed for the sphere, as by default the normals editor tool runs in “Auto” mode that tries to make normals smooth. As the sphere was smooth enough before we started, there is no much difference so far. However, things will change when we switch to the “Hard” mode that makes all the edges hard:
As you may see, all the edges are now hard and the sphere looks like a disco ball. This is good when you need to focus on sharp edges of the shape.
The other two options are Flip normals and Flip facing. They let you heal inverted meshes that sometimes comes from improperly exported files or in case of import errors. Try them if you see the inside of your shape instead of the outer side. They usually help.
Edit Pivot Tool
Pivot point is the central point of the node which is used to scale or rotate the geometry of the node. Sometimes you may need to move that point to the center or to the bottom of the node for easier scene management. That’s what the Pivot Editor tool is for.
Let’s make a scene with a box and a sphere:
Both nodes have their pivot points at the bottom. If you need to rotate both shapes around their centers, you need to move their pivot points first. Click Tools → Setup Pivot Parameters in the menu, or click the pivot editor button in the toolbar. A pivot editor window pops up:
As you may see, both pivot points were automatically moved to the centers of shapes. That’s the default behavior of the pivot editor tool. Here’s what you can configure:
- Calculate pivot - lets you select the way pivot points are calculated (see below);
- Including children nodes - defines if the children nodes need to be taken into account;
- Pivot X/Y/Z Axis - decide the pivot position along each of the axis (see below).
There are several methods of calculating pivot point position. You choose one using the Calculate pivot combo box:
- Individually for each node - Koru takes selected node one by one, computes their bounding box (optionally including their children nodes) and puts the pivot points individually according to that bounding box and the rules defined by Pivot X/Y/Z Axis controls. That’s the default behavior and can be seen on the screenshot above;
- By all the selected nodes - almost the same as the previous one, but Koru computes a single bounding box for all the selected nodes and all the nodes get the same pivot point;
- By the whole scene - the whole scene’s bounding box is used instead.
As for the pivot moving rules, there are 3 options: Minimum, Maximum and Center. By default all the options are set to “Center” and this moves the pivot into the very middle of the shape. If for instance, you need to put a pivot in the middle of the bottom of the shape, you need to put “Pivot Z” to “Minimum”, while keeping the other two at “Center”.
Put On The Floor
This tool is quite straightforward, it simply places the selected object right on the floor surface. It is useful when you have something floating around or under the floor and want it has a nice floor shadow. No settings provided, it just works :)
Fix Transparent Meshes
It is quite a tricky process to display semi-transparent objects with hardware acceleration. For ideal results, all the triangles must be sorted by the distance from the camera in order to maintain a proper scene transparency. Unfortunately, this takes relatively long time to re-sort the scene each frame or after any camera movement, so we ended up in compromise.
This tool tries to re-order triangles of the mesh to help it look better when transparent. So if you import a bottle and it doesn’t look well with glass material - try this tool to fix it.
There is no parameters here, just select a mesh and click the tool button.
Geometry Optimization Tool
Sometimes scene geometry has too much details and exported scenes become large and take long time to load. To address this you can reduce the number of details in some meshes or in the whole scene, using the geometry optimization tool.
Let’s start with an Owlet model which is quite heavy. Drag it into the scene, then select it and click Tools → Optimize Geometry… item in the menu. You will see a wireframe mesh on the selected object and the tool starts pre-processing the mesh:
Once the mesh is pre-processed you can see it optimized to some extent:
You can now adjust the optimization parameters to get the best balance between the number of triangles and the visual appearance of the shape.
There are two parameters you can configure:
- Level of detail - measured in percents in range of 0..100. The higher this number, the more detailed shape you get;
- Max vertex count - controls how many vertices you want in the optimized model. Koru removes less significant vertices unless their total number matches the limit.
As both parameters affect the shape, Koru uses the one that gives more optimized result.
Here we limited the number of vertices by 1000 and got quite a low-poly model:
Find the proper balance using these parameters then click OK to commit the changes.
Sometimes mesh optimization can lead to artifacts in texture mapping. If your shape has texture, especially a wrapped one - it is a good idea to double-check the optimized version for artifacts. You can always undo the optimization and try less aggressive parameters or avoid the optimization completely.
Metadata Editor
You can edit metadata for nodes and snapshots. Metadata is a list of key-value pairs that you can setup in scene and access later in exported scene using JavaScript.
Select a node in scene and then click Scene → Metadata Editor… in the main menu to see the editor:
The buttons at the bottom-left corner lets you add and delete metadata, that are displayed in the list. Here is the same window after inserting and editing some data:
Click OK when done, or Cancel if you don’t want to update the metadata of the selected node.
That’s All!
You can find more information at our Koru tutorials page.