# I3DShLightingModel Struct Reference
[Shell Interfaces]

List of all members.

## Public Member Functions
virtual void MCCOMAPI | ShadeAndLight2 (LightingDetail &result, const LightingContext &lightingContext, TAbsorptionFunction *absorptionFunction)=0
virtual void MCCOMAPI | CalculateDirectLighting (LightingDetail &result, const LightingContext &lightingContext)=0
virtual void MCCOMAPI | CalculateReflection (TMCColorRGB &reflectionColor, const LightingContext &lightingContext, const ShadingOut &shading)=0
virtual void MCCOMAPI | CalculateCaustics (TMCColorRGB &causticColor, const LightingContext &lightingContext, const ShadingOut &shading)=0
virtual void MCCOMAPI | CalculateIndirectLighting (TMCColorRGB &indirectDiffuseColor, real &ambientOcclusionFactor, const LightingContext &lightingContext, const ShadingOut &shading)=0
virtual void MCCOMAPI | CalculateTransparency (TMCColorRGB &resColor, real32 &outAlpha, const LightingContext &lightingContext, const ShadingOut &shading)=0
virtual void MCCOMAPI | CalculateAlpha (LightingDetail &result, const LightingContext &lightingContext, const ShadingOut &shading, TAbsorptionFunction *absorptionFunction)=0
virtual void MCCOMAPI | CalculateSubsurfaceScattering (TMCColorRGB &subsurfaceColor, const TMCColorRGB &currentColor, const LightingContext &lightingContext, const ShadingOut &shading)=0

## Detailed Description

This interface is passed to I3DExShader::ShadeAndLight2() and provides a default implementation for the lighting model calls.

## Member Function Documentation

virtual void MCCOMAPI I3DShLightingModel::CalculateAlpha | ( | LightingDetail & | result,
|  | const LightingContext & | lightingContext,
|  | const ShadingOut & | shading,
|  | TAbsorptionFunction * | absorptionFunction |
| ) |  |  | `[pure virtual]`

Default implementation of the Alpha channel.

Parameters:

  | resColor | The resulting color.
  | lightingContext | Info about the point being shaded and the lighting of the scene.
  | shading | The shading at this point.

virtual void MCCOMAPI I3DShLightingModel::CalculateCaustics | ( | TMCColorRGB & | causticColor,
|  | const LightingContext & | lightingContext,
|  | const ShadingOut & | shading |
| ) |  |  | `[pure virtual]`

Default implementation of the caustics.

Parameters:

  | causticColor | The resulting caustic color.
  | lightingContext | Info about the point being shaded and the lighting of the scene.
  | shading | The shading at this point.

virtual void MCCOMAPI I3DShLightingModel::CalculateDirectLighting | ( | LightingDetail & | result,
|  | const LightingContext & | lightingContext |
| ) |  |  | `[pure virtual]`

Default implementation of the direct lighting.

Parameters:

  | result | The result direct lighting.
  | lightingContext | Info about the point being shaded and the lighting of the scene.

virtual void MCCOMAPI I3DShLightingModel::CalculateIndirectLighting | ( | TMCColorRGB & | indirectDiffuseColor,
|  | real & | ambientOcclusionFactor,
|  | const LightingContext & | lightingContext,
|  | const ShadingOut & | shading |
| ) |  |  | `[pure virtual]`

Default implementation of the Global Illumination.

Parameters:

  | indirectDiffuseColor | The resulting indirect lighting color.
  | ambientOcclusionFactor | The ambient occlusion factor.
  | lightingContext | Info about the point being shaded and the lighting of the scene.
  | shading | The shading at this point.

virtual void MCCOMAPI I3DShLightingModel::CalculateReflection | ( | TMCColorRGB & | reflectionColor,
|  | const LightingContext & | lightingContext,
|  | const ShadingOut & | shading |
| ) |  |  | `[pure virtual]`

Default implementation of the reflections.

Parameters:

  | reflectionColor | The resulting reflection color.
  | lightingContext | Info about the point being shaded and the lighting of the scene.
  | shading | The shading at this point.

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

Default implementation of the Subsurface Scattering.

Parameters:

  | subsurfaceColor | The resulting subsurface scattering color to add to the final color.
  | currentColor | The current final color.
  | lightingContext | Info about the point being shaded and the lighting of the scene.
  | shading | The shading at this point.

virtual void MCCOMAPI I3DShLightingModel::CalculateTransparency | ( | TMCColorRGB & | resColor,
|  | real32 & | outAlpha,
|  | const LightingContext & | lightingContext,
|  | const ShadingOut & | shading |
| ) |  |  | `[pure virtual]`

Default implementation of the Transparency.

Parameters:

  | resColor | The resulting transparency color to add to the final color.
  | outAlpha | The resulting alpha.
  | lightingContext | Info about the point being shaded and the lighting of the scene.
  | shading | The shading at this point.

virtual void MCCOMAPI I3DShLightingModel::ShadeAndLight2 | ( | LightingDetail & | result,
|  | const LightingContext & | lightingContext,
|  | TAbsorptionFunction * | absorptionFunction |
| ) |  |  | `[pure virtual]`

Default implementation for the shading and lighting in one point.

Parameters:

  | result | The lighting that is returned.
  | lightingContext | Info about the point being shaded and the lighting of the scene.
  | absorptionFunction | The absorption function that corresponds to the current medium.

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

- I3DShShader.h