3ds Max C++ API Reference
|
Namespaces | |
MaterialConversionHelper | |
MaterialConversionHelper is a class to convert from a 3ds Max material (Mtl class) into a Viewport material (BaseMaterialHandle class) This viewport material can be assigned with : | |
Utilities | |
ViewportInstancing | |
This API is about having a single INode in the scene, but having many geometries being instantiated at the GPU level in the viewport when the INode is drawn, e.g : a particles system. | |
ViewportVolumeDisplay | |
Volume Display functions for 3ds Max's viewport This is a set of functions for an Object plug-in to support a volume display in the viewport Link with MaxGraphics.lib when using this header. | |
Classes | |
class | AtomicRefCounter |
this class contains an integer which is initialized to zero. More... | |
class | BaseMaterialHandle |
This is base graphics material class. More... | |
class | BaseRasterHandle |
This is our base graphics raster resource class. More... | |
class | CustomRenderItemHandle |
CustomRenderItemHandle is a wrapper of ICustomRenderItem. More... | |
class | CustomRenderStageHandle |
CustomRenderStageHandle is the base wrapper class of the custom render stage. More... | |
struct | DeviceCaps |
This struct is used to store some device related information. More... | |
class | DisplayCallbackContext |
This class contains context which can be queried in IDisplayCallback. More... | |
class | DrawContext |
Typically ICustomRenderItem::Draw() and ICustomRenderItem::HitTest() bring instance of this class as parameter. More... | |
class | EffectHandle |
EffectHandle is a class provides features similar as Effect in Direct3D This class is used for viewport display and Quicksilver. More... | |
class | EffectInstanceHandle |
EffectInstanceHandle is a class which stores values of parameters in an effect. More... | |
class | ConnectionPoint |
ConnectionPoint is the base class that manages the connections between view fragments. More... | |
class | Input |
Class that stores input information for a fragment. More... | |
class | Output |
Class that stores output information for a fragment. More... | |
struct | FragmentMessageParameter |
Message parameters. More... | |
class | Fragment |
Fragment is the base computation unit in the view system. More... | |
class | FragmentGraph |
FragmentGraph is a graph consisting of fragment nodes. More... | |
class | IVariableDictionary |
IVariableDictionary is a map structure that contains key/variable pairs. More... | |
class | Variable |
Variable is a simple class that stores certain data that a developer can decide at runtime. More... | |
class | ViewFragment |
Base class of all viewport fragment. More... | |
class | GenerateMeshRenderItemsContext |
This class contains all information that will be passed to Mesh::GenerateRenderItems() or MNMesh::GenerateRenderItems() to update its display data. More... | |
class | GeometryRenderItemHandle |
This is a special render item which used only by Mesh/MNMesh. More... | |
class | HitTestContext |
This is a hit test context class. More... | |
class | HLSLMaterialHandle |
HLSLMaterialHandle is a material class to support HLSL custom material. More... | |
class | ICamera |
The interface of a render camera for nitrous viewport. More... | |
class | IConsolidationKey |
This class is used as a key for a hash table. More... | |
class | IConsolidationRenderItem |
This class defines a consolidation render item, which is used to improve rendering performance by batching similar render items together. More... | |
class | IConsolidationStrategy |
This class defines a strategy to consolidate one type of consolidation key. More... | |
class | ICustomRenderItem |
This class is used to customize the behavior of a render item. More... | |
class | IDisplayCallback |
A developer would implement this interface to allow immediate mode drawing of primitives, text and markers. More... | |
class | IDisplayManager |
A core interface for accessing properties of the graphics library introduced in 3ds Max 2012. More... | |
class | IDisposable |
class | IHLSLMaterialTranslator |
Facilitates translation of material parameter values to their shaders representation. More... | |
class | IMeshDisplay2 |
Use this interface to query the per node related render items from a mesh or mnesh. More... | |
class | ImmediateFragment |
ImmediateFragment is a class which let application render primitives outside the render loop. More... | |
class | ImmediateRenderItemHandle |
This class is used to wrap user defined IDisplayCallback class. More... | |
class | IndexBufferHandle |
IndexBufferHandle is a memory buffer that contain index data. More... | |
class | IObjectDisplay2 |
To give object plugins better control of display, now object plugins can expose IObjectDisplay2 interface. More... | |
class | IParameterTranslator |
Facilitates translation of material and texture map parameter values to their shaders representation. More... | |
struct | TextureCoordStream |
This structure is used to define vertex's texture coordinate information. More... | |
struct | SimpleVertexStream |
Used by DrawPrimitive and DrawIndexedPrimitive for vertex data. More... | |
class | IPrimitiveRenderer |
This class is used to draw simple primitives, markers, text with given material and transformations. More... | |
class | AutoRestoreWorldMatrix |
class | IRefObject |
This class is similar to IUnknown in COM. More... | |
class | ARefObject |
This class implemented IRefObject interfaces. More... | |
class | SafeReferenceObjectProxy |
This class is internally used for preventing the AddRef and Release of a pointer returned by RefPtr::operator -> from being called. More... | |
class | DefaultLifeTimePolicy |
class | RefPtr |
This template class act similar as CComPtr. More... | |
class | IRenderGeometry |
IRenderGeometry is a representation of a geometry. More... | |
class | IRenderItemContainer |
A render item container, it provides various methods to access the contained render items. More... | |
class | IRenderStateManager |
IRenderStateManager controls primitive renderer's current render style. More... | |
class | IShaderManager |
Represents the programmable shader associated with a material or texture map plug-in. More... | |
class | IShaderManagerCreator |
Factory class for IShaderManager objects. More... | |
class | ISimpleMaterial |
ISimpleMaterial provides any material or texture plugin the ability to display itself in the new Viewport Display system in 3ds Max 2012. More... | |
class | ISimpleMaterialExt |
ISimpleMaterialExt extends ISimpleMaterial to support more textures. More... | |
class | DisplayTextureHelper |
Used for creating texture handles (TexHandle) and updating texture data managed by the viewport display system. More... | |
class | DisplayTextureHelperExt |
DisplayTextureHelperExt extends DisplayTextureHelper to support more textures Used for creating stage texture handles (TexHandle) and updating texture data managed by the viewport display system. More... | |
class | ITextureDisplay |
This interface enables material and texture map plugins to display textures in the new viewport display system in 3ds Max 2012. More... | |
class | IViewportViewSetting |
Viewport Setting For The Nitrous Graphics Viewport. More... | |
class | IViewportViewSetting2 |
Viewport Setting For The Nitrous Graphics Viewport. More... | |
class | IVirtualDevice |
This class provides low level access to the GPU device. More... | |
struct | MaterialRequiredStreamElement |
This struct describes a single stream element that will be used by the hardware shader of a material. More... | |
class | MaterialRequiredStreams |
This class is used for describing the mesh stream requirements of a material. More... | |
class | Matrix44 |
class | MemoryTargetHandle |
Application can use this class to create a render target in memory which can be a target input/output for a fragment node. More... | |
class | MeshElementDescription |
This class describes a single mesh element(which corresponds to a render item) required to be generated by calling Mesh::GenerateRenderItems() or MNMesh::GenerateRenderItems() from the specified mesh(or mnmesh). More... | |
class | INormalMappingManager |
This interface manages the normal mapping modes that can affect how 3ds Max calculates/interprets the tangent/binormal(bitangent) in vertex/pixel shading level during baking/rendering. More... | |
struct | Query_Data_SO_Statistics |
class | QueryHandle |
QueryHandle is a query object used for submitting hardware queries. More... | |
struct | ConsolidationData |
This a structure that holds parameters used for render item consolidation. More... | |
class | RenderItemHandle |
This is the base wrapper class for all viewport render items. More... | |
class | RenderItemHandleArray |
This is a utility class. More... | |
class | RenderItemHandleDecorator |
This is a decorator class for RenderItemHandle. More... | |
class | RenderNodeHandle |
This class describes a graphics node. More... | |
class | RasterizerState |
This class encapsulates a complete rasterizer state, like fill mode, cull mode, point size, etc. More... | |
class | TargetBlendState |
This class holds the blend state for single render target. More... | |
class | BlendState |
This class holds the blend state for all render targets. More... | |
class | StencilOperation |
This class encapsulates a complete set of stencil buffer operations for stencil test. More... | |
class | DepthStencilState |
This class encapsulates a complete depth buffer and stencil buffer state. More... | |
class | RenderNodeIterator |
RenderNodeIterator is the iterator class to iterate all render nodes in the current render world. More... | |
class | RenderWorldHandle |
RenderWorldHandle is the base wrapper class of the nitrous world. More... | |
class | SimpleRenderGeometry |
SimpleRenderGeometry is a simple implementation of IRenderGeometry. More... | |
class | SmartHandle |
This is the base wrapper class for all graphics primitive classes in max viewport: worlds, nodes, render items, materials, etc. More... | |
class | SolidColorMaterialHandle |
SolidColorMaterialHandle is a material class to support solid color. More... | |
class | StandardMaterialHandle |
StandardMaterialHandle is a material class to support phong style material . More... | |
class | TargetHandle |
Application can use this class either as a render target or convert it to texture and assign to model. More... | |
class | PresentableTargetHandle |
This class is similar as TargetHandle. More... | |
struct | LockedRect |
Defines a rectangular region that has been locked by a call to TextureHandle::LockRect(). More... | |
class | TextureHandle |
This is texture class to support texture for material, such as TextureMaterialHandle. More... | |
class | TextureHandleUtility |
This is utility class to create TextureHandle from Texmap. More... | |
class | TextureMaterialHandle |
This is material class to support material with texture. More... | |
struct | RectangleSize |
the struct that defines the width and height of one rectangle. More... | |
class | UpdateDisplayContext |
This class contains all information that will be passed to IObjectDisplay::UpdateDisplay and will be used by plugin to update its display data. More... | |
class | UpdateNodeContext |
This class contains node dependent information for calling IObjectDisplay2::UpdatePerNodeItems(), and IObjectDisplay2::UpdatePerViewItems() More... | |
class | AutoRestoreRenderNodeMaterial |
This is a utility class for assigning customized solid material to the solid mesh render item of a render node when generating render items from IMeshDisplay2::GetRenderItems() during the execution of BaseObject::UpdatePerNodeItems() More... | |
class | UpdateViewContext |
This class contains view dependent information for calling IObjectDisplay2::UpdatePerViewItems() More... | |
class | VertexBufferHandle |
VertexBufferHandle is a memory buffer that contain vertex data. More... | |
class | VertexColorMaterialHandle |
VertexColorMaterialHandle is a material class to support vertex color. More... | |
struct | EvaluationContext |
This struct is a collection of elements that are necessary in a render view. More... | |
class | IActiveShadeFragment |
This class is used to manage ActiveShade in a viewport (called ActiveShadeFragment) A view fragment is a part of the viewport drawing system. More... | |
class | IFixedViewportPipeline |
This class provide some facility to add some extended behavior to the fixed render pipeline. More... | |
class | IRenderView |
This class is a representation of a render view which provides some common functions to manipulate a viewport. More... | |
class | IRenderView2 |
IRenderView2 provide the access to IFixedViewportPipeline with which 3rd party developer can add some extended behavior to the fixed render pipeline. More... | |
class | IView |
This class is a representation of a basic view. More... | |
struct | RenderRegion |
Note: The render region can set the clipping rectangle,offset and scale of render target in the screen space of render view. More... | |
class | ViewParameter |
This class wrap up all viewport related parameters. More... | |
class | IPerViewportFilter |
The interface for filtering per viewport. More... | |
Typedefs | |
typedef MaxSDK::Array< MSTR > | TechniqueNames |
typedef RefPtr< Fragment > | FragmentPtr |
typedef RefPtr< FragmentGraph > | FragmentGraphPtr |
typedef RefPtr< ICamera > | CameraPtr |
typedef RefPtr< IConsolidationKey > | IConsolidationKeyPtr |
typedef RefPtr< IConsolidationRenderItem > | IConsolidationRenderItemPtr |
typedef RefPtr< ICustomRenderItem > | ICustomRenderItemPtr |
typedef RefPtr< IDisplayCallback > | IDisplayCallbackPtr |
typedef RefPtr< IRefObject > | RefObjectPtr |
typedef RefPtr< IRenderGeometry > | IRenderGeometryPtr |
typedef MaxSDK::Array< SmartHandle > | SmartHandleArray |
typedef MaxSDK::Array< TargetHandle > | TargetHandleArray |
typedef unsigned __int64 | Identifier |
This is the unique id type of our internal graphics objects. More... | |
typedef unsigned long | Bitfields |
record the dirty flags of render view. More... | |
typedef MaxSDK::Array< VertexBufferHandle > | VertexBufferHandleArray |
typedef MaxSDK::Graphics::RefPtr< ViewParameter > | ViewParameterPtr |
Functions | |
FragmentGraphAPI bool | IsNumberType (VarType type) |
Checks if the given type is number type. More... | |
FragmentGraphAPI bool | IsCompatibleType (VarType lhs, VarType rhs) |
Checks if two types can be converted to each other. More... | |
DataBridgeAPI size_t | GetVertexStride (const VertexFieldType type) |
Get the vertex stride by a given vertex type, in bytes. More... | |
DataBridgeAPI size_t | GetIndexStride (const IndexType type) |
Get the index stride by a given index type, in bytes. More... | |
GraphicsDriverAPI size_t | CombineHashCode (size_t seed, size_t hashCode) |
A utility function for generating hash code. More... | |
UtilExport MaxSDK::Graphics::IDisplayManager * | GetIDisplayManager () |
Helper function to access the IDisplayManager core interface. More... | |
bool | IsRetainedModeEnabled () |
Helper function to test whether the new viewport graphics system is running. More... | |
bool | IsHardwareHitTesting (ViewExp *vpt) |
Helper function to test whether the new viewport graphics system is performing hardware hit testing. More... | |
template<class RefObjectType , class SafeRefObjectType , class LifeTimePolicy > | |
bool | operator== (void *pPtr, const RefPtr< RefObjectType, SafeRefObjectType, LifeTimePolicy > &pInterface) |
template<class RefObjectType , class SafeRefObjectType , class LifeTimePolicy > | |
bool | operator!= (void *pPtr, const RefPtr< RefObjectType, SafeRefObjectType, LifeTimePolicy > &pInterface) |
GraphicsDriverAPI void | MaxWorldMatrixToMatrix44 (Matrix44 &outMatrix, const Matrix3 &inMatrix) |
Convert Matrix3 to Matrix44. More... | |
GraphicsDriverAPI void | Matrix44ToMaxWorldMatrix (Matrix3 &outMatrix, const Matrix44 &inMatrix) |
Convert Matrix44 to Matrix3. More... | |
GraphicsDriverAPI const MeshElementDescription & | GetBuiltInMeshElementDescription (BuiltInMeshElementDescription type) |
Get a specified built-in mesh element description. More... | |
GraphicsDriverAPI DWORD | GetDeviceCompatibleARGBColor (DWORD color) |
Use this function for TargetFormatA8R8G8B8 only. More... | |
GraphicsDriverAPI size_t | GetTargetFormatPixelSize (TargetFormat format) |
Get the number of bytes for each pixel by a given target format. More... | |
GraphicsDriverAPI VertexBufferHandle | GenerateInstanceData (Matrix3 *worldTransforms, size_t count) |
Generate the instance data from a Matrix3 array. More... | |
GraphicsDriverAPI VertexBufferHandle | GenerateInstanceData (Point3 *UVs, Matrix3 *worldTransforms, size_t count) |
Generate the instance data from a texture coordinates array and a Matrix3 array. More... | |
GraphicsDriverAPI bool | GenerateInstanceRenderItem (RenderItemHandle &hInstanceRenderItem, const RenderItemHandle &hTupleMeshHandle, const VertexBufferHandle &hInstanceData) |
Generate the instance render item from a tuple mesh and a Matrix3 array. More... | |
GraphicsDriverAPI bool | GenerateInstanceRenderItem (RenderItemHandle &hInstanceRenderItem, const RenderItemHandle &hTupleMeshHandle, const ViewportInstancing::InstanceDisplayGeometry *pInstanceDisplayGeometry) |
Generate the instance render item from a tuple mesh which is a ViewportInstancing::InstanceDisplayGeometry class. More... | |
ViewSystemAPI IActiveShadeFragment * | GetActiveShadeFragmentFromActiveViewport () |
Get the ActiveShade fragment from the active viewport. More... | |
UtilExport bool | IsGpuPresent () |
Method that verifies if at least one GPU is present on the current system. More... | |
typedef MaxSDK::Array<MSTR> TechniqueNames |
typedef RefPtr<Fragment> FragmentPtr |
typedef RefPtr<FragmentGraph> FragmentGraphPtr |
typedef RefPtr<IConsolidationKey> IConsolidationKeyPtr |
typedef RefPtr<ICustomRenderItem> ICustomRenderItemPtr |
typedef RefPtr<IDisplayCallback> IDisplayCallbackPtr |
typedef RefPtr<IRefObject> RefObjectPtr |
typedef RefPtr<IRenderGeometry> IRenderGeometryPtr |
typedef MaxSDK::Array<SmartHandle> SmartHandleArray |
typedef MaxSDK::Array<TargetHandle> TargetHandleArray |
typedef unsigned __int64 Identifier |
This is the unique id type of our internal graphics objects.
typedef unsigned long Bitfields |
record the dirty flags of render view.
See the enumeration RenderViewDirtyFlag.
enum FrameType |
Indicates the type of frame.
enum RenderViewDirtyFlag |
Indicates the dirty flag of render view.
Enumerator | |
---|---|
RenderViewDirtyFlagViewChanged | View elements such as width,height or position are changed. |
RenderViewDirtyFlagFragmentChanged | Fragment elements such as input,out or connection are changed. |
enum FragmentFlags |
This enum contains flags that specify certain states of a fragment or fragment graph node.
Enumerator | |
---|---|
FragmentFlagsEvaluated | Indicates whether this fragment has already been evaluated during a recursive call to FragmentGraph::Evaluate(). If this flag is true, we simply ignore evaluating this fragment an additional time. |
FragmentFlagsDirty | Indicates whether this fragment is dirty and needs to be evaluated once more. Note this flag is mainly used to indicate if a viewport redraw is required. |
enum FragmentMessageID |
This enum describes types of messages a fragment could register and receive from the fragment system.
Fragment::OnMessage is invoked whenever a fragment receives the registered messages from the fragment system.
Enumerator | |
---|---|
FragmentMessageIDTimer | The timer message. A fragment may call Fragment::SetTimerTicks to register a timer. When the timer ticks, Fragment::OnMessage is invoked. |
FragmentMessageIDEndFrame | The end frame message. A fragment will receive this message at the end of each frame. |
BuiltInFragmentMessageIDCount | Preserved count of built-in message. |
enum VarType |
built-in variable types.
For more details please see class Variable.
Enumerator | |
---|---|
VT_Char | A single char type. |
VT_UnsignedChar | unsigned char type. |
VT_WideChar | wchar_t type. |
VT_Short | short type. |
VT_UnsignedShort | unsigned short type. |
VT_Int | int type. |
VT_UnsignedInt | unsigned int type. |
VT_Long | long type. |
VT_UnsignedLong | unsigned long type. |
VT_Int64 | __int64 type. |
VT_UnsignedInt64 | unsigned __int64 type. |
VT_Float | float type. |
VT_Double | double type. |
VT_StringA | Ascii string type. |
VT_StringW | Unicode string type. |
VT_Dictionary | dictionary type. If a variable is this type, it is actually a map. The key is a multi-byte string, while the value is another variable. |
VT_IRefObject | A IRefObject type. The variable will hold a reference of that object. |
enum VertexFieldType |
types available for vertex fields, e.g.
Float4
enum VertexFieldUsage |
Indicates the usage of a vertex field of a vertex buffer.
This enum is used to make hardware shaders understand the usage of vertex buffer.
enum MeshChannelCategory |
Indicates the data source of a vertex field of a mesh vertex buffer.
e.g. Position, Normal, Texture, etc.
enum IndexType |
Buffers are composed of arrays of elements all of the same type.
This enum describes the size and interpretation of the elements in the buffer. Index buffers can have ushort or uint elements.
Enumerator | |
---|---|
IndexTypeUnknown | not defined |
IndexTypeShort | unsigned 16 bit short integer, used for index buffers. |
IndexTypeInt | unsigned 32 bit integer, used for index buffers. |
IndexTypeCount |
enum BufferUsageType |
BufferUsageType Types for OGS buffer usage.
Enumerator | |
---|---|
BufferUsageStatic | static usage type. Data stores in GPU memory. |
BufferUsageDynamic | Dynamic buffer. If the resource contents are to be changed often, EDynamicUsage is recommended to achieve fast update. Used with the correct map flag( WriteDiscard or WriteNoOverwrite), maximum performance to change the contents will be achieved. Meaning of WriteNoOverwrite: WriteNoOverwrite signifies that the application promises not to write to data that the GPU is using. In exchange, the GPU allows the application to write to other parts of the same buffer. The application must ensure that it does not write over any data in use by the GPU. |
BufferUsageStaging | |
BufferUsageMask | |
BufferUsageStreamTexture | Usage for stream output for vb & ibs, may be used as a texture. |
BufferUsageTarget | Usage for render target, it means the resouce created from video memory and can be used as render-target for vb & ibs & textures, may be used as a render target/stream output buffer. |
BufferUsageUnorderedAccess | Usage for unordered access of the resource. This allows the resource to be both read and written by a shader, through the use of atomic functions. Check the device capabilities to determine support. |
BufferUsageStructure | Usage for structured buffer. If this flag is specified, the buffer must use BufferPoolTypeHardwareBuffer for pool type |
BufferUsageRaw | Usage for bytes address buffer. |
BufferUsageBuffer | Usage for standard buffer type If this flag is specified, user must specify dataType parameter of VertexBufferHandle::Initialize() |
enum BufferPoolType |
enum VisualStyle |
Enum type for all visual styles of nitrous viewport.
Enumerator | |
---|---|
VisualStyleRealistic | The realistic visual style. |
VisualStyleShaded | The shaded visual style. |
VisualStyleFacets | The facet visual style. |
VisualStyleConsistentColor | The consistent color visual style. |
VisualStyleHiddenLine | The hidden line visual style. |
VisualStyleWireframe | The wireframe visual style. |
VisualStyleBoundingBox | The bounding box visual style. |
VisualStyleInk | The ink visual style for NPR. |
VisualStyleColorInk | The color ink visual style of NPR. |
VisualStyleAcrylic | The acrylic stylized visual style. |
VisualStyleTech | The tech stylized visual style. |
VisualStyleGraphite | The graphite stylized visual style. |
VisualStyleColorPencil | The color pencil stylized visual style. |
VisualStylePastel | The pastel stylized visual style. |
VisualStyleClay | The clay visual style. |
VisualStyleModelAssist | The Model Assist visual style from Max 2016 (smoothing using invisible edge and not smooth only groups) MAXX-34246. |
VisualStyleCount | The count of all visual styles. |
enum ViewportPreset |
Enum type for all presets of nitrous viewport.
|
strong |
This enum contains flags that can be combined together to specify whether or not certain functions of IObjectDisplay2 will be supported.
This enum defines requirement flags of material additional to mesh stream requirements of MaterialRequiredStreams.
Enumerator | |
---|---|
MaterialRequirementSplitByMaterialID | Plug-in needs to split mesh to sub meshes according to face material id. This flag is on when the material is multi/sub material. |
enum MeshElementType |
This enum describes the type of mesh element to be generated.
Each mesh element corresponds to a specific render item generated by calling Mesh::GenerateRenderItems() or MNMesh::GenerateRenderItems().
Enumerator | |
---|---|
MeshElementTypeSolidMesh | Solid Mesh, it could be: vertex color mesh or general mesh. This will be displayed in any viewport that requires smooth mesh. |
MeshElementTypeVertexTicks | Vertex ticks. This will be displayed when the node has "Vertex Ticks" display option on or the vertex tick sub-object be selected. |
MeshElementTypeEdge | Edge mesh, this layer includes the edges. This will be displayed in viewport that has "wireframe" or "hidden line" on or when the edge sub-object level is selected. |
MeshElementTypeDiagonal | Diagonal Mesh. This is the dotted edge lines when user turn off "edges only" display property of a node and enable the wireframe mode of viewport. |
MeshElementTypeFace |
This is the face render item of the mesh when this mesh is displayed in face sub-object level. |
MeshElementTypeNormal | Mesh normals. This mesh element is required when we need to show all normals of selected face. |
enum MeshPart |
When a mesh is displayed in any sub-object level, this enum help decide which part of the mesh this mesh element belongs to.
This enum defines some kinds of built-in mesh element descriptions.
Developer may query a built-in mesh element description by calling MeshElementDescription::GetBuiltInMeshElementDescription() using any enum value below.
enum NormalBumpMode |
Enumerator | |
---|---|
NB_3dsMax | 3ds Max Mode In this mode, the vertex tangent and binormal(bitangent) are perpendicular to the face normal. The face normal is always perpendicular to the triangle face. During pixel shading, the tangent and binormal interpolated from triangle vertices are used in the normal bump calculation. |
NB_Maya | Maya Mode In this mode, the vertex tangent and binormal(bitangent) are perpendicular to the vertex normal. Vertex normals take their smoothing group into account. During pixel shading, the tangent and binormal interpolated from triangle vertices are orthogonalized against the normal before the normal bump calculation. |
NB_DirectX | DirectX Mode In this mode, the vertex tangent and binormal(bitangent) are perpendicular to the vertex normal. During pixel shading, the tangent and binormal interpolated from triangle vertices are used in the normal bump calculation. |
NB_MikkT | MikkT Mode - by Morten S. Mikkelsen In this mode, the same vertex tangent and binormal(bitangent) are generated even if there is a change in index list(s), ordering of faces/vertices of a face, and/or the removal of degenerate primitives. During pixel shading, the tangent interpolated from vertices is used in the normal bump calculation, however, the binormal(bitangent) could be either interpolated from vertices or re-caluclated against the pixel normal and tangent, depends on CalculateBitangentPerPixel flag is enabled or not. |
enum TangentBasisMode |
enum PrimitiveType |
Supported primitive types.
Enumerator | |
---|---|
PrimitivePointList | A list of independent points. |
PrimitiveLineList | A list of unconnected two-point line segments, such that the number of lines is the the total number of points divided by two. |
PrimitiveLineStrip | A polyline, where each point is connected to the previous vertex, yielding a single polyline with (vertex_count - 1) two-point line segments. |
PrimitiveTriangleList | A list of unconnected triangles, yielding (vertex_count / 3) triangles. |
PrimitiveTriangleStrip | A strip of connected triangles, such that each vertex after the first three vertices defines a new triangle, yielding (vertex_count - 1) connected triangles.
|
PrimitiveLineListAdj | A line list with adjacency information. |
PrimitiveLineStripAdj | A line strip with adjacency information. |
PrimitiveTriangleListAdj | A triangle list with adjacency information. |
PrimitiveTriangleStripAdj | A triangle strip with adjacency information. |
PrimitivePatchList1 | A patch list with 1 control point. |
PrimitivePatchList2 | A patch list with 2 control point. |
PrimitivePatchList3 | A patch list with 3 control point. |
PrimitivePatchList4 | A patch list with 4 control point. |
PrimitivePatchList5 | A patch list with 5 control point. |
PrimitivePatchList6 | A patch list with 6 control point. |
PrimitivePatchList7 | A patch list with 7 control point. |
PrimitivePatchList8 | A patch list with 8 control point. |
PrimitivePatchList9 | A patch list with 9 control point. |
PrimitivePatchList10 | A patch list with 10 control point. |
PrimitivePatchList11 | A patch list with 11 control point. |
PrimitivePatchList12 | A patch list with 12 control point. |
PrimitivePatchList13 | A patch list with 13 control point. |
PrimitivePatchList14 | A patch list with 14 control point. |
PrimitivePatchList15 | A patch list with 15 control point. |
PrimitivePatchList16 | A patch list with 16 control point. |
PrimitivePatchList17 | A patch list with 17 control point. |
PrimitivePatchList18 | A patch list with 18 control point. |
PrimitivePatchList19 | A patch list with 19 control point. |
PrimitivePatchList20 | A patch list with 20 control point. |
PrimitivePatchList21 | A patch list with 21 control point. |
PrimitivePatchList22 | A patch list with 22 control point. |
PrimitivePatchList23 | A patch list with 23 control point. |
PrimitivePatchList24 | A patch list with 24 control point. |
PrimitivePatchList25 | A patch list with 25 control point. |
PrimitivePatchList26 | A patch list with 26 control point. |
PrimitivePatchList27 | A patch list with 27 control point. |
PrimitivePatchList28 | A patch list with 28 control point. |
PrimitivePatchList29 | A patch list with 29 control point. |
PrimitivePatchList30 | A patch list with 30 control point. |
PrimitivePatchList31 | A patch list with 31 control point. |
PrimitivePatchList32 | A patch list with 32 control point. |
PrimitiveTypeCount |
enum BufferClearFlag |
This flag describes the way to clear the current buffers.
Enumerator | |
---|---|
ClearBackbuffer | clear the target |
ClearDepthBuffer | clear the zbuffer |
ClearStencilBuffer | clear the stencil |
ClearAll | clear the zbuffer, target & stencil |
enum BlendSelector |
blend selector.
selects a blend source/destination
enum CullMode |
enum FillMode |
enum CompareFunction |
compare functions
enum ColorWriteEnable |
enum BlendOperation |
blend operations
enum StencilOperationType |
Stencil buffer operation.
Enumerator | |
---|---|
StencilOperationTypeDecrement | Decrement the stencil buffer entry, wrapping to the maximum value if the new value is less than zero. Same as d3d.StencilOperation.Decrement, |
StencilOperationTypeDecrementSaturation | Decrement the stencil buffer entry, clamping to zero. Same as d3d.StencilOperation.DecrementSaturation, |
StencilOperationTypeIncrement | Increment the stencil buffer entry, wrapping to zero if the new value exceeds the maximum value. Same as d3d.StencilOperation.Increment, |
StencilOperationTypeIncrementSaturation | Increment the stencil buffer entry, clamping to the maximum value. Same as d3d.StencilOperation.IncrementSaturation, |
StencilOperationTypeInvert | Invert the bits in the stencil-buffer entry. Same as d3d.StencilOperation.Invert |
StencilOperationTypeKeep | Do not update the entry in the stencil buffer. This is the default value. Same as d3d.StencilOperation.Keep, |
StencilOperationTypeReplace | Replace the stencil-buffer entry with a reference value. Same as d3d.StencilOperation.Replace, |
StencilOperationTypeZeroStencil | Set the stencil-buffer entry to 0. Same as d3d.StencilOperation.Zero, |
STENCILOP_FORCE_DWORD |
enum AccessType |
AccessType Types for accessing buffers.
enum TargetFormat : int |
TargetFormat indicates which type the target/texture is.
enum GraphicFeatureLevel |
This enum specifies the feature levels device supported.
enum TextureType |
Texture type enums.
enum ResourceUsage |
Resource usage, used for texture.
enum QueryType |
Enums for QueryHandle, indicates which query types to issue.
Refer D3D11_QUERY in DirectX Graphics Document for detail.
Enumerator | |
---|---|
QueryType_Event | Same as D3D11_QUERY_EVENT Determines whether or not the GPU is finished processing commands. |
QueryType_Occlusion | Same as D3D11_QUERY_OCCLUSION Get the number of samples that passed the depth and stencil tests in between QueryHandle::Begin() and QueryHandle::End(). |
QueryType_TimeStamp | Same as D3D11_QUERY_TIMESTAMP Get a timestamp value from QueryHandle::GetData() |
QueryType_Occlusion_Test | Same as D3D11_QUERY_OCCLUSION_PREDICATE Return BOOL in QueryHandle::GetData(), indicates any pixels passes depth and stencil tests. |
QueryType_SO_Overflow_Test | Same as D3D11_QUERY_SO_OVERFLOW_PREDICATE Indicates whether or not any of the streaming output buffers overflowed between QueryHandle::Begin() and QueryHandle::End(). |
QueryType_SO_Stats | Same as D3D11_QUERY_SO_STATISTICS Get streaming output statistics, such as the number of primitives streamed out in between QueryHandle::Begin() and QueryHandle::End(). |
enum ZBiasPresets |
This enum defines in what group a render item is visible.
This enum contains flags that can be combined together to specify which part is required by the node when updating render items.
FragmentGraphAPI bool MaxSDK::Graphics::IsNumberType | ( | VarType | type | ) |
Checks if the given type is number type.
[in] | type | type value. |
FragmentGraphAPI bool MaxSDK::Graphics::IsCompatibleType | ( | VarType | lhs, |
VarType | rhs | ||
) |
Checks if two types can be converted to each other.
[in] | lhs | The first type. |
[in] | rhs | The second type. |
DataBridgeAPI size_t MaxSDK::Graphics::GetVertexStride | ( | const VertexFieldType | type | ) |
Get the vertex stride by a given vertex type, in bytes.
type | the vertex type. |
DataBridgeAPI size_t MaxSDK::Graphics::GetIndexStride | ( | const IndexType | type | ) |
Get the index stride by a given index type, in bytes.
type | the index type. |
GraphicsDriverAPI size_t MaxSDK::Graphics::CombineHashCode | ( | size_t | seed, |
size_t | hashCode | ||
) |
A utility function for generating hash code.
UtilExport IDisplayManager * GetIDisplayManager | ( | ) |
Helper function to access the IDisplayManager core interface.
|
inline |
Helper function to test whether the new viewport graphics system is running.
|
inline |
Helper function to test whether the new viewport graphics system is performing hardware hit testing.
vpt | The specific viewport in which we want to know whether we are performing hardware hit testing. |
GraphicsDriverAPI void MaxSDK::Graphics::MaxWorldMatrixToMatrix44 | ( | Matrix44 & | outMatrix, |
const Matrix3 & | inMatrix | ||
) |
GraphicsDriverAPI void MaxSDK::Graphics::Matrix44ToMaxWorldMatrix | ( | Matrix3 & | outMatrix, |
const Matrix44 & | inMatrix | ||
) |
GraphicsDriverAPI const MeshElementDescription& MaxSDK::Graphics::GetBuiltInMeshElementDescription | ( | BuiltInMeshElementDescription | type | ) |
Get a specified built-in mesh element description.
type | the kind of built-in mesh element description |
GraphicsDriverAPI DWORD MaxSDK::Graphics::GetDeviceCompatibleARGBColor | ( | DWORD | color | ) |
Use this function for TargetFormatA8R8G8B8 only.
DX10/11 doesn't support A8R8G8B8 which is only supported in DX9. So when we're using DX10/11 device, we will meet with color shift issue with the A8R8G8B8 format. So for a TargetHandle of TargetFormatA8R8G8B8, you may call this function to get a device compatible color.
color | The original color data. |
GraphicsDriverAPI size_t MaxSDK::Graphics::GetTargetFormatPixelSize | ( | TargetFormat | format | ) |
Get the number of bytes for each pixel by a given target format.
format | The given target format. |
GraphicsDriverAPI VertexBufferHandle MaxSDK::Graphics::GenerateInstanceData | ( | Matrix3 * | worldTransforms, |
size_t | count | ||
) |
Generate the instance data from a Matrix3 array.
worldTransforms | pointer to world transform matrices. Each matrix is a instance of Mesh. |
count | the number of the instances |
GraphicsDriverAPI VertexBufferHandle MaxSDK::Graphics::GenerateInstanceData | ( | Point3 * | UVs, |
Matrix3 * | worldTransforms, | ||
size_t | count | ||
) |
Generate the instance data from a texture coordinates array and a Matrix3 array.
UVs | pointer to texture coordinate array.Each texture coordinate pair is for an instance of Mesh. |
worldTransforms | pointer to world transform matrices. Each matrix is an instance of Mesh. |
count | the number of the instances |
GraphicsDriverAPI bool MaxSDK::Graphics::GenerateInstanceRenderItem | ( | RenderItemHandle & | hInstanceRenderItem, |
const RenderItemHandle & | hTupleMeshHandle, | ||
const VertexBufferHandle & | hInstanceData | ||
) |
Generate the instance render item from a tuple mesh and a Matrix3 array.
hInstanceRenderItem | the instance render item handle which can replace original tuple mesh render item. |
hTupleMeshHandle | handle of a tuple mesh render item |
hInstanceData | handle generated by GenerateInstanceData |
GraphicsDriverAPI bool MaxSDK::Graphics::GenerateInstanceRenderItem | ( | RenderItemHandle & | hInstanceRenderItem, |
const RenderItemHandle & | hTupleMeshHandle, | ||
const ViewportInstancing::InstanceDisplayGeometry * | pInstanceDisplayGeometry | ||
) |
Generate the instance render item from a tuple mesh which is a ViewportInstancing::InstanceDisplayGeometry class.
This is an extension of the bool GenerateInstanceRenderItem(RenderItemHandle& hInstanceRenderItem, const RenderItemHandle& hTupleMeshHandle, const VertexBufferHandle& hInstanceData) function with more overridable data for instances. The previous method could only override the transform matrix in world space and UV from the map channel #1. The MaxSDK::Graphics::ViewportInstancing::InstanceDisplayGeometry class lets you override more data per instance. For more details, please see the header file maxsdk\include\Graphics\InstanceDisplayGeometry.h.
hInstanceRenderItem | the instance render item handle which can replace original tuple mesh render item. |
hTupleMeshHandle | handle of a tuple mesh render item |
pInstanceDisplayGeometry | : an InstanceDisplayGeometry* |
ViewSystemAPI IActiveShadeFragment* MaxSDK::Graphics::GetActiveShadeFragmentFromActiveViewport | ( | ) |
Get the ActiveShade fragment from the active viewport.
Link your project using this function with ViewSystem.lib as MaxSDK::Graphics::IActiveShadeFragment* MaxSDK::Graphics::GetActiveShadeFragmentFromActiveViewport() is implemented in ViewSystem.
UtilExport bool MaxSDK::Graphics::IsGpuPresent | ( | ) |
Method that verifies if at least one GPU is present on the current system.
|
extern |
Built-in char input/output type.
This can be used in the constructor of class Input/Output.
|
extern |
Built-in unsigned char input/output type.
This can be used in the constructor of class Input/Output.
|
extern |
Built-in wchar_t input/output type.
This can be used in the constructor of class Input/Output.
|
extern |
Built-in short input/output type.
This can be used in the constructor of class Input/Output.
|
extern |
Built-in unsigned short input/output type.
This can be used in the constructor of class Input/Output.
|
extern |
Built-in int input/output type.
This can be used in the constructor of class Input/Output.
|
extern |
Built-in unsigned int input/output type.
This can be used in the constructor of class Input/Output.
|
extern |
Built-in long input/output type.
This can be used in the constructor of class Input/Output.
|
extern |
Built-in unsigned long input/output type.
This can be used in the constructor of class Input/Output.
|
extern |
Built-in __int64 input/output type.
This can be used in the constructor of class Input/Output.
|
extern |
Built-in unsigned __int64 input/output type.
This can be used in the constructor of class Input/Output.
|
extern |
Built-in float input/output type.
This can be used in the constructor of class Input/Output.
|
extern |
Built-in double input/output type.
This can be used in the constructor of class Input/Output.
|
extern |
Built-in multi-byte string input/output type.
This can be used in the constructor of class Input/Output.
|
extern |
Built-in Unicode string input/output type.
This can be used in the constructor of class Input/Output.
|
extern |
Built-in dictionary input/output type.
This can be used in the constructor of class Input/Output.
Use this value to unregister a timer with a fragment.
|
extern |
|
extern |
|
extern |
const Identifier NIL_ID = (Identifier)-1 |
Invalid id value.
|
extern |
|
extern |