MaxOSLInterface.h File 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
 This API is used to support OLE structured storage streams containing user specified string data in 3ds Max scene files or other OLE Structured Storage based files.
 
 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

#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):

1 auto ip = (MaxSDK::OSL::IOSLGlobalInterface *)GetCOREInterface(MAXOSL_GLOBAL_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:

1 auto ip = (MaxSDK::OSL::IOSLMapInterface *)oslmap->GetInterface(MAXOSL_OSLMAP_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

1 auto ip = (MaxSDK::OSL::IOSLRaytracingInterface *)ShadeContext::GetInterface(MAXOSL_RAYTRACE_INTERFACE)

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

#define OSLTex_CLASS_ID   Class_ID(0x7f9a7b9d, 0x6fcdf00d)

The ClassID of the OSL Map itself.