IMRPhysicalSunLight Class Reference

IMRPhysicalSunLight Class Referenceabstract

#include <imrPhysicalSunLight.h>

Class Description

Access interface for the Mental Ray Physical Sun Light.

This class represents the Mental Ray Physical Sun Light implemented by 3ds Max. Given a pointer to a sun light, one can get the parameters as follows:

Object* sunlight = // obtain a pointer to an object
IMRPhysicalSunLight* physSunInterface = dynamic_cast<IMRPhysicalSunLight*>(sunInterface);
+ Inheritance diagram for IMRPhysicalSunLight:

Public Member Functions

virtual Interface_ID GetID ()
 Returns the Interface ID of this interface. More...
 
virtual ~IMRPhysicalSunLight ()
 A virtual destructor for the interface. More...
 
Inherit from mrSky

Uses the equivalent settings from the mrSky Parameters rollout for the remaining mr Physical Sky Parameters rollout settings, except for Aerial Perspective.

Default=on.

virtual bool getInheritFromSky (TimeValue &t, Interval &valid) const =0
 Gets whether or not the environment map inherits from mrSky. More...
 
virtual bool setInheritFromSky (TimeValue t, bool inheritFromSky)=0
 Sets whether or not the environment map inherits from mrSky. More...
 
Photon Target Enabled

Focus global-illumination photons on an area of interest.

For example, if you've modeled a huge city as a backdrop, but are rendering only a room interior, you probably don't want mental ray to shoot photons over the entire city, with the result that only a few will find their way into the room. When on, uses the Radius (or PhotonTarget) setting with respect to the light target.

virtual bool getPhotonTargetEnabled (TimeValue &t, Interval &valid) const =0
 Gets whether or not the a photon target is enabled. More...
 
virtual bool setPhotonTargetEnabled (TimeValue t, bool enablePhotonTarget)=0
 Sets whether or not the a photon target is enabled. More...
 
Photon Target

The radial distance from the light target in which the mr Sun casts GI photons.

virtual float getPhotonTarget (TimeValue &t, Interval &valid) const =0
 Gets the radial distance from the photon target. More...
 
virtual bool getPhotonTarget (TimeValue t, float photonTarget)=0
 Sets the radial distance from the photon target. More...
 
Multiplier

The multiplier for the value of the sun's light output.

virtual float getMultiplier (TimeValue &t, Interval &valid) const =0
 Gets the value of the multiplier for the sun's light output. More...
 
virtual bool setMultiplier (TimeValue t, float multiplier)=0
 Sets the value of the multiplier for the sun's light output. More...
 
Sky Multiplier

The multiplier for the value of the sky's brightness.

virtual float getSkyMultiplier (TimeValue &t, Interval &valid) const =0
 Gets the value of the multiplier for the sky's brightness. More...
 
virtual bool setSkyMultiplier (TimeValue t, float skyMultiplier)=0
 Sets the value of the multiplier for the sky's brightness. More...
 
Haze

The amount of particulate matter in the air.

Possible values range from 0.0 (a completely clear day) to 15.0 (extremely overcast, or a sandstorm in the Sahara). Default=0.0.

virtual float getHaze (TimeValue &t, Interval &valid) const =0
 Gets the haze value of the sky. More...
 
virtual bool setHaze (TimeValue t, float haze)=0
 Sets the haze value of the sky. More...
 
Red/Blue Shift

Provides artistic control over the redness of the sky light.

The default value of 0.0 is the physically correct value (calculated for a 6500K whitepoint), but can be changed with this parameter, which ranges from -1.0 (extremely blue) to 1.0 (extremely red).

virtual float getRedBlueShift (TimeValue &t, Interval &valid) const =0
 Gets the red/blue tint value of the sky. More...
 
virtual bool setRedBlueShift (TimeValue t, float redBlueShift)=0
 Sets the red/blue tint value of the sky. More...
 
Saturation

Provides artistic control over saturation of the sky light.

The default value of 1.0 is the physically calculated saturation level. Possible values range from 0.0 (black and white) to 2.0 (extremely high saturation).

virtual float getSaturation (TimeValue &t, Interval &valid) const =0
 Gets the saturation value of the sky. More...
 
virtual bool setSaturation (TimeValue t, float saturation)=0
 Sets the saturation value of the sky. More...
 
Horizon Height

The vertical position of the horizon.

Default=0.0.

virtual float getHorizonHeight (TimeValue &t, Interval &valid) const =0
 Gets the horizon height value. More...
 
virtual bool setHorizonHeight (TimeValue t, float horizonHeight)=0
 Sets the horizon height value. More...
 
Shadow Softness

The softness of shadow edges.

The default value of 1.0 accurately matches the softness of real solar shadows. Lower values make the shadows sharper and higher values make them softer.

virtual float getShadowSoftness (TimeValue &t, Interval &valid) const =0
 Gets the value of the shadow softness. More...
 
virtual bool setShadowSoftness (TimeValue t, float shadowSoftness)=0
 Sets the value of the shadow softness. More...
 
Shadow Samples

The number of shadow samples for the soft shadows.

If it is set to 0, no soft shadows are generated. Default=8.

virtual int getShadowSamples (TimeValue &t, Interval &valid) const =0
 Gets the number of shadow samples. More...
 
virtual bool setShadowSamples (TimeValue t, int shadowSamples)=0
 Sets the number of shadow samples. More...
 
- Public Member Functions inherited from BaseInterface
virtual UtilExport ~BaseInterface ()
 Destructor. More...
 
UtilExport BaseInterfaceGetInterface (Interface_ID id)
 
virtual LifetimeType LifetimeControl ()
 
virtual bool RegisterNotifyCallback (InterfaceNotifyCallback *incb)
 
virtual void UnRegisterNotifyCallback (InterfaceNotifyCallback *incb)
 
virtual BaseInterfaceAcquireInterface ()
 
virtual void ReleaseInterface ()
 
virtual void DeleteInterface ()
 
virtual BaseInterfaceCloneInterface (void *remapDir=NULL)
 
- Public Member Functions inherited from InterfaceServer
virtual UtilExport ~InterfaceServer ()
 Destructor. More...
 

Additional Inherited Members

- Public Types inherited from BaseInterface
enum  LifetimeType { noRelease, immediateRelease, wantsRelease, serverControlled }
 
- Static Public Member Functions inherited from MaxHeapOperators
static UtilExport voidoperator new (size_t size)
 Standard new operator used to allocate objects If there is insufficient memory, an exception will be thrown. More...
 
static UtilExport voidoperator new (size_t size, const std::nothrow_t &e)
 Standard new operator used to allocate objects if there is insufficient memory, NULL will be returned. More...
 
static UtilExport voidoperator new (size_t size, const char *filename, int line)
 New operator used to allocate objects that takes the filename and line number where the new was called If there is insufficient memory, an exception will be thrown. More...
 
static UtilExport voidoperator new (size_t size, int block_type, const char *filename, int line)
 New operator used to allocate objects that takes the type of memory, filename and line number where the new was called If there is insufficient memory, an exception will be thrown. More...
 
static UtilExport voidoperator new (size_t size, const std::nothrow_t &e, const char *filename, int line)
 New operator used to allocate objects that takes the filename and line number where the new was called If there is insufficient memory, NULL will be returned. More...
 
static UtilExport voidoperator new (size_t size, unsigned long flags)
 New operator used to allocate objects that takes extra flags to specify special operations If there is insufficient memory, an exception will be thrown. More...
 
static UtilExport voidoperator new (size_t size, const std::nothrow_t &e, unsigned long flags)
 New operator used to allocate objects that takes extra flags to specify special operations If there is insufficient memory, NULL will be returned. More...
 
static UtilExport voidoperator new[] (size_t size)
 New operator used to allocate arrays of objects If there is insufficient memory, an exception will be thrown. More...
 
static UtilExport voidoperator new[] (size_t size, const std::nothrow_t &e)
 New operator used to allocate arrays of objects If there is insufficient memory, NULL will be returned. More...
 
static UtilExport voidoperator new[] (size_t size, const char *filename, int line)
 New operator used to allocate arrays of objects If there is insufficient memory, an exception will be thrown. More...
 
static UtilExport voidoperator new[] (size_t size, int block_type, const char *filename, int line)
 New operator used to allocate arrays of objects. More...
 
static UtilExport voidoperator new[] (size_t size, const std::nothrow_t &e, const char *filename, int line)
 New operator used to allocate arrays of objects If there is insufficient memory, NULL will be returned. More...
 
static UtilExport voidoperator new[] (size_t size, unsigned long flags)
 New operator used to allocate arrays of objects If there is insufficient memory, an exception will be thrown. More...
 
static UtilExport voidoperator new[] (size_t size, const std::nothrow_t &e, unsigned long flags)
 New operator used to allocate arrays of objects If there is insufficient memory, NULL will be returned. More...
 
static UtilExport void operator delete (void *ptr)
 Standard delete operator used to deallocate an object If the pointer is invalid, an exception will be thrown. More...
 
static UtilExport void operator delete (void *ptr, const std::nothrow_t &e)
 Standard delete operator used to deallocate an object If the pointer is invalid, nothing will happen. More...
 
static UtilExport void operator delete (void *ptr, const char *filename, int line)
 Delete operator used to deallocate an object that takes the filename and line number where the delete was called If the pointer is invalid, an exception will be thrown. More...
 
static UtilExport void operator delete (void *ptr, int block_type, const char *filename, int line)
 Delete operator used to deallocate an object that takes the type of memory, filename and line number where the delete was called If the pointer is invalid, an exception will be thrown. More...
 
static UtilExport void operator delete (void *ptr, const std::nothrow_t &e, const char *filename, int line)
 Delete operator used to deallocate an object that takes the filename and line number where the delete was called If the pointer is invalid, nothing will happen. More...
 
static UtilExport void operator delete (void *ptr, unsigned long flags)
 Delete operator used to deallocate an object that takes extra flags to specify special operations If the pointer is invalid, an exception will be thrown. More...
 
static UtilExport void operator delete (void *ptr, const std::nothrow_t &e, unsigned long flags)
 Delete operator used to deallocate an object that takes extra flags to specify special operations If the pointer is invalid, nothing will happen. More...
 
static UtilExport void operator delete[] (void *ptr)
 Standard delete operator used to deallocate an array of objects If the pointer is invalid, an exception will be thrown. More...
 
static UtilExport void operator delete[] (void *ptr, const std::nothrow_t &e)
 Standard delete operator used to deallocate an array of objects If the pointer is invalid, nothing will happen. More...
 
static UtilExport void operator delete[] (void *ptr, const char *filename, int line)
 Delete operator used to deallocate an array of objects that takes the filename and line number where the delete was called If the pointer is invalid, an exception will be thrown. More...
 
static UtilExport void operator delete[] (void *ptr, int block_type, const char *filename, int line)
 Delete operator used to deallocate an array of objects that takes the type of memory, filename and line number where the delete was called If the pointer is invalid, an exception will be thrown. More...
 
static UtilExport void operator delete[] (void *ptr, const std::nothrow_t &e, const char *filename, int line)
 Delete operator used to deallocate an array of objects that takes the filename and line number where the delete was called If the pointer is invalid, nothing will happen. More...
 
static UtilExport void operator delete[] (void *ptr, unsigned long flags)
 Delete operator used to deallocate an array of objects that takes extra flags to specify special operations If the pointer is invalid, an exception will be thrown. More...
 
static UtilExport void operator delete[] (void *ptr, const std::nothrow_t &e, unsigned long flags)
 Delete operator used to deallocate an array of objects that takes extra flags to specify special operations If the pointer is invalid, an exception will be thrown. More...
 
static UtilExport voidoperator new (size_t size, void *placement_ptr)
 Placement new operator. More...
 
static UtilExport void operator delete (void *ptr, void *placement_ptr)
 Placement delete operator. More...
 

Constructor & Destructor Documentation

virtual ~IMRPhysicalSunLight ( )
inlinevirtual

A virtual destructor for the interface.

49 {};

Member Function Documentation

virtual Interface_ID GetID ( )
inlinevirtual

Returns the Interface ID of this interface.

Reimplemented from BaseInterface.

46 { return IID_MR_PHYSICAL_SUN_LIGHT; };
#define IID_MR_PHYSICAL_SUN_LIGHT
Interface id for the Mental Ray Physical Sun Light object.
Definition: imrPhysicalSunLight.h:32
virtual bool getInheritFromSky ( TimeValue t,
Interval valid 
) const
pure virtual

Gets whether or not the environment map inherits from mrSky.

Parameters
[in]t- The time at which we're getting the value
[in]valid- The interval at which we're getting the value
Returns
A boolean if we're inheriting from mrSky or not
virtual bool setInheritFromSky ( TimeValue  t,
bool  inheritFromSky 
)
pure virtual

Sets whether or not the environment map inherits from mrSky.

Parameters
[in]t- The time at which to set the value
[in]inheritFromSky- A boolean value of what whether or not we're inheriting from mrSky
Returns
true if the setting was successful
virtual bool getPhotonTargetEnabled ( TimeValue t,
Interval valid 
) const
pure virtual

Gets whether or not the a photon target is enabled.

Parameters
[in]t- The time at which we're getting the value
[in]valid- The interval at which we're getting the value
Returns
A boolean if a photon target is enabled
virtual bool setPhotonTargetEnabled ( TimeValue  t,
bool  enablePhotonTarget 
)
pure virtual

Sets whether or not the a photon target is enabled.

Parameters
[in]t- The time at which to set the horizon height
[in]enablePhotonTarget- A boolean value to enable/disable a photon target
Returns
true if the setting was successful
virtual float getPhotonTarget ( TimeValue t,
Interval valid 
) const
pure virtual

Gets the radial distance from the photon target.

Parameters
[in]t- The time at which we're getting the radius
[in]valid- The interval at which we're getting the radius
Returns
The current radius from the photon target
virtual bool getPhotonTarget ( TimeValue  t,
float  photonTarget 
)
pure virtual

Sets the radial distance from the photon target.

Parameters
[in]t- The time at which to set the radius
[in]photonTarget- The value of what to set photon target radius to
Returns
true if the setting was successful
virtual float getMultiplier ( TimeValue t,
Interval valid 
) const
pure virtual

Gets the value of the multiplier for the sun's light output.

Parameters
[in]t- The time at which we're getting the multiplier
[in]valid- The interval at which we're getting the multiplier
Returns
The value of the multiplier
virtual bool setMultiplier ( TimeValue  t,
float  multiplier 
)
pure virtual

Sets the value of the multiplier for the sun's light output.

Parameters
[in]t- The time at which to set the multiplier
[in]multiplier- The value of what to set the multiplier to
Returns
true if the setting was successful
virtual float getSkyMultiplier ( TimeValue t,
Interval valid 
) const
pure virtual

Gets the value of the multiplier for the sky's brightness.

Parameters
[in]t- The time at which we're getting the multiplier
[in]valid- The interval at which we're getting the multiplier
Returns
The value of the multiplier
virtual bool setSkyMultiplier ( TimeValue  t,
float  skyMultiplier 
)
pure virtual

Sets the value of the multiplier for the sky's brightness.

Parameters
[in]t- The time at which to set the multiplier
[in]skyMultiplier- The value of what to set the multiplier to
Returns
true if the setting was successful
virtual float getHaze ( TimeValue t,
Interval valid 
) const
pure virtual

Gets the haze value of the sky.

Parameters
[in]t- The time at which we're getting the haze value
[in]valid- The interval at which we're getting the haze value
Returns
The value of the haze
virtual bool setHaze ( TimeValue  t,
float  haze 
)
pure virtual

Sets the haze value of the sky.

Parameters
[in]t- The time at which to set the haze value
[in]haze- The value of what to set the haze value to
Returns
true if the setting was successful
virtual float getRedBlueShift ( TimeValue t,
Interval valid 
) const
pure virtual

Gets the red/blue tint value of the sky.

Parameters
[in]t- The time at which we're getting the red/blue shift
[in]valid- The interval at which we're getting the red/blue shift
Returns
The value of the red/blue shift
virtual bool setRedBlueShift ( TimeValue  t,
float  redBlueShift 
)
pure virtual

Sets the red/blue tint value of the sky.

Parameters
[in]t- The time at which to set the red/blue shift
[in]redBlueShift- The value of what to set the red/blue shift to
Returns
true if the setting was successful
virtual float getSaturation ( TimeValue t,
Interval valid 
) const
pure virtual

Gets the saturation value of the sky.

Parameters
[in]t- The time at which we're getting the saturation value
[in]valid- The interval at which we're getting the saturation value
Returns
The value of the saturation
virtual bool setSaturation ( TimeValue  t,
float  saturation 
)
pure virtual

Sets the saturation value of the sky.

Parameters
[in]t- The time at which to set the saturation
[in]saturation- The value of what to set the saturation to
Returns
true if the setting was successful
virtual float getHorizonHeight ( TimeValue t,
Interval valid 
) const
pure virtual

Gets the horizon height value.

Parameters
[in]t- The time at which we're getting the horizon height
[in]valid- The interval at which we're getting the horizon height
Returns
The value of the horizon height
virtual bool setHorizonHeight ( TimeValue  t,
float  horizonHeight 
)
pure virtual

Sets the horizon height value.

Parameters
[in]t- The time at which to set the horizon height
[in]horizonHeight- The value of what to set the horizon height to
Returns
true if the setting was successful
virtual float getShadowSoftness ( TimeValue t,
Interval valid 
) const
pure virtual

Gets the value of the shadow softness.

Parameters
[in]t- The time at which we're getting the value
[in]valid- The interval at which we're getting the value
Returns
The value of the shadow softness
virtual bool setShadowSoftness ( TimeValue  t,
float  shadowSoftness 
)
pure virtual

Sets the value of the shadow softness.

Parameters
[in]t- The time at which to set the value
[in]shadowSoftness- The value of what to set the shadow softness to
Returns
true if the setting was successful
virtual int getShadowSamples ( TimeValue t,
Interval valid 
) const
pure virtual

Gets the number of shadow samples.

Parameters
[in]t- The time at which we're getting the value
[in]valid- The interval at which we're getting the value
Returns
The number of samples being used for soft shadows.
virtual bool setShadowSamples ( TimeValue  t,
int  shadowSamples 
)
pure virtual

Sets the number of shadow samples.

Parameters
[in]t- The time at which to set the value
[in]shadowSamples- The value of what to set number of samples to
Returns
true if the setting was successful