In the real world everything that we see is a simple reflection of light, from a light source into your eyes - vision is all about reflections. It sounds simple, but a simulation of this through CG is very complex. Today, every 3d application supports reflections, so why would you need custom access to the reflections simulation process? Let's take a look at the following pictures: a standard Lightwave render on the left, HyperSmooth on the right.
As you have doubtless experienced, LW reflections often get too bright. The reason for this "blowing out" of the reflection is that the light rays are treated as additive inside the render engine - this means that the reflected color is always added to the base surface color. The problem is especially apparent on very shiny surfaces with dark objects - this makes the reflection of dark objects far brighter than the real object appears.
Metals, water, plastics and other reflective materials are, to varying degrees, like mirrors - they show off the environment around them through reflection. But these objects only look realistic if the environment that they reflect is credible as well. You can spend a lot of time setting up your environment to look just how you want it, and then find that your hero object needs work to make it reflect the environment properly. So how does HyperSmooth handle the complexity of advanced reflection processing, giving you the power you need? The figure below illustrates the key elements of the HyperSmooth process.
The reflection simulation process begins with the definition of the reflection surface. This includes the mirror value, surface micro-structure affecting the diffuse vs. specular reflection style, recursion depth and the number of sampling rays. Then the reflected color is processed through various reflection modes, and several color filters. In the end, one can still modify all the basic surface properties on a custom basis.
In order to achieve a photo-real output, and get the maximum benefit from this plugin, it's helpful to understand the way light behaves in the real world. As explained earlier, in reality there are no unique types of reflections such as diffuse and specular - no do light rays fly around with labels like "diffuse", "specular", "radiosity" or "caustics" attached to them. A light ray is a light ray, and the only reason you see any object at all is because it is reflecting light from a light source - this explains why the reflective properties of a surface are so important when creating realistic renders.
On a perfectly smooth surface, the reflection looks perfectly sharp. The more bumpy a surface becomes the more soft / blurry / diffused the reflection. The only relevant parameter to go with real reflections is the diffuse level. Indeed specular reflections are just normal sharp, or zero diffused reflections. Also as the picture suggests, the more bumpy the surface, the more diffused and less intensive the reflection.
HyperSmooth simulates the behaviour of reflections by laying a micro-bump over the basic structure of a surface. Unlike the traditional bump textures, micro-bumps are invisible and only affect the reflection channel. By specifying the type and strength of the micro-bump the user can control the type of reflection - whether it is soft or sharp, strong or weak, how it fades with the distance, etc. HyperSmooth uses a process of stochastic sampling, where the user specifies the number of rays per pixel that will be evaluated. This gives smooth, high quality reflections. As a result, you get truly diffused reflections based on the micro-bump texture:
The following pictures present an unique shape, softness and falloff for each procedural texture:
LEFT: turbulence, MIDDLE: st_clouds, RIGHT: wood
The render-time depends mainly on the number of ray samples selected. In these particular scenes: 16 rays x 8 AA passes, rendertime 5min 52s on Intel P4 1.6 Ghz.
This type of reflection is often used when you don't have time to build all the details of a scene around the object you want to render, but want to make it look like it sits within a "real" environment. A similar shortcut is the use of the specular channel and specular highlights. These are used as a quick way of fooling the viewer into thinking he can see the reflection of a lightsource. But these techniques are only simple approximations, and are merely the reflection of a round point / spot light source. Apart from the Sun or a very distant light, most light sources are extended (fluorescent panels, light through windows, etc), and representing these as a smeared spot of white light in the specular channel detracts from the photo-realism of your render.
The best way of achieving photo-real renders is to forget about the specular channel entirely, and simulate the highlights with real reflections - raytraced or environmental. HyperSmooth has been made for exactly this type of render, providing you with all the control you need over how the reflection looks.
HyperSmooth's reflection environment works on per surface basis, and can be considered a default LW color texture. The whole setup is done in a texture editor, supporting all texture types, unlimited number of layers, all blending modes, size, position, rotation of the reflection environment, everything to your liking.
The main limitation of the traditional reflection systems is that to make the reflections looking the way you really want them can take a huge amount of effort - it requires lots of set up and tweaking of surface properties, the scene environment and lighting. With HyperSmooth the full power of the reflection processing it offers is available to you in a simple, flexible interface that is fully integrated with LightWave's surface editor, procedural texture set and the rendering engine. By using HyperSmooth's filters, you can change reflected colors and the sharpness of the reflection directly in the plugin interface, without having to make a single change anywhere else in the surface shading, lighting or scene environment.
LEFT: HyperSmooth's default reflection, the replace blending mode.
MIDDLE: the effect of the surface factor filter, which turns reflection into the color of the surface, while preserving its original intensity.
RIGHT: the combination of the surface factor filter, and a custom reflection fading. The reflection strength is controlled by a gradient, which fades-out the dark colors and thus simulates a high-dynamic-range intensity of the reflected light.
This feature does exactly what it says - it creates a soft bump out of any texture. It gives you access to an entirely new set of bump styles. The pictures below show you the difference a soft bump makes on the vein procedural. A zero softness on the first picture is gradually increased on the next two. HyperSmooth gives you more control over the output, letting you achieve the look you want.
Compared to the traditional ocean shaders, the main benefit HyperSmooth offers to its users, is total control and flexibility. With HyperSmooth the water surface need be nothing more than a LightWave default reflective surface, which can be textured, set to receive shadows, radiosity and caustics as required, and has no limitations as far as the geometry is concerned.
HyperSmooth gives you the ease of use of the traditional LightWave procedural texture engine, as well as access to texture / image maps in any channel - you can even have multiple instances of HyperSmooth, on a single surface to simulate variety of waves. All this, coupled with the advanced reflection processing HyperSmooth offers, while delivering unmatched quality of output.
Lightwave 7.x - 8.x
WinNT, Win2000, OS 9, OS X
At least 128mb ram recommended