Castor3D  0.11.0
Multiplatform 3D engine
Building Castor3D

Castor3D uses CMake to build project files.
You just need to launch CMake to build your favorite project file.
Documentation for CastorUtils and Castor3D can be generated using Doxygen.

Tested compilers are:

  • Visual Studio 2019
  • gcc 8.0



Projects

Main Projects

  • CastorUtils: Depends on zlib.
  • Castor3D: Based on CastorUtils, Ahes and ShaderWriter.
  • GuiCommon: Depends on Castor3D and wxWidgets (from 2.9.5, currently 3.1).
  • CastorViewer: Depends on GuiCommon and wxWidgets.

Plugins

Importers

  • ASSIMP: Depends on Castor3D and Assimp.
  • PLY: Depends on Castor3D.
  • OBJ: Depends on Castor3D.

Dividers

  • Loop: Depends on Castor3D.
  • Phong: Depends on Castor3D.
  • PN-Triangles: Depends on Castor3D.

PostEffects

  • Bloom: Depends on Castor3D.
  • FilmGrain: Depends on Castor3D.
  • GrayScale: Depends on Castor3D.
  • LightStreaks: Depends on Castor3D.
  • FXAA: Depends on Castor3D.
  • SMAA: Depends on Castor3D.
  • Linear Motion Blur: Depends on Castor3D.

Generators

  • DiamondSquareTerrain: Depends on Castor3D.

Generic

  • CastorGUI: Depends on Castor3D.

ToneMappings

  • LinearToneMapping: Depends on Castor3D.
  • HaarmPieterDuikerToneMapping: Depends on Castor3D.
  • HejlBurgessDawsonToneMapping: Depends on Castor3D.
  • ReinhardToneMapping: Depends on Castor3D.
  • Uncharted2ToneMapping: Depends on Castor3D.

Test projects

  • CastorTest: Base library for testing, depends on CastorUtils.
  • CastorUtilsTest: Allows you to run unit and performance tests for CastorUtils, depends on CastorUtils and CastorTest.
  • Castor3DTest: Allows you to run unit tests for Castor3D, depends on Castor3D and CastorTest.

Tools

  • Aria: Depends on CastorUtils, Boost, sqlite and wxWidgets.
  • CastorMeshConverter: Depends on Castor3D and wxWidgets.
  • CastorMeshUpgrader: Depends on Castor3D and wxWidgets.
  • CastorTestLauncher: Depends on Castor3D.
  • DiffImage: Depends on CastorUtils.
  • ImgConverter: Depends on wxWidgets.

Options

On GNU/Linux the default install directory is in /usr/local.
You can change this directory by changing the CMAKE_INSTALL_PREFIX value.
The sample, tool and test applications are installed in install_dir/bin/
The main libraries (CastorUtils and Castor3D) are installed in install_dir/lib/ on GNU/Linux, and in install_dir/bin/ on Windows.
The plug-ins are installed in install_dir/lib/Castor3D/
The build is configurable through CMake using the following options:

  • PROJECTS_BINARIES_OUTPUT_DIR
    Used to specify the root directory for compiled binaries.
    Inside this folder, the bin, lib, and share directories will be created, and binaries will be put in the appropriate folders.
    Some files will also be copied in share directory, that are used by the projects.
    On Windows, the external DLLs will be copied in bin folder, if they are found.
  • PROJECTS_USE_PRECOMPILED_HEADERS
    Used to enable/disable the use of Precompiled Headers for the compilation.
  • PROJECTS_USE_PRETTY_PRINTING
    If it is enabled, and if A-Style is found, new test projects will be
    created, allowing the run of A-Style over each project's source file.
  • CASTOR_BUILD_CASTOR3D
    This special option allows you to disable build of Castor3D, and every
    other project depending on it, resulting in the build of CastorUtils and
    CastorUtilsTest only.
  • CASTOR_BUILD_PLUGINS
    Another special option allowing you to disable the build of plug-ins.
  • CASTOR_BUILDGRP_DIVIDER
    Enables the build of Divider plug-ins.
  • CASTOR_BUILDGRP_GENERATOR
    Enables the build of Generator plug-ins.
  • CASTOR_BUILDGRP_GENERIC
    Enables the build of Generic plug-ins.
  • CASTOR_BUILDGRP_IMPORTER
    Enables the build of Importer plug-ins.
  • CASTOR_BUILDGRP_INTEROP
    Enables the build of Bindings.
  • CASTOR_BUILDGRP_PARTICLES
    Enables the build of Particles plug-ins.
  • CASTOR_BUILDGRP_POSTFX
    Enables the build of PostEffect plug-ins.
  • CASTOR_BUILDGRP_SAMPLE
    Enables the build of sample applications.
  • CASTOR_BUILDGRP_SETUP
    Allows you to build setup projects.
  • CASTOR_BUILDGRP_TEST
    Allows you to build test applications.
  • CASTOR_BUILDGRP_TONEMAPS
    Allows you to build ToneMapping plug-ins (note that LinearToneMapping is always built).
  • CASTOR_BUILDGRP_TOOL
    Enables the build of tools (applications and tests).
  • CASTOR_BUILD_DIVIDER_(NAME)
    Enables the build of (NAME) divider plug-in.
  • CASTOR_BUILD_GENERATOR_(NAME)
    Enables the build of (NAME) generator plug-in.
  • CASTOR_BUILD_GENERIC_(NAME)
    Enables the build of (NAME) generic plug-in.
  • CASTOR_BUILD_IMPORTER_(NAME)
    Enables the build of (NAME) importer plug-in.
  • CASTOR_BUILD_INTEROP_(NAME)
    Enables the build of (NAME) binding.
  • CASTOR_BUILD_POSTFX_(NAME)
    Enables the build of (NAME) post-effect plug-in.
  • CASTOR_BUILD_SAMPLE_(NAME)
    Enables the build of (NAME) technique plug-in.
  • CASTOR_BUILD_TONEMAP_(NAME)
    Enables the build of (NAME) tone mapping plug-in.
  • CASTOR_BUILD_TEST_(NAME)
    Enables the build of (NAME) test application.