Path Tracer
Public Attributes | List of all members
aiLight Struct Reference

#include <light.h>

Public Attributes

C_STRUCT aiString mName
 
C_ENUM aiLightSourceType mType
 
C_STRUCT aiVector3D mPosition
 
C_STRUCT aiVector3D mDirection
 
C_STRUCT aiVector3D mUp
 
float mAttenuationConstant
 
float mAttenuationLinear
 
float mAttenuationQuadratic
 
C_STRUCT aiColor3D mColorDiffuse
 
C_STRUCT aiColor3D mColorSpecular
 
C_STRUCT aiColor3D mColorAmbient
 
float mAngleInnerCone
 
float mAngleOuterCone
 
C_STRUCT aiVector2D mSize
 

Detailed Description

Helper structure to describe a light source.

Assimp supports multiple sorts of light sources, including directional, point and spot lights. All of them are defined with just a single structure and distinguished by their parameters. Note - some file formats (such as 3DS, ASE) export a "target point" - the point a spot light is looking at (it can even be animated). Assimp writes the target point as a subnode of a spotlights's main node, called "<spotName>.Target". However, this is just additional information then, the transformation tracks of the main node make the spot light already point in the right direction.

Member Data Documentation

◆ mAngleInnerCone

float aiLight::mAngleInnerCone

Inner angle of a spot light's light cone.

The spot light has maximum influence on objects inside this angle. The angle is given in radians. It is 2PI for point lights and undefined for directional lights.

◆ mAngleOuterCone

float aiLight::mAngleOuterCone

Outer angle of a spot light's light cone.

The spot light does not affect objects outside this angle. The angle is given in radians. It is 2PI for point lights and undefined for directional lights. The outer angle must be greater than or equal to the inner angle. It is assumed that the application uses a smooth interpolation between the inner and the outer cone of the spot light.

◆ mAttenuationConstant

float aiLight::mAttenuationConstant

Constant light attenuation factor.

The intensity of the light source at a given distance 'd' from the light's position is

Atten = 1/( att0 + att1 * d + att2 * d*d)

This member corresponds to the att0 variable in the equation. Naturally undefined for directional lights.

◆ mAttenuationLinear

float aiLight::mAttenuationLinear

Linear light attenuation factor.

The intensity of the light source at a given distance 'd' from the light's position is

Atten = 1/( att0 + att1 * d + att2 * d*d)

This member corresponds to the att1 variable in the equation. Naturally undefined for directional lights.

◆ mAttenuationQuadratic

float aiLight::mAttenuationQuadratic

Quadratic light attenuation factor.

The intensity of the light source at a given distance 'd' from the light's position is

Atten = 1/( att0 + att1 * d + att2 * d*d)

This member corresponds to the att2 variable in the equation. Naturally undefined for directional lights.

◆ mColorAmbient

C_STRUCT aiColor3D aiLight::mColorAmbient

Ambient color of the light source

The ambient light color is multiplied with the ambient material color to obtain the final color that contributes to the ambient shading term. Most renderers will ignore this value it, is just a remaining of the fixed-function pipeline that is still supported by quite many file formats.

◆ mColorDiffuse

C_STRUCT aiColor3D aiLight::mColorDiffuse

Diffuse color of the light source

The diffuse light color is multiplied with the diffuse material color to obtain the final color that contributes to the diffuse shading term.

◆ mColorSpecular

C_STRUCT aiColor3D aiLight::mColorSpecular

Specular color of the light source

The specular light color is multiplied with the specular material color to obtain the final color that contributes to the specular shading term.

◆ mDirection

C_STRUCT aiVector3D aiLight::mDirection

Direction of the light source in space. Relative to the transformation of the node corresponding to the light.

The direction is undefined for point lights. The vector may be normalized, but it needn't.

◆ mName

C_STRUCT aiString aiLight::mName

The name of the light source.

There must be a node in the scenegraph with the same name. This node specifies the position of the light in the scene hierarchy and can be animated.

◆ mPosition

C_STRUCT aiVector3D aiLight::mPosition

Position of the light source in space. Relative to the transformation of the node corresponding to the light.

The position is undefined for directional lights.

◆ mSize

C_STRUCT aiVector2D aiLight::mSize

Size of area light source.

◆ mType

C_ENUM aiLightSourceType aiLight::mType

The type of the light source.

aiLightSource_UNDEFINED is not a valid value for this member.

◆ mUp

C_STRUCT aiVector3D aiLight::mUp

Up direction of the light source in space. Relative to the transformation of the node corresponding to the light.

The direction is undefined for point lights. The vector may be normalized, but it needn't.


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