Wizard Eye 3D: User Guide

Wizard Eye 3D: User Guide


Preface

This documentation covers most of the basics required to operate WizEye GUI and understand its features.

Important!
Data Execution Prevention option prevents Wizard Eye 3D script execution. We recommend you to add Wizard Eye to the execption list.
To do this you need to open Perfomance Options dialog in your
My Computer properties, click on the tab Data Execution Prevention and Add button.

Document map

Rendering step-by-step

  • Launch the WizEye 3D Client plug-in from the LightWave, if it's not listed, add it via plug-in addition dialog. WizEye3D dialog window should pop up.
  • Press the "Send As New Scene" button. If WizEye3D engine is availiable, the "Connected" status should appear and you will see WizEye 3D main window with current scene name inside.
  • Add a new "Render" pass. For that, press the "Add Pass" button and choose "Render".
  • Press the "Render" button in upper-left corner and choose "Render Current Frame". The Image Viewer window should appear and you will be able to see the rendering progress.
  • Because of WizEye 3D processes material parameters differently, they should be adjusted to achieve a proper result. Do not fear to set parameter values greater than 1, especially when it comes to reflection and specularity.

Rendering, RunOP's, Passes

WizEye 3D renders a sequence of passes. How and in what order they are being rendered is defined by the specific RunOp. It may be chosen from the "Render" menu at the main form, by pressing the "Render" button. So, by selecting the "Render Current Frame" menu you actually activate the RunOP inside the script named CurFrame.epl, which performs all actual operations.
RunOP takes sequence parameters from the main pass. Main pass is the one which is currently selected. All other passes are siblings of the main pass.
There is also a RunOP's type. This parameters defines certain RunOP specifics and also defines in which order they are executed. This allows to utilize any complex rendering scheme to fit the specific task.
Each pass has its own function which is implemented via Pass Operator. Thus, the "Render" pass performs a one frame render from camera, the "Render Camera Shadow Map" is required to generate a shadow map for the specified light source. During rendering it is possible to review all material, light and other parameters, but not to modify them.

Pass options

For each pass there are options, they may be changed by pressing the "Options" button and bringing up the "Pass Options" dialog. Here is the list of available options:

  • File Name
  • The name of file for the rendered image/images.

  • Width
  • Camera viewport width in pixels.

  • Height
  • Camera viewport height in pixels.

  • Start Frame
  • A frame number to begin with.

  • End Frame
  • A last frame in sequence.

  • Step
  • This number is added to a current frame number to calculate the next frame number; it is 1 by default.

  • Pixel Samples X
  • A number of horizontal sub-pixels for each pixel. Increase a number of samples to reduce aliasing effects if necessary.

  • Pixel Samples Y
  • A number of vertical sub-pixels for each pixel. Increase a number of samples to reduce aliasing effects if necessary.

  • Pixel Ratio
  • Used to produce non-square pixels, the default value is 1

  • Gamma
  • Controls the gamma of the resulting image.

  • Color Normalize Value
  • Increase this setting to reduce the contrast of an HDR image.

  • Camera
  • The name of a camera to be used for rendering.

  • Policy
  • This policy will be used during render.

  • Background Color
  • This will be the color for all empty pixels in the scene, however, if any Environment setting is used, it will be processed before, thus background will be visible only where Environment is transparent.

  • Trace Limit
  • Sets the raytracing depth.

  • Bucket Size
  • The size of a rendering bucket, the default size is 16x16 which is optimal.

  • Dither Value
  • Increase this parameter value, if you observe clearly visible gradient steps between adjacent colors.

  • FPS
  • A frames-per-second rate for the animation.

  • Raytrace Volume
  • If checked, all volumetric effects will be raytraced.

  • Photons Enabled
  • Enables photon processing.

  • Adaptive Sampling
  • Enables adaptive sampling algorithm (provided that a number of samples per pixel is greater than 1)

  • Image AS Enabled
  • We assume to extend adaptive sampling algorithm in the future. Currently
    this parameter disables adaptive sampling too.

  • AS Hide Displacement On Prepass
  • Turns off the displacement during main pass.

  • AS Hide Displacement On Final Pass
  • Turns off the displacement during AS pass.

  • AS Normal's Threshold
  • Controls the AS edge detection, the lesser angle increases an amount of pixels to be processed, providing a better quality.

  • AS Color Threshold
  • Specifies a maximum color difference.

  • Priority
  • Sets a priority for the rendering thread, useful for background rendering.

  • DOF
  • Enables depth of field effect calculation.

  • focal distance
  • focal length
  • focal stop
  • Camera lens parameters for DOF effect processing.

  • Crop X / Crop Y / Crop Width / Crop Height
  • The coordinates of a rectangle to be rendered, if these fields are zeroed, the entire viewport is rendered (default).

  • AVI File
  • The name of file for the resulting animation.

  • Options File
  • A name of temporary file holding an AVI codec settings.

  • Pop up Options Dialog
  • Opens an AVI codec settings dialog, they will be saved into the "Options File".

  • Rate
  • A frame rate for the AVI video.

  • Alpha File Name
  • An optional file to hold the image alpha map.

  • HDR File Name
  • An optional file to hold the resulting HDR image in 96-bit float TIFF format.

  • HDR Alpha File Name
  • Same as "Alpha File Name", but in HDR.

  • Cache File Name
  • A temporary file for the scene cache.

  • Cache Size
  • A maximum size of the cache file (in megabytes).

  • Clipping Size
  • Specifies a near-clipping distance.

Scene Import and connection to the LightWave 3D

WizEye 3D is an external renderer and has its own scene format, which has the .orn extension.
ORN is a database with its own engine and may contain not only the scene itself, but also an operator's configuration, worker list (for network rendering), baked textures and other information, required by operators.
Scene can be saved, including not only light, surface and other parameters but also envelopes and geometry.
Currently, WizEye 3D is able to import only LightWave scenes, which is done via WizEye 3D Client Plug-in for LightWave working in real-time.
In fact, all object movement and envelopes are being calculated by the LightWave itself and WizEye 3D keeps constant link to the LightWave. However, during a network rendering it is impossible to use the LightWave for object coordinates calculation and WizEye 3D switches to fully autonomous mode.
Scenes can be saved in WizEye 3D format by selecting the "File / Save As" menu (not available in demo version).

Beside real-time WizEye 3D Client there is also the WizEye 3D Exporter, which can be used to export a scene from the LightWave to WizEye 3D. Such scene may be opened and modified as usual, except that no geometry modification is possible without the LightWave.
WizEye 3D Client is also capable of exporting an existing scene; the one was saved or exported. In that case no data is overwritten and all object geometry and coordinates are updated according to the LightWave's scene. Surface properties are preserved if the object is present in previously saved/exported scene.
Because WizEye 3D Client and WizEye 3d Exporter are LightWave's plug-ins, they should be added as plug-ins by the usual way.

Policy

The Policy allows specifying of different properties for same object in the same scene, e.g. in one policy the same light source may be Distant, but in another policy it may be Point.
The Policy should be specified for each pass.
It may be added, deleted or copied.
So, a most common tactics is to add an empty policy, then copy the existing one over it and then change only necessary parameters.

Operators

Each renderer's function is implemented via script and called the Operator. If you are a developer, it is possible to create your own operators or modify existing ones. Light sources are implemented via Light Operators; they define specific light source type, e.g. distant, point, UV and etc.
Same way, surface properties are defined by a material operator, layer properties by a layer operator and so on.

Material Operator

Material operator implements properties of the specific surface. These properties may be default (always present, like reflection or specularity) or additional (to gain specific effects).

There are many additional properties available allowing to implement most realistic effects. There is also a baking property which allows creating of a texture map for the specific surface or entire screen. There are different material operator types making a surface to look different.

Volumetric effects, background, foreground

All these effects are implemented via Render Operators (ROPs), which are available through the Environment menu. You should select desired ROP from the list by selecting the "Add ROP" then adjust necessary parameters. It is possible to change a ROP type later, old parameters will be preserved.

Lighting

There are several shadow types.
Simple - in that case an object casts a black shadow if the ray to the light source is blocked by another object or geometry. This is a default shadow type.
Deep - in that case the shadow passes through objects and their material properties may change its color, in the default MOP, the Occlusion property controls that, its value should be >0 for shadow to be transparent, it is possible also to add a color or color map for this parameter.
Wide Simple - draws a simple but soft shadow, from the ray hit point a cone of rays is shot in light's direction, a number of rays is controlled by the number of samples.
Wide Deep - a soft shadow with same calculation method as simple deep.

UV-lights

To use UV-lights it is required to specify the object which will be an emitter and guide layer name, which will contain the light source samples. (see Guides)

Extensions

void AddExtension(string Name);
void AddParmToOP(string ParameterType, string ParameterName);

Displacement/Bump

Currently, a surface geometry may be modified using follwing methods: the simple normals reorientation (bump), the real displacement and the object operator (one of which is the vertex displacement).

Bump

The Bump changes only a normal orientation, which is often sufficient to create an appropriate surface effect. The Bump has a certain step after which a next normal is calculated, this step size can be specified by setting a virtual texture size ("U Cells"/"V Cells"). If normal smoothing is enabled, the virtual texture has actual "U Cells" by "V Cells" size which increases memory consumption.

Note: Bump is enabled when the "Displace" checkbox is cleared.

Real Displacement

Allows completely real and smooth surface displacement, you may change the desired tessellation level to match your requirements. To speed up the rendering some tessellation is performed prior, but, of course, it consumes more memory and forces the engine to utilize a disk cache. Usually, most undesirable maps for the displacement are ones with high contrast changes, producing strict vertical surfaces. There are, however, some ways to fight artifacts like setting the normal smoothing or displacement map smoothing (Image Smoothing Level).

Note: To enable Real Displacement check the Displace option.

Raytracing of the Displacement

The Wizard Eye has ability to raytrace Real Displacement, but, of course, it consumes much more time than simple camera rendering, that is why a very complex displacement may produce an impossibly long rendering time. It is possible to specify the separate tracing for shadows, reflections and refractions. If displacement raytracing is not enabled, the original surface will be used for tracing which may produce various artifacts like phantom shadows.

Vertex Displacement

There is the ObjOP called "Vertex Displacement", unlike the "Displacement" property it affects only polygon vertexes. The Guide property should be specified for this ObjOP, its layers will specify how each polygon vertex should be affected, just like in Real Displacement.

If a surface, modified by the Vertex Displacement is smoothed, it is necessary to use bump plus to this ObjOP, it will recalculate surface normals after Vertex Displacement.

Baking

To perform a baking it is necessary to add the "Bake" property to the MOP and specify a name of material property which is to be baked. That property should be above the Bake property to be processed properly.
Unique properties, like Reflection or Specularity have names equal to their caption; however, multiple properties should have a unique name set in the "Property Name\Bake" to be recognized by baking.
The resulting texture is created in WizEye's internal format, to export it into a file check the "Extract" option and provide the destination file name.

Because a same surface may occur several times before camera, each surface plane is saved into a separate texture level, during export; a corresponding plane number is added to the file name. If you wish a complete texture on the whole surface, use the UV-baking.

UV-Baking

By default, a screen view of the surface is stored, but if the "UV-Baking" has been set, the texture will be created corresponding to the specified UV-coordinates. Also, the "Guide" layer should be added for the "UV-Baking" parameter, texture coordinates should be specified there. A most easy way is to copy these coordinates from the property which is to be baked. The Guide layer projection should be Planar, Spherical, Cylindrical or UV and could not be repeatable and should cover the entire surface region. Using the Cubic projection will produce distortions.

ROP-Baking

You can bake one same parameter in all surfaces, to do that, you should add the "Bake" ROP and specify the desired property.

Guides

Some operators require so called "Guide" layer to function properly. Guide is a texture layer that may be applied to any surface property; this allows correlating of a surface point with a texture cell.
To use the Guide in the LightWave you should apply some image as a texture and then, after transferring the scene into the WizEye, change a layer type to Guide and fill the Guide Name field.

Despite the fact that the Guide is specified for a surface, but not for an object, still, all surfaces are looked up and there can be no Guides with same names inside one object. There is a Guide property that does not affect surface color, so if you want to leave the surface unchanged, use this property to specify a Guide layer.

File paths

It is possible to reconfigure file paths at your convenience. Because WizEye 3D supports network rendering, pathnames should be specified accordinly.

Texture paths

File paths may contain actions inside, such as:

  • no action, just a path (c:\... or \\computer\c$\...), i.e. pathname does not contain action prefixes ($ or .)
  • copy file to the specifed location: $[destination path][supervisor path]
  • copy file to the worker machine into WizEye 3D local directory: ./[path]
  • copy file to the worker machine into specified directory: $r[worker path][supervisor path]

This apply only to networked RunOPs.

Script paths

Script paths are specified through the worker's or WizEye's parameters and should be local or reachable via the Windows Network (by the UNC path).

Paths to created files

File paths may contain actions inside, such as:

  • no action, just a path (c:\... or \\computer\c$\...), i.e. pathname does not contain action prefixes ($ or .)
  • copy file to the specifed location: $[destination path][temporary path on worker machine]
  • copy file to the supervisor machine into WizEye 3D local directory: ./[path]
  • copy file to the supervisor machine into specified directory: $r[supervisor path][worker path]

temporary path is the same for worker and supervisor

Scripts

All scripts are located in the "Scripts" sub-directory, compiled scripts are in the "Scripts.bin" sub-directory. If a script has been changed or replaced, it must be recompiled, otherwise, using an old version of the script may produce unexpected behavior. To do that, open the "Configure->Operators" menu and select a desired operator, the corresponding script name and path will be displayed at the bottom.
There is also a quick way to force a full recompilation of all scripts, to do that, just delete the "config.orn" file from the "Data" subdirectory.