๐Ÿ“–

Rendering a Tetrahedron with Mesh and OFF

Introduction

I'm reading on surface geometry[1], as an entrypoint into ray tracing. I've also been reading on web GPU fundamentals, GPUs generally and how computer graphics work.

Tetrahedron

A tetrahedron has four triangular faces. This means it has four vertices, you can think of them as X, Y, Z and origin coordinates. It also has six edges.

Triangles are important in computer graphics because any surface can be built as a set of triangles called a mesh.

OFF and Mesh

OFF[2] is a simple binary protocol that lets you define your vertices and faces. In the case of a tethrahedron, the off file looks like:

OFF
4 4 0
1.0 0.0 0.0 
0.0 1.0 0.0 
0.0 0.0 1.0 
0.0 0.0 0.0
3 0 1 2
3 0 2 3
3 0 1 3
3 1 2 3

4 4 0 - means 4 vertices, 4 faces and 0 edges (ignored).

The next four lines define the co-ordinates of the vertices.

Eg. 1.0 0.0 0.0 - means the (X, Y, Z) coordinates.

The subsequent four lines define each face and which vertices combine to form it.
Eg 3 0 1 2 - means this face is a combination of 3 vertices. Vertices at index 0, 1 and 2.

Mesh is the library used to import and render the OFF file. Other file formats exist like OBJ.

The rendered tetrahedron looks like:

tetrahedron

References

  1. https://graphicscodex.com/app/app.html?page=_rn_surfc
  2. http://www.geomview.org/docs/html/OFF.html