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
- Rendering, RunOP's, Passes
- Pass options
- Scene Import and connection to the LightWave 3D
- Policy
- Operators
- Material Operator
- Volumetric effects, background, foreground
- Lighting
- Extensions
- Displacement/Bump
- Baking
- Guides
- File paths
- Scripts
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
- Width
- Height
- Start Frame
- End Frame
- Step
- Pixel Samples X
- Pixel Samples Y
- Pixel Ratio
- Gamma
- Color Normalize Value
- Camera
- Policy
- Background Color
- Trace Limit
- Bucket Size
- Dither Value
- FPS
- Raytrace Volume
- Photons Enabled
- Adaptive Sampling
- Image AS Enabled
- AS Hide Displacement On Prepass
- AS Hide Displacement On Final Pass
- AS Normal's Threshold
- AS Color Threshold
- Priority
- DOF
- focal distance
- focal length
- focal stop
- Crop X / Crop Y / Crop Width / Crop Height
- AVI File
- Options File
- Pop up Options Dialog
- Rate
- Alpha File Name
- HDR File Name
- HDR Alpha File Name
- Cache File Name
- Cache Size
- Clipping Size
The name of file for the rendered image/images.
Camera viewport width in pixels.
Camera viewport height in pixels.
A frame number to begin with.
A last frame in sequence.
This number is added to a current frame number to calculate the next frame number; it is 1 by default.
A number of horizontal sub-pixels for each pixel. Increase a number of samples to reduce aliasing effects if necessary.
A number of vertical sub-pixels for each pixel. Increase a number of samples to reduce aliasing effects if necessary.
Used to produce non-square pixels, the default value is 1
Controls the gamma of the resulting image.
Increase this setting to reduce the contrast of an HDR image.
The name of a camera to be used for rendering.
This policy will be used during render.
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.
Sets the raytracing depth.
The size of a rendering bucket, the default size is 16x16 which is optimal.
Increase this parameter value, if you observe clearly visible gradient steps between adjacent colors.
A frames-per-second rate for the animation.
If checked, all volumetric effects will be raytraced.
Enables photon processing.
Enables adaptive sampling algorithm (provided that a number of samples per pixel is greater than 1)
We assume to extend adaptive sampling algorithm in the future. Currently
this parameter disables adaptive sampling too.
Turns off the displacement during main pass.
Turns off the displacement during AS pass.
Controls the AS edge detection, the lesser angle increases an amount of pixels to be processed, providing a better quality.
Specifies a maximum color difference.
Sets a priority for the rendering thread, useful for background rendering.
Enables depth of field effect calculation.
Camera lens parameters for DOF effect processing.
The coordinates of a rectangle to be rendered, if these fields are zeroed, the entire viewport is rendered (default).
The name of file for the resulting animation.
A name of temporary file holding an AVI codec settings.
Opens an AVI codec settings dialog, they will be saved into the "Options File".
A frame rate for the AVI video.
An optional file to hold the image alpha map.
An optional file to hold the resulting HDR image in 96-bit float TIFF format.
Same as "Alpha File Name", but in HDR.
A temporary file for the scene cache.
A maximum size of the cache file (in megabytes).
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.