ReflectiveSurface

The ReflectiveSurface node allows you to generate mirror-like reflections, translucency, transmission and more from ScanlineRender’s ray-tracing architecture.

To learn more about the workflow, see ReflectiveSurface: Generating Reflections.

Note:  Once added into your node graph, the node name appears as Reflection rather than ReflectiveSurface. Reflection is also the class name for scripting purposes.

Inputs and Controls

Connection Type

Connection Name

Function

Input

unnamed

An unnamed input for connecting the ReflectiveSurface node to your node graph.

refl

An optional input to control reflection.

trans

An optional input to control transmission.

Control (UI)

Knob (Scripting)

Default Value

Function

Reflection

Visibility sides_mode both-sides

Choose whether material is visible for front faces, back faces or both sides. Also toggle:

Camera - material is visible to camera rays

Shadow - material is visible to shadow

Spec - material is visible to specular reflection rays

Diff - material is visible to diffuse reflection rays

Trans - material is visible to transmissed (or refracted) rays

Reflection Percentage reflection_percentage 1 Amount of light reflection vs. transmission. From 0% - 100%, where 100% represents a mirror or chrome surface and 0% represents clear glass or plastic. Note that even at 0% reflectance the surface will reflect some light at acute angles due to the fresnel effect when the Fresnel Power control is > O.
Reflection Tint reflection_tint 1 Tint color of the reflection.
Transmission Tint transmission_tint 1 Tint color of the transmission.
Fresnel Bias fresnel_bias 0.5 Fresnel effect bias (power)
Index of Refraction (ior) index_of_refraction 1.57 Index-of-refraction value of surface. Here’s a list of commonly used values: vacuum 1.0, air @ stp 1.00029, ice 1.31, water @ 20c 1.33, acetone 1.36, ethyl alcohol 1.36, fluorite 1.433, fused quartz 1.46, glycerine 1.473, glass low 1.52, glass med 1.57 , glass high 1.62, diamond 2.417.
Dieletric Priority dielectric_priority 0

Set the priority order of this material where the lower the number the higher the priority. Values 0 or lower effectively disable dielectric priority. When multiple surfaces are intersected along a transmission ray this priority setting determines which material shader takes precedence. When the ray encounters a surface with a higher value the surface is ignored since it is at a lower priority.

The canconical example of this is a closed mesh representing a liquid inside a closed mesh representing a drinking glass. The liquid mesh perimeter is allowed tooverlap the space inside the drinking glass wall thickness, and the liquid given a lower priority (a higher #) vs. the glass. When the transmission ray encounters the liquid mesh while evaluating transmission through the glass the liquid mesh is ignored since it has a lower priority. When the transmission ray exits the glass and enters the liquid there is no longer a conflict.

The same can be done with objects ‘embedded’ inside a solid, like a sphere representing an air bubble inside a solid glass cube. The sphere is set to ior=l.O(air), and a higher priority than the cube, which is set to ior=1.57(glass).

Surface Sides sided_mode prim-attrib

Hint to renderer that the surface backface should be shaded like the front, ie a thin double-sided surface. The default behavior is to retrieve the sides info from the primitive ‘doubleSided’ attribute, if it exists.

This hint is important for the handling of normals on the surface backface especially when determining reflection/refraction angles.

Set to 'Double-Sided' if the surface is open like a card mesh and both front and back sides should be shaded.

Set to 'Single-Sided' if the surface is closed like a cube or character mesh where only front faces should be shaded and backfaces are culled.

Opacity Src Chan opacity_channel on, rgba.alpha Channel from the mapD input to use as the source for surface opacity.
Opacity Factor opacity_factor 1 Global opacity factor (0..1). This is additional opacity/transparency added on top of any existing opacity (premulting) present in the surface’s color and opacity values.
Presence Src Chan presence_channel disabled, none Channel from the mapD input to use as the source for the ‘presence’ weight of this surface. This can also be thought of as the sample weight coverage
Blend Mode blend_mode over

Blend operation used when combining this surface’s color result with the next surface’s color further away in depth. This is renderer dependent - some renderers may support all, none, or only some of these blend operations.

none - surface result is ignored

replace - surface result replaces all color channels (no blending)

over - surface result is blended over the next surface using the opacity result

mask - inverse punch out using the opacity result

plus - per-channel addition

max - per-channel maximum

min - per-channel minimum