3ds Max C++ API Reference
MaxOSLInterface.h File Reference
#include "inode.h"

Classes

class  INodePropertyValue
 The INodePropertyValue class handles object properties as used by OSL. More...
 
class  INodePropertyManager
 The INodePropertyManager class manages properties that OSL is interested in. More...
 
class  IOSLGlobalInterface
 Interface for the 3ds Max OSL global interface. More...
 
class  IOSLMapInterface
 The Interface for the 3ds Max OSL Map interface. More...
 
class  IOSLRaytracingInterface
 Interface for the 3ds Max OSL Raytracing features, allowing OSL to use a 3rd party renderer's raytracing engine. More...
 

Namespaces

 MaxSDK
 
 MaxSDK::OSL
 

Macros

#define MAXOSL_GLOBAL_INTERFACE   Interface_ID(0x16523c14, 0x70a27fea)
 Interface ID for the 3ds Max OSL global interface. More...
 
#define MAXOSL_OSLMAP_INTERFACE   Interface_ID(0x4fa32eff, 0x5aa01b92)
 Interface ID for the 3ds Max OSL Map interface This interface exposes methods that relate to properties of a particular OSL Map. More...
 
#define MAXOSL_RAYTRACE_INTERFACE   Interface_ID(0x560f06ca, 0x57260b1f)
 Interface ID for the 3ds Max OSL Raytracing features, allowing OSL to use a 3rd party renderer's raytracing engine. More...
 
#define OSLTex_CLASS_ID   Class_ID(0x7f9a7b9d, 0x6fcdf00d)
 The ClassID of the OSL Map itself. More...
 

Macro Definition Documentation

◆ MAXOSL_GLOBAL_INTERFACE

#define MAXOSL_GLOBAL_INTERFACE   Interface_ID(0x16523c14, 0x70a27fea)

Interface ID for the 3ds Max OSL global interface.

This interface exposes methods that are not related to a particular OSL Map.

To retrieve the interface, use GetCOREInterface(id):

#define MAXOSL_GLOBAL_INTERFACE
Interface ID for the 3ds Max OSL global interface.
Definition: MaxOSLInterface.h:26
Interface for the 3ds Max OSL global interface.
Definition: MaxOSLInterface.h:174
CoreExport Interface * GetCOREInterface()

◆ MAXOSL_OSLMAP_INTERFACE

#define MAXOSL_OSLMAP_INTERFACE   Interface_ID(0x4fa32eff, 0x5aa01b92)

Interface ID for the 3ds Max OSL Map interface This interface exposes methods that relate to properties of a particular OSL Map.

To retrieve the interface, use GetInterface on the map:

auto ip = (MaxSDK::OSL::IOSLMapInterface *)oslmap->GetInterface(MAXOSL_OSLMAP_INTERFACE);
#define MAXOSL_OSLMAP_INTERFACE
Interface ID for the 3ds Max OSL Map interface This interface exposes methods that relate to properti...
Definition: MaxOSLInterface.h:36
The Interface for the 3ds Max OSL Map interface.
Definition: MaxOSLInterface.h:247

◆ MAXOSL_RAYTRACE_INTERFACE

#define MAXOSL_RAYTRACE_INTERFACE   Interface_ID(0x560f06ca, 0x57260b1f)

Interface ID for the 3ds Max OSL Raytracing features, allowing OSL to use a 3rd party renderer's raytracing engine.

This interface is exposed by the renderer on the ShadeContext it passes to the OSL Map's EvalColor/Mono/NormalPerturb() methods. The OSL Map rendering service callback for the OSL trace() call will get the interface with

#define MAXOSL_RAYTRACE_INTERFACE
Interface ID for the 3ds Max OSL Raytracing features, allowing OSL to use a 3rd party renderer's rayt...
Definition: MaxOSLInterface.h:50
virtual UtilExport BaseInterface * GetInterface(Interface_ID id)
Interface for the 3ds Max OSL Raytracing features, allowing OSL to use a 3rd party renderer's raytrac...
Definition: MaxOSLInterface.h:311

and call its IOSLRaytracingInterface::TraceRay method to perform raytracing.

◆ OSLTex_CLASS_ID

#define OSLTex_CLASS_ID   Class_ID(0x7f9a7b9d, 0x6fcdf00d)

The ClassID of the OSL Map itself.