Tutorial: Custom solid

Custom solid

A Solid is defined as a Shape and a Material (and eventually a PTMaterial). Its role is simply to wrap these data to pass them to the shader (with a proper ID).

To simplify the creation of scenes, it can be useful to build various extension of the Solis class, that will serve as shortcut to define a solid with a specific shape. For an example, we refer the reader to euclidean balls in src/geometries/euc/solids/Ball.js.

Class extension

Every solid should extend the class Solid. Note that Solid inherits from Generic, which defines methods various method to assign a UUID, a name, a scene ID, to the solid.

The constructor of Solid takes the following arguments

  • shape (Shape) : a shape
  • material (Material) : a material (for basic rendering)
  • ptMaterial (PTMaterial) - optional : a material for path tracing

Properties and methods

The definition of a solid class does not require any particular property/method. All is already taken care of by the class Generic from which it inherits.