commit e55048b2657e71f6eb48c321ca8cbe7c2e41ce94
parent 2c6070b6c135084ea3356ebe57a2e5cd61b7038a
Author: Vincent Forest <vincent.forest@meso-star.com>
Date: Thu, 17 Sep 2020 11:28:57 +0200
Update the README overview
Diffstat:
| M | README.md | | | 31 | ++++++++++++++++--------------- |
1 file changed, 16 insertions(+), 15 deletions(-)
diff --git a/README.md b/README.md
@@ -2,21 +2,22 @@
## Overview
-Star-2D is a C/C++ library whose purpose is to manage a virtual 2D environment
-composed of line segments. The resulting virtual world can then be ray-traced
-and sampled, providing an efficient way to deal with geometric data of
-arbitrary 2D contents. Actually, Star-2D internally manages the 2D scene
-through 3D primitives whose Z component is assumed to be 0 or infinity. The
-scene ray-tracing can thus be performed in the XY 2D plane or in fictive 3D
-world where a line segment is actually a plane extruded to [-infinity,
-+infinity] along the Z dimension. To ensure high ray tracing efficiency, the
-Star-2D back-end heavily relies on the
-[IntelĀ® Rendering Framework](https://software.intel.com/sdvis):
-[Embree](https://embree.github.io)
-library that provides several ray-tracing kernels optimized for a wide range of
-data workloads. The target users of Star-2D are thus programmers that have to
-efficiently deal with complex 2D environment as numerical simulation engineers
-or researchers in complex systems.
+Star-2D is a C library that manages a virtual 2D environment composed of line
+segments. The resulting virtual scene can then be accessed through
+*ray-tracing*, *uniform sampling* or *closest point query*, providing an
+efficient way to deal with geometric data of arbitrary 2D contents. To ensure
+the efficiency of these operators, Star-3D internally relies on [Intel(R)
+Rendering Framework](https://software.intel.com/en-us/rendering-framework):
+[Embree](https://embree.github.io) that provides highly optimized acceleration
+structures as well as traversal kernels for a wide range of data workloads.
+
+To query the scene data one has to create a *view* of the scene. On its
+creation, the view internally builds data structures required by the
+aforementioned access operators. These data structures are built from the scene
+geometry as defined at the moment of the view creation; a view is thus
+insensitive to scene updates following its creation. This means that several
+views can be used to register different states of the same scene, giving to the
+caller a great flexibility to manage the scene data.
## Install