star-3d

Surface structuring for efficient 3D geometric queries
git clone git://git.meso-star.fr/star-3d.git
Log | Files | Refs | README | LICENSE

commit 5fbeb5c6df8797aa26d9d03904862bcf52a8be9c
parent edc920604a2c4766308c06b8eab522f5b3583702
Author: Vincent Forest <vincent.forest@meso-star.com>
Date:   Fri, 12 Feb 2016 15:34:51 +0100

Push further the project overview in the README file

Diffstat:
MREADME.md | 79++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-----------------
1 file changed, 62 insertions(+), 17 deletions(-)

diff --git a/README.md b/README.md @@ -1,29 +1,74 @@ # Star 3D -The purpose of the library is to declare a virtual 3D environment that can be -ray-traced and sampled efficiently. Currently, the virtual scene can contain -triangular meshes only. +## Overview -## How to build +Star-3D is a C/C++ library whose purpose is to manage a virtual environment +composed of 3D triangular meshes. The resulting virtual world can then be +ray-traced and sampled, providing an efficient way to deal with geometric data +of arbitrary 3D contents. In addition of purely geometric data, user defined +per vertex attributes can be defined. This provides a simple way to handle 3D +attributes that spatially varies over the geometry surface. The target user of +Star-3D are software engineers that have to deal with complex 3D environments +as numerical simulation engineers, researchers in complex systems or graphics +programmers. Its backend relies on the [Embree](https://embree.github.io) +library to ensure high ray-tracing performances on a wide range of x86 +architectures. -The *Star-3D* library uses [CMake](http://www.cmake.org) and the -[RCMake](https://gitlab.com/vaplv/rcmake/) package to build. It also -depends on the [RSys](https://gitlab.com/vaplv/rsys/) and +The main concept exposed by the Star-3D C API are *shapes*. A *shape* +represents a 3D object whose data is defined by the user and can be updated at +any time. A 3D environment is built by attaching one or several *shapes* to a +*scene*. To access the *scene* data through sampling, ray-tracing or indexing, +one have to enable a *scene session* that commits the current *scene* geometry +as the geometry to use. We point out that a *scene* can also be instantiated +into one or several *shapes*, each with its own attributes (e.g. position). +Since the *scene* geometry is stored once even though it is instantiated +several times, this feature can be used to create extremely complex environment +with a low memory footprint. + +Star-3D is currently used in several softwares dealing with complex arbitrary +3D contents, ranging from graphics applications and thermal simulations to +electromagnetism. Please refer to these projects for informations on their +purpose. + + * [Star-Display](https://gitlab.com/meso-star/star-display.git) + * [Star-Schiff](https://gitlab.com/meso-star/star-schiff.git) + +## Install + +### Pre-requisites + +Star-3D is compatible GNU/Linux as well as Microsoft Windows 7 and later, both +in 64-bits. It was successfully built with the [GNU Compiler +Collection](https://gcc.gnu.org) (versions 4.7 and later) as well as with +Microsoft Visual Studio 2015. It relies on [CMake](http://www.cmake.org) and the +[RCMake](https://gitlab.com/vaplv/rcmake/) package to build. It also depends on +the [RSys](https://gitlab.com/vaplv/rsys/) and [Embree](https://embree.github.io/) libraries. -First ensure that CMake is installed on your system. Then install the RCMake -package as well as the RSys and Embree libraries. Finally generate the project -from the `cmake/CMakeLists.txt` file by appending to the `CMAKE_PREFIX_PATH` -variable the `<RCMAKE_INSTALL_DIR>/lib/cmake`, `<RSYS_INSTALL_DIR>` and -`<EMBREE_INSTALL_DIR>` directories, where `<RCMAKE_INSTALL_DIR>`, -`<RSYS_INSTALL_DIR>` and `<EMBREE_INSTALL_DIR`> are the install directories of -the RCMake package, the RSys and the Embree libraries, respectively. The -generated project can be edited, built, tested and installed as any CMake -project. +### How to build + +First ensure that CMake and a C/C++ compiler is installed on your system. Then +install the [RCMake](https://gitlab.com/vaplv/rcmake.git) package as well as +the [RSys](https://gitlab.com/vaplv/rsys.git) and +[Embree](https://embree.github.io) libraries. Finally generate the project from +the `cmake/CMakeLists.txt` file by appending to the +`CMAKE_PREFIX_PATH` variable the `<RCMAKE_INSTALL_DIR>/lib/cmake`, +`<RSYS_INSTALL_DIR>` and `<EMBREE_INSTALL_DIR>` directories, where +`<RCMAKE_INSTALL_DIR>`, `<RSYS_INSTALL_DIR>` and `<EMBREE_INSTALL_DIR`> are the +install directories of the RCMake package, the RSys and the Embree libraries, +respectively. The resulting project can be edited, built, tested and installed +as any CMake project. + +Example on a GNU/Linux system: + + ~ $ git clone https://gitlab.com/meso-star/star-3d.git + ~ $ mkdir star-3d/build && cd star-3d/build + ~/star-3d/build $ cmake -G "Unix Makefiles" -DCMAKE_PREFIX_PATH="<RCMAKE_INSTALL_DIR>/lib/cmake;<RSYS_INSTALL_DIR>;<EMBREE_INSTALL_DIR>" ../cmake + ~/star-3d/build $ make && make test ## License -*Star-3D* is Copyright (C) |Meso|Star> 2015-2016 (<contact@meso-star.com>). It +Star-3D is Copyright (C) |Meso|Star> 2015-2016 (<contact@meso-star.com>). It is a free software released under the [OSI](http://opensource.org)-approved CeCILL license. You are welcome to redistribute it under certain conditions; refer to the COPYING files for details.