Plug-in cameras derive from CameraObject
and GenCamera
.
Camera - \samples\objects\camera.cpp
Cameras present a scene from a particular point of view. Camera objects simulate still-image, motion picture, or video cameras in the real world.
Compound objects take several objects and combine them together to produce a new object. Examples includes Boolean and Morph objects. The principal class involved in compound objects is IBoolObject
.
Boolean - \samples\objects\boolobj.cpp
Produce a new object using union, intersection and difference operations.
Blob Mesh Compound Object - \samples\objects\BlobMesh
The Blob Mesh compound object creates a set of spheres from geometry or particles, and connects the spheres together as if they were made of a soft, liquid substance. When the spheres move within a certain distance of one another, they connect together. When they move apart, they take on a spherical form again.
Mesher Compound Object - \samples\objects\mesher
The Mesher compound object converts objects to mesh objects on a per-frame basis so that you can apply modifiers such as Bend or UVW Map. It can be used with any type of object, but is designed primarily to work with particle systems.
Geometric object plug-ins derive derived from GeomObject
or SimpleObject2
.
Primitive Geometric Objects - \samples\objects\prim.vcproj
Implements numerous primitive geometric objects such as boxes, spheres, cones, cylinders, and tubes.
Extended Primitives - \samples\objects\ExtendedObjects
Implements all the extended primitive objects available in the Create Command Panel such as chamfer cubes, oil tanks, pyramids etc..
Geodesic Sphere Primitive - \samples\objects\GSphere
Creates spheres and hemispheres based on three classes of regular polyhedrons.
Helper objects are items such as dummy objects, grids, tape measurers and point objects. Helper objects derive from ConstObject
or HelperObject
.
Grid Helper - \samples\objects\helpers\gridhelp.cpp
The grid, also called User Grid or Custom Grid, is a 2D object with adjustments for overall size and grid spacing. The user can move and orient user grids anywhere in world space.
Pointer Helper - \samples\objects\helpers\pthelp.cpp
The point helper provides a specific location in 3D space that can be used as a reference or by other program functions
Expose Transform - \samples\objects\Helpers\Exposeform
The Expose Transform helper object exposes values of non-keyed objects for use in expressions and scripts.
Luminaire Helper Object - \samples\objects\Helpers\Luminaire
The Luminaire helper object serves primarily as a head, or control, object for light fixtures.
Examples of plug-ins lights include point lights, direct lights, and spot lights. Light plug-ins derive from LightObject
or GenLight
.
Light - \samples\objects\light.cpp
Lights are objects that simulate real lights such as household or office lamps, the light instruments used in stage and film work, and the sun itself. Different kinds of light objects cast light in different ways, emulating different kinds of real-world light sources.
Manipulator helpers are objects you can create to manipulate other objects. They let you add customized controls to your scene that provide visual feedback in viewports. To control other objects, manipulators use the parameter wiring feature. The following samples demonstrate implementing manipulators by inheriting from SimpleManipulator
.
Cone Angle Manipulator - \samples\manipulators\coneanglemanip.cpp
The Cone Angle manipulator is a cone whose base you can adjust. By wiring its Angle value to a parameter of another object, you can create a custom control, with visual feedback, within a scene.
Plane Angle Manipulator - \samples\manipulators\planeanglemanip.cpp
The Plane Angle manipulator looks like a lever or joystick. By wiring its Angle value to a parameter of another object, you can create a custom control, with visual feedback, within a scene.
Slider Manipulator - \samples\manipulator\slider.cpp
The Slider manipulator is a graphic control that appears in the active viewport. By wiring its Value to a parameter of another object, you can create a custom control, with visual feedback, within a scene
Bend Manipulator - \howto\manipulators\bend
A how-to sample showing a full manipulator. It uses the Bend modifier to provide a gizmo and also handles setting up of aHitData
object.
Editable Mesh Object - \samples\mesh\editablemesh
A triangular mesh object.
Editable Poly Mesh Object - \samples\mesh\editablepoly
A polygon mesh object.
The NURBS API provides an interface into the NURBS objects used by 3ds Max. You can create new NURBS objects or modify existing ones. A NURBS object plug-in will derive from NURBSObject
.
NURBS Test Utility - \samples\utilties\nurbs
A test harness for the NURBS API that can be used an example of how to work with NURBS.
Developers can create patch modeling systems for 3ds Max. Patch object plug-ins derive from PatchObject
.
Editable Patch Object - \samples\objects\tripatch.cpp
Editable Patch provides controls for manipulating an object as a patch object and at five sub-object levels: vertex, handle, edge, patch, and element.
Patch Grid - \samples\objects\patchgrd.cpp
Patch grids provide convenient "building material" for custom surfaces and objects, or for adding patch surfaces to existing patch objects.
These are shapes such as circles, arcs, rectangles, and donuts. Spline objects derived from SimpleSpline.
These are shapes such as the helix. Shape objects derive from ShapeObject
.
Objects can display instances of themselves, either in the viewport or at render-time, without creating new scene objects.
The Render-time Instancing API allows you to display multiple instances of a single object at render-time. Plug-ins that use this API must implement the required methods in MaxSDK::RenderTimeInstancing::RenderTimeInstancingInterface
.
RenderTimeInstancingInterface
. It creates a new type of object that can display multiple instances of itself at render-time.The Viewport Instancing API allows an object plug-in to display many instances in the viewport without creating them all in the scene. The plug-in describes the instance data based on a single object, and 3ds Max creates efficient representations of that object on the GPU. The instances can have different transforms, materials, mapping coordinates, and vertex colors. Plug-ins that use this API use the methods of class InstanceDisplayGeometry
.
InstanceDisplayGeometry
. It creates a new type of object that can display multiple instances of itself in the viewport.