1) Realtime vs. Raytraced renderers:
 


nXng is a realtime 3D engine. What this mean is that when you render a picture in Lightwave it can take several minutes to complete. When running nXng each picture you see is rendered on the fly so, each frame must take a very short amount of time to render if we want the animation to work. Of course this imply a very important reduction of image quality... Speed versus Quality... ):

1.0] Rendering considerations & limitations:

There are many things that get dropped out from Lightwave render to nX render, among these:
- Phong shading is no more possible only flat or gouraud shading are fast enough to be of use in realtime. However true static phong shading is available via Lightmaps,
- Dynamic shadows are also very time consuming... therefore realtime 3d engine almost never include support for them. nX uses Lightmaps to reduce the gap beetwen realtime and rendered pictures. With lightmaps very realistic static shadows can be reproduced along with true phong shading.
- Edge antialiasing is also unsupported in nX. This is subject to change soon...

Apart from these major lacks nXng has a powerful implementation of all available realtime techniques from today's 3D hardware. So you will almost always get a render very similar of what you could expect if you keep in mind the above restrictions.

nXng will very soon get its software renderer back. It won't be a hardware emulation anymore but a realtime raytracer! Of course this is kinda slow but has CPUs gets faster and faster this is the way to go...

1.1] Automatic scene sizing & Z-Buffering problems

3D hardware now always support Z-buffering to enable realistic polygon intersection to be accurately reproduced. However for speed considerations this Z-buffer has hardware-defined limitations. Z-Buffer usually fits in 16 or 32 bit on common 3D accelerators. For 3D hardware using 32 bit Z-buffer there should be no problem with automatic scene sizing. But 16 Z-buffer may exhibit flickering polygons or crappy polygons intersections. To determine if your hardware has 16 or 32 bit Z-buffer support just launch a scene and exit it then look in nX Console the Z-buffer format that was used for replaying.

The following also apply to Z-buffer problems:

To avoid potential problems with Zcutting, the scene is scaled at load time to conform with it GridSize setting. If you encounter Z-Clipping problems, try modifying the Scene's GridSize in Layout! OPTIONS Menu / Layout View / Grid Square Size.
Watch your scene in Layout because if this problem arise in nX it is most likely to be the same in Layout.
Also sometimes extreme values (like 1Gm) can make the BoundingBox system go nuts making loads of polygons weirdly getting all over the screen.


- Lightmaps dramatically improve visual quality -


- Static shadows can be accurately reproduced -

2) Supported Lightwave features:
 


2.0] LW Scenes,

nXng has native Lightwave scene support so it handles almost all commonly used features of the Lightwave scene object. nX directly reads objects, cameras, motions and stuff from the LWS you provide.

Motions and envelops are reproduced perfectly in nX with support for 'End Behavior' settings (Reset is interpreted as Stop).

2.1] LW Objects,

nX gets infos on objects in native LWO format. Here is the list of what is supported and interpreted in the engine:

- Polygonal geometry (with a maximum of 333 vertice per polygon, truncation is performed if overflow),
- Pivot point,
- Surfaces (please refer to the 'LW Surfaces' section).

When loaded in a scene many features are attached to the object:

- Object dissolve envelop,
- Object metamorph (no multi-targeting) envelop,
- Motion,
- Parenting,
- Targeting,
- Unseen by rays (Lightmaps only),
- Cast shadows (Lightmaps only).

2.2] LW Surfaces,

LW surfaces determine how a particular set of polygons will render on screen, nX correctly interpret these values in LW surfaces:

- Color texture level [any mapping type],
- Reflectivity texture level [envirronment mapping],

- Transparency texture level [any mapping type],
- Additive blending,
- Smoothing (with max smoothing angle),
- Double sided,
- Transparency percent,
- Diffuse percent,
- Specular percent and glosiness power,
- Luminosity percent,
- Color filter (for Lightmaps only),
- Sharp terminator (used to specify flat shading),
- Render outlines only check,

Please note that all these features can be combined together and thus allow very complex rendering to be performed!

2.3] LW Lights,

Nx can currently handle ambient, point, spot and linear lights both in realtime and lightmapped renders.
These lights can have the following features activated:

- Light intensity with envelop,
- Intensity falloff with envelop,
- Spot cone angle with envelop,
- Spot soft edge angle with envelop,
- Lens flare with intensity and intensity envelop,
- Shadow type (Lightmaps only).

2.4] Misc. features,

Camera is interpreted with respect to its viewport size and FOV (with envelop).
nX also has a custom Scene dissolve.

2.5] Displacement PLUGIN: Morph-GIZMO,

nX supports displacement plugin 'Morph-Gizmo'.

2.6] Displacement PLUGIN: Motion Designer MD-Plug.

nX supports displacement plugin 'MDPlug' from Motion Designer version 1.0 upto version 2.01.

Bonus] HOW TO SETUP A SURFACE IN LIGHTWAVE

SELECTING A SHADING MODE

Default nX behavior is to not shade any polygons. Therefore if you want your surface to be flat shaded then you must activate 'SHARP TERMINATOR' in surface panel.
Gouraud shading is enabled via the 'SMOOTHING' button in surface panel.
--> SMOOTHING and FLAT SHADING are mutually exclusive! Preference is given to Flat.

ADDING TEXTURES TO THE SURFACE

All supported textures are activated using the 'T' button for the corresponding attribute. So, to add a color texture map one would add it via the 'T' button to the right of the 'Surface Color' field in surface panel.
The same apply to other supported levels.

Supported texture levels:

- Surface Color (MAPPING),

- Reflectivity (EVMAP),
This add an envirronment mapping texture to the surface.
One most correct way to specify a reflectivity map is to set
the reflection percentage to a non 0 value and specifying the
texture in reflection image panel. Both way are supported.

- Transparency (ALPHATEX),

- Bump (BUMP)
WARNING: You must have an evmap defined for bump mapping!
If no evmap was defined when using bump mapping the default nX evmap will be used.

All textures levels are fully UV independent. This mean you can use any mode of
mapping for each level, for example MAPPING via 'Planar Image Map' + EVMAP.
Since v1.7, some Fractal Noise and Crumple procedural textures are supported.


EXTENDED SURFACE RENDERSTATES

In order to have a more complete control on the rendering of surfaces nX uses
Surface name keywords. This mean that when you type (anywhere) in a surface name
one of the following keywords you'll turn on its corresponding behavior:
(You can, of course, combinate them ...)

Here is a list of nX keywords:

[BUMP]
-> old but still supported method to specify bump mapping,

[ZBUFFER]
-> specify that surface is to be Zbuffered,

[WM]
-> toggle wide map on,

[ADDEVMAP], If your double-texture mapping looks too dark try this one
-> changes the way nX combine color and reflection maps from
multiply to additive when using multi-texturing.
HINT: try it if you find your COLORMAP+EVMAP too dark...

The following are not legacy nX keywords but were introduced to be
compatible with Odin/Gods's G3E:

LGT_x[+y][+...]
-> restrict lightning computations to lights n°x,y,...,
CHROMA
-> specify chroma keying (black channel) for surface
(you should use alpha maps instead)


Note: Of course, make sure you did not use one of these keywords if one
of your surfaces is not behaving the way you were expecting.

USING ALPHA AND TRANSPARENCIES

You can add some alpha shading or transparency to your surface in many different
ways. nX supports ALPHATEX, additive shading and surface's transparency percentage to
perform alpha blending.
You can indirectly alpha shade your surface using the 'Object Dissolve'.


- Textures from this scene by Nitryk/COCOON -


- Transparency textures & 1024x1024 textures-


- Unlimited parenting and dissolve envelops (textures by Nitryk) -


- Realtime physics trough Motion Designer -

3) nX specific features:
 

SECTION TO BE COMPLETED

USING LIGHTMAPS:

USING PARTICLE EMITERS:

USING OBJECT EFFECTORS:

USING ISOSURFACES:

USING MOTION TRAILS:


- Iso surfaces-