Features#

The primary use-case for SGCT is to run the same graphics application on a single machine or a cluster and providing the ability to specify different projection methods for each viewport or machine. This way a cohesive cluster is constructured that is made up of individual clients, each rendering their own subset of the full image.

  • Free and open-source under MIT license on GitHub

  • Multi-computer, multi-window, and multi-viewport support

  • Frame synchronization, swap buffer synchronization (hardware) and network-based application data synchronization

  • Large variety of projection methods

    • Cubemap projection: Render 1-6 orthogonal cube faces

    • Cylindrical Projection: Projection of a 360 degree cylindrical surface

    • Equirectangular Projection: Full spherical projection displayed on a 2:1 aspect ratio image

    • Fisheye projection

    • PlanarProjection: Flat projection with controllable, potentially asymmetric field-of-view values

    • ProjectionPlane: Flat projection in which the 3D vertex coordinates of a virtual projection plane are provided

    • SphericalMirrorProjection: Projection on a spherical mirror as presented by Paul Bourke

    • TextureMappedProjection: A PlanarProjection in which a correction mesh is applied in reverse

  • Independent frame buffer resolution from window size allowing the taking of screenshots of arbitrary resolution independent of the monitor size

  • Ability to display multiple viewports per window each with their own projection method

  • Application of warping and blending meshes and black level masks

    • Support for OBJ, PFM, Scalable, SCISS, SimCad, and SkySkan meshes

  • 3D/Stereoscopic rendering

    • Active/Quadbuffer stereo

    • DLP/Checkerboard stereo

    • Line interlaced stereo

    • Anaglyph stereo (Red/Cyan, Amber/Blue)

    • Side-by-side and top-bottom

  • Statistics and performance graphs

  • Build on top of GLFW with easy access to the unterlying GLFWwindow objects

  • Joystick and gamepad support (GLFW)

  • Anti-aliasing (MSAA and FXAA)

  • Support for Windows and Linux

  • Sharing of rendered content over the local network using the NDI library

  • Sharing of rendered content to other applications using Spout (only on Windows)