Trianglesceneviewer
From Manta Wiki
The Triangle Scene Viewer is a scene module accessible through bin/manta which loads a triangle mesh from a .obj file. For animation multiple key frames may be loaded from different .obj files.
Building
First enable the SCENE_TRIANGLESCENEVIEWER option in ccmake or from the command line in your build directory:
cmake -DSCENE_TRIANGLESCENEVIEWER:BOOL=TRUE ..
Then rebuild the source with make. The file lib/libscene_triangleSceneViewer.{dylib,so} should be built.
Running
Use the -scene option to select the module, be sure to use parentheses (in quotes) on the command line to specify options for the module.
bin/manta -scene "lib/libscene_triangleSceneViewer.dylib( -model file.obj )" bin/manta -scene "lib/libscene_triangleSceneViewer.dylib( -model file.obj -DynBVH )"
Additional options:
bin/manta -scene lib/libscene_triangleSceneViewer.dylib
Make_scene args: 0
Valid options for scene meshViewer:
-BSP - use BSP acceleration structure
-DynBVH - use DynBVH acceleration structure
-KDTree - use KDTree acceleration structure
-rgrid - use single ray recursive grid acceleration structure
-model - Required. The file to load (obj or ply file)
Can call this multiple times to load an animation.
-save [filename] - save acceleration structure to file (currently kdtree and bsp).
-load [filename] - load acceleration structure from file (currently kdtree and bsp).
-animationLength - Number of seconds animation takes
-interpolateNormals - creates vertex normals if the data does not already contain vertex normals.
-useFaceNormals - force to use only face normals
-smoothAnimation - interpolates between keyframes.
-triangleType - Triangle implementation to use.
Wald_tri, KS_tri.
-overrideMatl - Force to use a material.
flat, eyelight, lambertian, phong, ambientocclusion
-lightPosition - Location of light.
To get the best rendering performance, use the following arguments to bin/manta:
-scene "lib/libscene_triangleSceneViewer.dylib(-DynBVH -model YOUR_MODEL.obj -triangleType Wald_tri)" -camera "pinhole(-normalizeRays -createCornerRays)"
The -createCornerRays, and Wald_tri will allow for certain frustum-based optimizations to take place, such as frustum culling in the triangle intersection. And in ccmake, set MANTA_USE_DYNBVH_APPROXIMATE to OFF. This will result in a slower to build, but much higher quality BVH build.
