Sample ATS provider - \samples\assettrackingsystem\SampleATSProvider
The sample ATS provider is a template project for creating asset tracking system (ATS) providers, and demonstrates implementation of the IATSProvider
interface. ATS Provider plug-ins must be placed in the \stdplugs\AssetTracking folder to be loaded
COM Server - \samples\gup\comsrv
This plug-in allows 3ds Max to act as an OLE / COM server.
COM Server Registration Utility - \samples\utilities\comsrv
This utility allows 3ds Max to be registered as a COM server.
Simple Function Publishing - \howto\functionpublishing\simplefp
A simple example of the function publishing system. This sample is implemented as a global utility plug-in (.gup) to demonstrate how to perform MAXScript exposure for a function published interface outside of the standard MAXScript plug-ins (.dlx).
An IK solver creates an inverse kinematic solution to rotate and position links in a chain. It applies an IK controller to govern the transforms of the children in a linkage.
An image viewer plug-in is available from the 3ds Max File menu under View File. A developer may replace the viewer DLL launched by this command to provide enhanced functionality for image browsing. An image viewer inherits from ViewFile
.
View File - \samples\viewfile
Implements the 3ds Max external image viewer.
Character Studio Iteration Techniques - \howto\CharacterStudio\TestApi.cpp
Demonstrates how to iterate by keys and biped slaves.
Source Code Example - \howto\SourceCodeExamples
Contains miscellaneous CPP files (with no visual studio projects) that demonstrate different features of the API.
CUI Utility - \howto\UI\cuitest
Used to test various toolbar API's. Adds a toolbar to the interface when certain events occur
Custom Control Utilty - \howto\UI\CustomControls
This demonstrates the use of many of 3ds Max's custom controls (e.g. buttons, spinners, edit boxes, list boxes)
Extension Channel Plug-in - \howto\objects\ExtensionChannel
Implements 2 new plug-in classes, an extended GSphere with extended channels, and a modifier that adds and extension channel to the pipeline. See XGsphere.cpp for excellent detailed comments on parameter blocks. Each of these plug-in classes implements more than one parameter block.
Custom Data per Face - \howto\objects\PerFaceData
Demonstrate attaching custom data to each face of a mesh object. This project turns face data created by other local modifiers into visible colors.
Custom Data per Vertex - \howto\objects\PerVertexData
A Project to demonstrate attaching custom data to each vertex of a mesh object. This project attaches a simple user-entered number value to each vertex.
Widget Object - \howto\objects\Widget
A simple object for 3ds Max.
Motion Capture Input Device - \samples\motioncapture\
A motion capture input device plug-ins connect to the 3ds Max motion capture system, by implementing IMCInputDevice
.
Keyboard Driver - \samples\motioncapture\mckbddev
Keyboard device driver for motion capture system
A sample that exercises SDK exposure of the OpenSubdiv feature (such as accessing OpenSubdivParameters and mesh picking) is located at:
*\\samples\\utilities\\OpenSubdivTest
*Plug-ins that implement the painter interface (IPainterInterface_V7
) make it possible to be painted on.
How-to Samples
Painter Deform Test - \howto\painterinterface\painterdeformtest
Painter Tester - \howto\painterinterface\PainterTester
A plug-in that demonstrates the Painter Interface.
The Populate feature exposes several interfaces: IPopulate
, IPopulateFlow
, IPopulateIdleArea
, and IPopulateSeat.
A sample utility plug-in that uses these interfaces is located in \howto\Populate .
The standard 3ds Max mapped and ray-traced shadows are Shadow Generator plug-ins. There is presently no sample of this type of plug-in; however, a plug-in template is available through the application wizard in Visual Studio. The primary classes involved in shadow generators are: ShadBufRenderer
, ShadowType
, and ShadowGenerator
.
Snap plug-ins (also called Object Snap plug-ins) allows custom points to be provided to the 3ds Max snapping system. For example, a door plug-in could provide a custom snap for the hinge center. Snap plug-ins derive from Osnap
.
How-to Samples
Sphere Saps - \howto\snaps\sphere
An example object snap. This plug-in will respond to spheres and supports two sub-snaps: quadrant and center. Center being the (0,0,0) point in object space. The quadrants are the points (+-r,0,0),(0,+-r,0),(0,0,+-r) in object space.
A sound plug-in can take control of sound (and music) production in 3ds Max. These plug-ins control not only the sounds they generate but also the system clock. They can thus coordinate the timing of external sound input/output devices with the animation. Sound plug-ins can provide their user interface as part of the 3ds Max Track View. A sound plug-in derives from SoundObj
.
VRML Export - \samples\import_export\vrmlexp\sound.cpp
Demonstrates export of sound objects.
Sound Object Test - \samples\utilities\utiltest.cpp
Demonstrates a simple sound plug-in.
System plug-ins are combinations of plug-ins working together. These plug-ins can provide high-order parametric control over a complex collection of scene entities.
Sunlight - *\samples\systems\sunlight *
A sunlight emulation system. Also illustrates how to use Qt for the plug-in UI.
Ring Array - *\samples\objects\RingArray.cpp *
The Ring Array object consists of a dummy master object surrounded by a ring of slave objects, coordinated using a controller.