Share

Miscellaneous Samples and Plug-ins

Asset Tracking System

  • 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/DCOM Server Plug-ins

  • 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.

Function Publishing Samples

  • 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).

IK Solvers

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.

  • Human Limb IK Solver - \samples\iksolvers\iklimb
  • Spline IK Solver - \samples\iksolvers\SplineIKSolver

Image Viewers

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.

Miscellaneous How-to Samples

  • Creating and modifying menus demo - \howto\ui\menudemo

    Demonstrates how to create and modify menus using C++, MAXScript and Plugin Package xml file.

  • Character Studio Iteration Techniques - \howto\CharacterStudio\TestApi.cpp

    Demonstrates how to iterate by keys and biped driven controllers.

  • 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 Samples

  • 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

OpenSubdiv Sample

A sample that exercises SDK exposure of the OpenSubdiv feature (such as accessing OpenSubdivParameters and mesh picking) is located at:

  • *\\samples\\utilities\\OpenSubdivTest*

Painter Interface Samples

Plug-ins that implement the painter interface (IPainterInterface_V7) make it possible to be painted on.

  • Painter Interface - \samples\PainterInterface

How-to Samples

  • Painter Deform Test - \howto\painterinterface\painterdeformtest

  • Painter Tester - \howto\painterinterface\PainterTester

    A plug-in that demonstrates the Painter Interface.

Populate Interfaces Sample

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 .

Shadow Generator Plug-ins

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

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.

  • Various Snap Samples - \samples\snaps.

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.

Sound Plug-ins

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

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 driven objects, coordinated using a controller.

Viewport Volume Display API

This API simplifies displaying a volume in the viewport when a plugin provides the voxel data, positions and display options.

  • \howto\objects\VolumeSampleObject A plugin that illustrates how to implement the Volume Display API for a geometry object.

Was this information helpful?