3ds Max C++ API Reference
Loading...
Searching...
No Matches
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

namespace  MaxSDK
namespace  MaxSDK::OSL

Macros

#define MAXOSL_GLOBAL_INTERFACE   Interface_ID(0x16523c14, 0x70a27fea)
 Interface ID for the 3ds Max OSL 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.
#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.
#define OSLTex_CLASS_ID   Class_ID(0x7f9a7b9d, 0x6fcdf00d)
 The ClassID of the OSL Map itself.

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.