REDRenderShader.h

Macro Definitions

RED_LIGHT_DIRECTIONAL

RED_LIGHT_BEAM

RED_LIGHT_SUN_LIGHT

RED_LIGHT_MOON_LIGHT

RED_LIGHT_POINT

RED_LIGHT_AREA

RED_LIGHT_POINT_SPOT

RED_LIGHT_AREA_SPOT

RED_LIGHT_NO_LIGHT

RED_LIGHT_AMBIENT_LIGHT

RED_LIGHT_SKY_LIGHT

RED_LIGHT_PHYSICAL_LIGHT

RED_SHAD_TARGET_LIGHT_DIRECTIONAL

RED_SHAD_TARGET_LIGHT_BEAM

RED_SHAD_TARGET_LIGHT_POINT

RED_SHAD_TARGET_LIGHT_AREA

RED_SHAD_TARGET_LIGHT_POINT_SPOT

RED_SHAD_TARGET_LIGHT_AREA_SPOT

RED_SHAD_TARGET_LIGHT_NO_LIGHT

RED_SHAD_TARGET_LIGHT_SKY_LIGHT

RED_SHAD_TARGET_REFLECTION_VECTOR

RED_SHAD_TARGET_INDIRECT_REFLECTION_VECTOR

RED_SHAD_TARGET_REFRACTION_VECTOR

RED_SHAD_TARGET_INDIRECT_REFRACTION_VECTOR

RED_SHAD_TARGET_REFLECTION_CUTOFF

RED_SHAD_TARGET_INDIRECT_REFLECTION_CUTOFF

RED_SHAD_TARGET_REFRACTION_CUTOFF

RED_SHAD_TARGET_INDIRECT_REFRACTION_CUTOFF

RED_SHAD_TARGET_GI_DIFFUSE_COLOR

RED_SHAD_TARGET_GI_REFLECTION_COLOR

RED_SHAD_TARGET_GI_TRANSMISSION_COLOR

RED_SHAD_TARGET_GI_NORMAL

RED_SHAD_TARGET_GI_NORMAL_INDIRECT

RED_SHAD_TARGET_SOFT_KILL

RED_SHAD_TARGET_BSDF

RED_SHAD_TARGET_ANY_LIGHT

RED_SHAD_TARGET_ALL

RED_L0

RED_LALL

RED_LP

RED_LS

RED_LD

RED_LB

RED_LA

RED_LE

RED_LK

RED_GID

RED_GIR

RED_GIT

RED_GIN

RED_GIN_IND

RED_VMxTy

RED_SHADER_LIGHT_ATTENUATION

RED_SHADER_LIGHT_SHADOW_IMAGE

RED_SHADER_LIGHT_RANGE

RED_SHADER_LIGHT_SPOT_FALLOFF

RED_SHADER_LIGHT_BEAM_FALLOFF

RED_SHADER_LIGHT_POS

RED_SHADER_LIGHT_SIGHT

RED_SHADER_LIGHT_TOP

RED_SHADER_LIGHT_RIGHT

RED_SHADER_LIGHT_PROJUV

RED_SHADER_LIGHT_AMBCOL

RED_SHADER_LIGHT_DIFCOL

RED_SHADER_LIGHT_SPECOL

RED_SHADER_INDIRECT_FACE_CULLING

RED_SHADER_LIGHT_FRAGMENT_POS_JITTER

RED_SHADER_LIGHT_AREA_SAMPLE_POS

RED_SHADER_LIGHT_SKY_SAMPLE_POS_JITTER

RED_SHADER_LIGHT_SKY_SMOOTH_CUBE

RED_SHADER_INDIRECT_RAY_POS

RED_SHADER_INDIRECT_RAY_DIR

RED_SHADER_INDIRECT_RAY_TRIANGLE

RED_SHADER_POLYGON_FACING

Namespaces

RED

Types

RenderShaderData

RenderShader

Detailed Description

Header file describing the RED::RenderShader class, that is the shader class leveraging programmable graphics hardware.

Macro Definition

RED_LIGHT_DIRECTIONAL

Type of a light source identifying a directional light. A directional light is defined by the light source axis system. It emits its light in the sight axis direction. A directional light has no attenuation equation, and emits lights in the whole scene space.

RED_LIGHT_BEAM

Type of a light source identifying a light beam. A light beam is a directional light whose effect area is reduced to a cylindrical region of space. The light source axis system defines the cylinder referential. The beam light may have an attenuation.

RED_LIGHT_SUN_LIGHT

Type of a light source identifying a physical sun light.

RED_LIGHT_MOON_LIGHT

Type of a light source identifying a physical moon light.

RED_LIGHT_POINT

Type of a light source identifying an omnidirectional light.

RED_LIGHT_AREA

Type of a light source identifying an area area light source. An area light source is made of lighting and shadowing samples. These lights produce smooth shadowing effects.

RED_LIGHT_POINT_SPOT

Type of a light source identifying a point light spot. The spot uses the light source axis system . Spot direction is along the sight axis of the light’s system. The maximal angle of a spot falloff is RED_PI/2 (the sum of the spot angle and falloff).

RED_LIGHT_AREA_SPOT

Type of a light source identifying an area light spot. Is similar to the RED_LIGHT_POINT_SPOT. The apex of the spot cone is located at the center of the area light sphere, and therefore cuts its effect in its containment sphere.

RED_LIGHT_NO_LIGHT

Flag used by the RenderShader to indicate that a parameter is not to be used with any kind of light.

RED_LIGHT_AMBIENT_LIGHT

Type of a light indicating an ambient light.

RED_LIGHT_SKY_LIGHT

Type of a light indicating a sky light.

RED_LIGHT_PHYSICAL_LIGHT

Type of a light indicating a physical light.

RED_SHAD_TARGET_LIGHT_DIRECTIONAL

Shader target flag indicating that we only target directional lights parameters.

RED_SHAD_TARGET_LIGHT_BEAM

Shader target flag indicating that we only target beam lights parameters.

RED_SHAD_TARGET_LIGHT_POINT

Shader target flag indicating that we only target point lights parameters.

RED_SHAD_TARGET_LIGHT_AREA

Shader target flag indicating that we only target area lights parameters.

RED_SHAD_TARGET_LIGHT_POINT_SPOT

Shader target flag indicating that we only target point spot lights parameters.

RED_SHAD_TARGET_LIGHT_AREA_SPOT

Shader target flag indicating that we only target area spot lights parameters.

RED_SHAD_TARGET_LIGHT_NO_LIGHT

Shader target flag indicating that we only target parameters that are not related to lighting.

RED_SHAD_TARGET_LIGHT_SKY_LIGHT
RED_SHAD_TARGET_REFLECTION_VECTOR

Shader target flag indicating that we only focus on direct reflection vector calculation parameters.

RED_SHAD_TARGET_INDIRECT_REFLECTION_VECTOR

Shader target flag indicating that we only focus on indirect reflection vector calculation parameters.

RED_SHAD_TARGET_REFRACTION_VECTOR

Shader target flag indicating that we only focus on direct refraction vector calculation parameters.

RED_SHAD_TARGET_INDIRECT_REFRACTION_VECTOR

Shader target flag indicating that we only focus on indirect refraction vector calculation parameters.

RED_SHAD_TARGET_REFLECTION_CUTOFF

Shader target flag indicating that we only focus on direct reflection cutoff calculation parameters.

RED_SHAD_TARGET_INDIRECT_REFLECTION_CUTOFF

Shader target flag indicating that we only focus on indirect reflection cutoff calculation parameters.

RED_SHAD_TARGET_REFRACTION_CUTOFF

Shader target flag indicating that we only focus on direct refraction cutoff calculation parameters.

RED_SHAD_TARGET_INDIRECT_REFRACTION_CUTOFF

Shader target flag indicating that we only focus on indirect refraction cutoff calculation parameters.

RED_SHAD_TARGET_GI_DIFFUSE_COLOR

Shader target used to identify the diffusion color used for GI computations.

RED_SHAD_TARGET_GI_REFLECTION_COLOR

Shader target used to identify the reflection color used for GI computations.

RED_SHAD_TARGET_GI_TRANSMISSION_COLOR

Shader target used to identify the transmission color used for GI computations.

RED_SHAD_TARGET_GI_NORMAL

Shader target used to identify the normal direction used for GI computations.

RED_SHAD_TARGET_GI_NORMAL_INDIRECT

Shader target used to identify the normal direction used for GI computations.

RED_SHAD_TARGET_SOFT_KILL

Shader target used to identify software ray-tracer pixel kill shaders that mimic the behavior of the shader ‘KIL’ statement. This target goes to a regular rendering pass and not to the RED::MTL_RAYTRACE pass. Note that this target can’t be associated to any state shader data. It only describes the parameters that are needed to decide on killing a fragment or not.

RED_SHAD_TARGET_BSDF

Shader target used by BSDF shaders. Those shaders are needed to support path tracing rendering in RED. Currently, this target is reserved for internal use.

RED_SHAD_TARGET_ANY_LIGHT

Material target flat indicating that we focus on accessing parameters from any kind of light.

RED_SHAD_TARGET_ALL

Combination of all shader targets.

RED_L0

Shortcut version of some useful shader targets.

RED_LALL

Shortcut version of some useful shader targets.

RED_LP

Shortcut version of some useful shader targets.

RED_LS

Shortcut version of some useful shader targets.

RED_LD

Shortcut version of some useful shader targets.

RED_LB

Shortcut version of some useful shader targets.

RED_LA

Shortcut version of some useful shader targets.

RED_LE

Shortcut version of some useful shader targets.

RED_LK

Shortcut version of some useful shader targets.

RED_GID

Shortcut version of some useful shader targets.

RED_GIR

Shortcut version of some useful shader targets.

RED_GIT

Shortcut version of some useful shader targets.

RED_GIN

Shortcut version of some useful shader targets.

RED_GIN_IND

Shortcut version of some useful shader targets.

RED_VMxTy(matx, uv)

Vertex program selection macro: indicates a number of matrix channels and texture channels to transform.

RED_SHADER_LIGHT_ATTENUATION

Parameter bound by RED::RenderShader::BindLight

.

Parameter used in all shaders using the light source attenuation ramp encoded as a mono dimension texture (however, sampled as RECT).

RED_SHADER_LIGHT_SHADOW_IMAGE

Parameter bound by RED::RenderShader::BindLight

.

Parameter used in all shaders that need an access to the per pixel shadow image to apply to the resulting shader pixel color.

RED_SHADER_LIGHT_RANGE

Parameter bound by RED::RenderShader::BindLight

.

Parameter used in all shaders that need an access to the range of the light source.

RED_SHADER_LIGHT_SPOT_FALLOFF

Parameter bound by RED::RenderShader::BindLight

.

Parameter used in all shaders that need an access to the falloff texture of a spot to apply to the resulting shader pixel color.

RED_SHADER_LIGHT_BEAM_FALLOFF

Parameter bound by RED::RenderShader::BindLight

.

Parameter used in all shaders that need an access to the falloff texture of a beam light to apply to the resulting shader pixel color.

RED_SHADER_LIGHT_POS

Parameter bound by RED::RenderShader::BindLight

.

Parameter used in all shaders that need an access to the light axis system.

RED_SHADER_LIGHT_SIGHT

Parameter bound by RED::RenderShader::BindLight

.

Parameter used in all shaders that need an access to the light axis system.

RED_SHADER_LIGHT_TOP

Parameter bound by RED::RenderShader::BindLight

.

Parameter used in all shaders that need an access to the light axis system.

RED_SHADER_LIGHT_RIGHT

Parameter bound by RED::RenderShader::BindLight

.

Parameter used in all shaders that need an access to the light axis system.

RED_SHADER_LIGHT_PROJUV

Parameter bound by RED::RenderShader::BindLight

.

Parameter used in all shaders that need an access to the light uv projector matrix.

RED_SHADER_LIGHT_AMBCOL

Parameter bound by RED::RenderShader::BindLight

.

Parameter used in all shaders that need an access to the light ambient color.

RED_SHADER_LIGHT_DIFCOL

Parameter bound by RED::RenderShader::BindLight

.

Parameter used in all shaders that need an access to the light diffuse color.

RED_SHADER_LIGHT_SPECOL

Parameter bound by RED::RenderShader::BindLight

.

Parameter used in all shaders that need an access to the light specular color.

RED_SHADER_INDIRECT_FACE_CULLING
RED_SHADER_LIGHT_FRAGMENT_POS_JITTER

Parameter bound by RED::RenderShader::BindLight

.

Name of the parameter used to bind the fragment position jittering data for an area or sky light source.

RED_SHADER_LIGHT_AREA_SAMPLE_POS

Parameter bound by RED::RenderShader::BindLight

.

Name of the parameter used to bind the sample jittering data for an area light source.

RED_SHADER_LIGHT_SKY_SAMPLE_POS_JITTER

Parameter bound by RED::RenderShader::BindLight

.

Name of the parameter used to bind the sample jittering data for a sky light source.

RED_SHADER_LIGHT_SKY_SMOOTH_CUBE

Parameter bound by RED::RenderShader::BindLight

.

Name of the parameter used to bind the sky texture smooth cube used for diffuse GPU shading.

RED_SHADER_INDIRECT_RAY_POS

Parameter bound by RED::RenderShader::BindRayVsTriangle

.

Used for the binding of

RED::RenderShaderParameter::REF_RAY_STARTING_POS_IMAGE.

RED_SHADER_INDIRECT_RAY_DIR

Parameter bound by RED::RenderShader::BindRayVsTriangle

.

Used for the binding of

RED::RenderShaderParameter::REF_RAY_INCIDENT_DIR_IMAGE.

RED_SHADER_INDIRECT_RAY_TRIANGLE

Parameter bound by RED::RenderShader::BindRayVsTriangle

.

Used for the binding of

RED::RenderShaderParameter::REF_RAY_TRIANGLE_IMAGE.

RED_SHADER_POLYGON_FACING

Parameter used in many built-in engine vertex / pixel shaders. Used to specify which face (+1,+1,+1,+1) or (-1,-1,-1,-1) of the geometry is currently rendered.