This article contains guidelines for creating and rendering 3D images for use in Transcendence.

Ships & Stations

Object Scale

Starting with 1.7 and The Vault of the Galaxy, we recommend using a single fixed scale for all 3D models. Instead of changing the size of an object to fit the viewport, we zoom the camera until the viewport fits the object.

For extremely large objects, however, we adjust the scale to reduce camera distortion. Use the following guidelines:

  • Objects less than 1.6 kilometers: 0.1 units per meter.
  • Between 1.6 and 3.2 kilometers: 0.05 units per meter.
  • Larger than 3.2 kilometers: 0.02 units per meter.

Camera Settings

We recommend the following metrics:

  • Object position: At origin.
  • Camera position: X=0 Y=-400 Z=800.
  • Camera direction: Pointing to origin (angles: 153.44 0.0 180.0)
  • Camera viewport: Centered on origin, zoomed to fit object.

Note: You will need to specify a viewportRatio in the image descriptor in order for the engine to have the proper 3D projection parameters. The viewport ratio is the ratio of the viewport width to the height of the camera.

Light Settings

The main light source is an infinite, soft-shadowed, white light source:

  • Light position: X=-500 Y=300 Z=500
  • Light direction: Pointing to origin (angles: -149.04, -40.61, 47.33)

Note that from the camera's perspective the object is slightly backlit. This accentuates shadows and evokes the darkness of space.

Image Scale

The resulting sprite is scaled so that large ships/stations still fit on the screen. Use the following formula to convert from object size in meters to sprite size in pixels:

Size(pixels) = 5 * Size(meters)^0.68

For ships, this is the pixel size when oriented at 0° (i.e., facing to the right).

For both ships and stations, only include integral structural components in the length—exclude antennae and other non-structural parts.

Items

Item icons are 96×96 pixels and not to scale. We use a fixed camera position and change the size of the 3D model to fit the viewport.

Camera Settings

We recommend the following metrics:

  • Object position: At origin.
  • Camera position: X=0 Y=-20 Z=4.
  • Camera direction: Pointing to origin (angles: 101.31, 0.0, 180.0)
  • Camera viewport: Centered on origin (size: 0.5, 1.0, 2.5)

Light Settings

The main light source is a slightly warm light:

  • Light position: X=5 Y=-10 Z=7.
  • Light direction: Pointing to origin (angles: 124.99, 22.27, -165.14)
  • Light color: Hue=60 Sat=0.15 Intensity=1

There are two secondary lights. The side light is yellowish at one-third intensity:

  • Side light position: X=-10 Y=-3 Z=4
  • Side light direction: Pointing to origin (angles: 143.13, -63.44, 129.98)
  • Side light color: Hue=60 Sat=0.5 Intensity=0.3

The top light is blue and at one-third intensity:

  • Top light position: X=0 Y=0 Z=15
  • Top light direction: Pointing to origin (angles: 180, 0, 0)
  • Top light color: Hue=240 Sat=0.4 Intensity=0.35

Orientation

Different item types are oriented in different ways:

  • Armor: Angled 30 degrees from face on (left side coming towards the camera).
  • Miscellaneous Devices: Angled 30 degrees from face on (right side coming towards the camera).
  • Weapons: Pointing 120 degrees (60 degrees away from the camera).
xephyr 18 Feb 2016:

How about for item graphics?

johnbwatson 18 Feb 2016:

Helpful, thanks!

george moromisato 23 Jul 2019:

Added section on Object Scale based on this: https://ministry.kronosaur.com/record.hexm?id=87130

nms 23 Jul 2019:

Could it be part of the spec that a ship's center of mass be located at the origin, even if this makes it off-center? Using rotationOffset introduces a "wobble" as the ship rotates.