3DS Max tools

CPP

Plugins to export data to the 64kb introsystem

Introduction

3DStudioMax

One of the challenges while developing 64kb intros is how to create the scenes. This involves modeling, surfacing and animation. The custom engine typically includes procedural geometry operators so you can create simple objects like boxes, spheres, ... and apply transformations to them: extrude, subdivide, smooth, etc. Surely the coder can create some nice scenes using just code, but at the end is the designer who needs simpler and direct methods to create the scenes. With this in mind, I created a set of tools for the most common DCC application in the market: 3ds Max. These plugins implement the following main features:

  • Export the scene to a binary file format that the engine can understand.
  • Preview the scene from 3ds Max directly on the engine.
  • Custom modifiers applied directly on 3ds Max with direct translation and 1:1 match with the engine.
  • Material creation and assignment.
  • Animation support (scale, rotation, translation) with several interpolation methods

Features

  • Primitive export:
    • Cylinder, sphere, box, pyramid, plane, ...
    • Generation parameters: width, height, number of segments, UV mapping, ...
  • Material export:
    • Common material parameters: diffuse color, transparency, shininess, wireframe, ...
    • Image maps from/and linked to the KTexGen
  • Animation:
    • Transformation for geometry, lights and cameras: scale, translation and rotation
    • Mesh animation (deforms)
    • Custom parameters per object e.g. FOV and roll on cameras or intensity on lights.
  • Mesh:
    • Geometry: vertices, faces, normals, UVs (encoded with a custom compression algorithm targeting size).
  • Modifiers:
    • 3ds Max built-in modifier support like Bend, Twist or Meshsmooth
    • Custom modifiers: Mirror, Spikeball...
  • Real-time preview of the scene in the engine.
  • Additional parameters like ambient light, fog or glow.

The primitives can be exported using several parameters like number of segments, tri or quads:

3DStudioMax

Material exporter manages most of the basic material parameters:

3DStudioMax

The modifiers are stackable. The following example shows a mirror modified with smooth applied:

To save up some space it features also instances for geometry:

3DStudioMax

The subdivision (Catmull-clark) adds smooth looking for low-poly geometry:

3ds Max

The preview option allows to see the final scene directly in the engine with additional post processing effects.

It also has the ability to generate lightmaps for the selected lights and see the final result on the preview window:

3DStudioMax