# I3DExRaytracer Struct Reference
[External Interfaces]

Inheritance diagram for I3DExRaytracer:

List of all members.

## Public Member Functions
virtual boolean MCCOMAPI | LightBeam (LightBeamParams &params)=0
virtual boolean MCCOMAPI | GetRayColor (TMCColorRGBA &resColor, const RayHitParameters &rayHitParams, const RTLevelInfo &level, const TVector2 &screenCoordinates, RendContext &rendContext, RayColorFlags flags)=0
virtual int32 | GetLightCount ()=0
virtual boolean MCCOMAPI | GetLightIntensity (DirectLighting &lighting, int32 lightIndex, const LightingContext &lightingContext, boolean withShadow, boolean lightFromBehind)=0
virtual void MCCOMAPI | CalcReflections (ReflectionIO &reflectionIO, const LightingContext &lightingContext)=0
virtual void MCCOMAPI | CalcTransparency (RefractionIO &transparencyIO, const LightingContext &lightingContext)=0
virtual void MCCOMAPI | CalculateCaustic (TMCColorRGB &resColor, const LightingContext &lightingContext)=0
virtual void MCCOMAPI | GetIndirectLighting (TMCColorRGB &resColor, real &ambientOcclusionFactor, const LightingContext &lightingContext)=0
virtual void MCCOMAPI | GetSubsurfaceScattering (TMCColorRGB &subsurfaceColor, const TMCColorRGB &currentColor, const LightingContext &lightingContext, const ShadingOut &shading)=0
virtual void MCCOMAPI | GetBackGroundColor (TMCColorRGBA &color, boolean &fullAreaDone, const Ray3D &ray, const TVector2 &uv, boolean showbackdrop, boolean showBackGround, boolean indirectLight)=0
virtual void MCCOMAPI | GetLightDirection (TVector3 &lightDirection, int32 lightIndex, const LightingContext &lightingContext)=0
virtual void MCCOMAPI | GetLightSource (I3DShLightsource **source, int32 lightIndex)=0
virtual const IllumSettings &MCCOMAPI | GetIllumSettings ()=0
virtual const RendEnv &MCCOMAPI | GetRendEnv ()=0
virtual real MCCOMAPI | GetSceneMagnitude ()=0
virtual uint32 MCCOMAPI | GetRandomSeed ()=0
virtual void MCCOMAPI | SetRandomSeed (const uint32 seed)=0
virtual void MCCOMAPI | CalcTransparency2 (RefractionIO &transparencyIO, const LightingContext &lightingContext, TAbsorptionFunction *absorptionFunction)=0
virtual boolean MCCOMAPI | GetRayColor2 (TMCColorRGBA &resColor, const RayHitParameters &rayHitParams, const RTLevelInfo &level, const TVector2 &screenCoordinates, RendContext &rendContext, TAbsorptionFunction *absorptionFunction, RayColorFlags flags)=0
virtual void MCCOMAPI | GetBackGroundColor2 (TMCColorRGBA &color, boolean &fullAreaDone, const Ray3D &ray, const TVector2 &uv, BackgroundRenderingFlags flags)=0
virtual void MCCOMAPI | CalculateInScattering (TMCColorRGBA &outInScatteredColor, real absorptionCoef, const LightingContext &lightingContext, const TTransparencyParameters &transparencyParams, const TVector3 &direction, const real distance)=0

## Detailed Description

This interface is usually implemented by a final renderer or by an object created by a final renderer. It is passed to the shaders so that they can use it to calculate the lighting.

## Member Function Documentation

virtual void MCCOMAPI I3DExRaytracer::CalcReflections | ( | ReflectionIO & | reflectionIO,
|  | const LightingContext & | lightingContext |
| ) |  |  | `[pure virtual]`

Calculates the light the comes from the reflection

Parameters:

  | reflectionIO | : the reflection data
  | lightingContext | : information about the hit point

virtual void MCCOMAPI I3DExRaytracer::CalcTransparency | ( | RefractionIO & | transparencyIO,
|  | const LightingContext & | lightingContext |
| ) |  |  | `[pure virtual]`

Calculates the light the comes from the transparency

Parameters:

  | transparencyIO | : the transparency data
  | lightingContext | : information about the hit point

virtual void MCCOMAPI I3DExRaytracer::CalcTransparency2 | ( | RefractionIO & | transparencyIO,
|  | const LightingContext & | lightingContext,
|  | TAbsorptionFunction * | absorptionFunction |
| ) |  |  | `[pure virtual]`

Calculates the light the comes from the transparency

Parameters:

  | transparencyIO | : the transparency data
  | lightingContext | : information about the hit point

virtual void MCCOMAPI I3DExRaytracer::CalculateCaustic | ( | TMCColorRGB & | resColor,
|  | const LightingContext & | lightingContext |
| ) |  |  | `[pure virtual]`

Calculates the caustics at a given point.

Parameters:

  | resColor | : the caustic light color.
  | lightingContext | : information about the hit point.

virtual void MCCOMAPI I3DExRaytracer::CalculateInScattering | ( | TMCColorRGBA & | outInScatteredColor,
|  | real | absorptionCoef,
|  | const LightingContext & | lightingContext,
|  | const TTransparencyParameters & | transparencyParams,
|  | const TVector3 & | direction,
|  | const real | distance |
| ) |  |  | `[pure virtual]`

Calculates the inScattering along a ray.

Parameters:

  | outInScatteredColor | The resulting scattering color.
  | absorptionCoef | The coefficient of absorption.
  | lightingContext | The lighting context at the starting point of the ray.
  | direction | Direction of the ray.
  | distance | Distance along the ray.

virtual void MCCOMAPI I3DExRaytracer::GetBackGroundColor | ( | TMCColorRGBA & | color,
|  | boolean & | fullAreaDone,
|  | const Ray3D & | ray,
|  | const TVector2 & | uv,
|  | boolean | showbackdrop,
|  | boolean | showBackGround,
|  | boolean | indirectLight |
| ) |  |  | `[pure virtual]`

Calculate the color of the background/backdrop seen through a particular ray. Note that the backdrop should only be visible through direct ray from the camera.

The atmosphere is also applied on the color along the ray.

Parameters:

  | color | : the color returned
  | fullAreaDone | : returns true if antialising has been performed
  | ray | : the ray
  | uv | : The screen coordinates
  | showbackdrop | : True if the backdrop should be taken into account (normally only for rays coming directly from that Camera)
  | showBackGround | : True if the backgroundshould be taken into account
  | indirectLight | : True if this is a ray used to calculate indirect lighting (for global illumination)

virtual void MCCOMAPI I3DExRaytracer::GetBackGroundColor2 | ( | TMCColorRGBA & | color,
|  | boolean & | fullAreaDone,
|  | const Ray3D & | ray,
|  | const TVector2 & | uv,
|  | BackgroundRenderingFlags | flags |
| ) |  |  | `[pure virtual]`

Calculate the color of the backdrop (note that this can be the color of the background component). This function can only be called for direct rays from the camera.

The atmosphere can also applied on the color along the ray (see flags).

Parameters:

  | color | : the color returned
  | fullAreaDone | : returns true if antialising has been performed
  | ray | : the ray
  | uv | : The screen coordinates
  | flags | : Flags that determine what is rendered (see BackgroundRenderingFlags).

virtual const IllumSettings& MCCOMAPI I3DExRaytracer::GetIllumSettings | ( |  | ) | `[pure virtual]`

Returns the current illumination settings of the renderer

virtual void MCCOMAPI I3DExRaytracer::GetIndirectLighting | ( | TMCColorRGB & | resColor,
|  | real & | ambientOcclusionFactor,
|  | const LightingContext & | lightingContext |
| ) |  |  | `[pure virtual]`

Computes the indirect lighting of a point by sampling the direction around its normal.

Parameters:

  | resColor | : the indirect diffuse lighting.
  | ambientOcclusionFactor | : the ambient occlusion factor of the hit point.
  | lightingContext | : information about the hit point.

virtual int32 I3DExRaytracer::GetLightCount | ( |  | ) | `[pure virtual]`

Returns the number of lights in the scene

virtual void MCCOMAPI I3DExRaytracer::GetLightDirection | ( | TVector3 & | lightDirection,
|  | int32 | lightIndex,
|  | const LightingContext & | lightingContext |
| ) |  |  | `[pure virtual]`

Returns the direction of a given light

Parameters:

  | lightDirection | Direction from the point to the light source.
  | lightIndex | Index of the light (should be inferior to the value returned by GetLightCount)
  | lightingContext | Information about the hit point

virtual boolean MCCOMAPI I3DExRaytracer::GetLightIntensity | ( | DirectLighting & | lighting,
|  | int32 | lightIndex,
|  | const LightingContext & | lightingContext,
|  | boolean | withShadow,
|  | boolean | lightFromBehind |
| ) |  |  | `[pure virtual]`

Calculates the lighting from one light for the current point.

Parameters:

  | lighting | intensity of the lighting
  | lightIndex | index of the light (should be inferior to the value returned by GetLightCount)
  | lightingContext | information about the hit point
  | withShadow | if true then the shadow are calculated
  | lightFromBehind | if true the light is calculated even if the light is behind the surface

Returns:
  True if the light is emitting light in that direction (without taking the shadows into account)

virtual void MCCOMAPI I3DExRaytracer::GetLightSource | ( | I3DShLightsource ** | source,
|  | int32 | lightIndex |
| ) |  |  | `[pure virtual]`

Returns the pointer to the instance of a light

Parameters:

  | source | return pointer
  | lightIndex | Index of the light (should be inferior to the value returned by GetLightCount)

virtual uint32 MCCOMAPI I3DExRaytracer::GetRandomSeed | ( |  | ) | `[pure virtual]`

Returns the current random seed. If it is used to generate random numbers, you have to update the seed in the raytracer via SetRandomSeed().

virtual boolean MCCOMAPI I3DExRaytracer::GetRayColor | ( | TMCColorRGBA & | resColor,
|  | const RayHitParameters & | rayHitParams,
|  | const RTLevelInfo & | level,
|  | const TVector2 & | screenCoordinates,
|  | RendContext & | rendContext,
|  | RayColorFlags | flags |
| ) |  |  | `[pure virtual]`

Returns the color of a ray given in RayHitParameters in resColor

Parameters:

  | resColor | : The color that is returned
  | rayHitParams | : The parameters of the ray
  | level | : The level of reflection/transparency
  | screenCoordinates | : The coordinates of the point on the screen whose color depends on that ray.
  | rendContext | : return the number of rays used to evaluate this sample and the current random seed
  | flags | : Flags to control what should be taken into account in the shading of the hit point.

virtual boolean MCCOMAPI I3DExRaytracer::GetRayColor2 | ( | TMCColorRGBA & | resColor,
|  | const RayHitParameters & | rayHitParams,
|  | const RTLevelInfo & | level,
|  | const TVector2 & | screenCoordinates,
|  | RendContext & | rendContext,
|  | TAbsorptionFunction * | absorptionFunction,
|  | RayColorFlags | flags |
| ) |  |  | `[pure virtual]`

Returns the color of a ray given in RayHitParameters in resColor

Parameters:

  | resColor | : The color that is returned
  | rayHitParams | : The parameters of the ray
  | level | : The level of reflection/transparency
  | screenCoordinates | : The coordinates of the point on the screen whose color depends on that ray.
  | rendContext | : return the number of rays used to evaluate this sample and the current random seed
  | absorptionFunction | The absorption function along the ray (NULL if there is no absorption)
  | flags | : Flags to control what should be taken into account in the shading of the hit point.

virtual const RendEnv& MCCOMAPI I3DExRaytracer::GetRendEnv | ( |  | ) | `[pure virtual]`

Returns the current rendering environment

virtual real MCCOMAPI I3DExRaytracer::GetSceneMagnitude | ( |  | ) | `[pure virtual]`

Returns the magnitude of the scene. (right now it is a number between 1 and 1200). This can be used to determine the precision needed for the rendering. For instance, if you displace the point by a small displacement (epsilon) for precision reasons, you should multiply this small constant by the scene magnitude.

virtual void MCCOMAPI I3DExRaytracer::GetSubsurfaceScattering | ( | TMCColorRGB & | subsurfaceColor,
|  | const TMCColorRGB & | currentColor,
|  | const LightingContext & | lightingContext,
|  | const ShadingOut & | shading |
| ) |  |  | `[pure virtual]`

Computes the subsurface scattering in one point

Parameters:

  | subsurfaceColor | The resulting subsurface scattering color to add to the final color.
  | currentColor | The current final color.
  | lightingContext | Information about the hit point
  | shading | The shading information at the hit point.

virtual boolean MCCOMAPI I3DExRaytracer::LightBeam | ( | LightBeamParams & | params | ) | `[pure virtual]`

Traces a ray between two points (tmax should be normally finite). This is used by the shadow feature to calculate the shadows.

Parameters:

  | params | : The parameters describing the beam

Returns:
  True if there was a hit

virtual void MCCOMAPI I3DExRaytracer::SetRandomSeed | ( | const uint32 | seed | ) | `[pure virtual]`

Sets the random seed in the raytracer.

Parameters:

  | seed | the new seed

The documentation for this struct was generated from the following file:

- I3dExRenderFeature.h