TAPs 0.7.7.3
TAPsModelDeformableGLSL.hpp File Reference
#include "../GLSL/TAPsGLSLFns.hpp"
#include "TAPsOpenGLModel.hpp"
#include "../OpenGL/TAPsOpenGLTexture.hpp"
#include "../CG/TAPsGridGenerator_ForTheDefModBasedOnMSS.hpp"
#include <iostream>
#include <fstream>
#include <iomanip>
#include "Support/TAPsSpringPropertiesForDefModel.hpp"
#include "TAPsModelDeformableGLSL_Connectivity3x3.cpp"
#include "TAPsModelDeformableGLSL.cpp"
Include dependency graph for TAPsModelDeformableGLSL.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  ModelDeformableGLSL< T >
class  ModelDeformableGLSL< T >::IC_Thresholds

Defines

#define TAPs_DEFORMABLE_MODEL_VISUALIZATION_RT_GEN_MESH
#define TAPs_MODEL_DEFORMABLE_USE_GRADIENT_TEXTURE
#define TAPs_NVIDIA_CARD
#define TAPs_MODEL_DEFORMABLE_GLSL_VERLET_INTEGRATION
#define TAPs_MODEL_DEFORMABLE_USE_TEXTURE_CONNECTIVITY_3X3
#define TAPs_MODEL_DEFORMABLE_USE_CONNECTIVITY_FULL

Define Documentation

#define TAPs_DEFORMABLE_MODEL_VISUALIZATION_RT_GEN_MESH

How To Use:

1) Since the model relies on GLEW library and use GLSL, glew.h has to be included before gl.h. Recommendation is to add the code below at the start of a program // This include statement is here, since glew.h has to be included before gl.h #include <TAPs/GLSL/TAPsGLSLFns.hpp>

2) Currently recommendation for including this model by adding the code below to a program //============================================================================= //------------------------------------------------------------------- //! If "TAPs_USE_TEXTURE_CONNECTIVITY_ONE" is not defined, //! then "TAPs_USE_TEXTURE_CONNECTIVITY_3X3" (default) is used. (NOT FINISHED YET!) #define TAPs_USE_TEXTURE_CONNECTIVITY_ONE //------------------------------------------------------------------- //------------------------------------------------------------------- //! If "TAPs_MODEL_DEFORMABLE_VISUALIZATION_ON_CPU" is not defined, //! then "TAPs_MODEL_DEFORMABLE_VISUALIZATION_ON_GPU" (default) is used. //#define TAPs_MODEL_DEFORMABLE_VISUALIZATION_ON_CPU //------------------------------------------------------------------- //------------------------------------------------------------------- //! For visualization on GPU, not applicalble for visualization on CPU //! ----------------------------------------------------------------- //! If "TAPs_MODEL_DEFORMABLE_VISUALIZATION_GPU_MARCHING_CUBES_WITH_PNTRIANGLES" is not defined, //! then "TAPs_MODEL_DEFORMABLE_VISUALIZATION_GPU_MARCHING_CUBES_WITHOUT_PNTRIANGLES" (default) is used. //#define TAPs_MODEL_DEFORMABLE_VISUALIZATION_GPU_MARCHING_CUBES_WITH_PNTRIANGLES //------------------------------------------------------------------- #include <TAPs/OpenGLModel/TAPsModelDeformableGLSL.hpp> //=============================================================================

3) ModelDeformableGLSL class is a deformable model with most computations on GPU via GLSL. This class uses 3D textures for both simulation and visualization domains. The class has a lot of defined stuffs for selecting compilation options. The code that uses this class can define some of these defines to select the compilation options for the deformable model. Otherwise, the default options will be used.

Visualization Options -- can be more than one #define TAPs_DEFORMABLE_MODEL_VISUALIZATION_RT_GEN_MESH // Default //#define TAPs_DEFORMABLE_MODEL_VISUALIZATION_3D_TEXTURE // Not Finished Yet! //#define TAPs_DEFORMABLE_MODEL_VISUALIZATION_RAY_CASTING // Not Implemented Yet! //#define TAPs_DEFORMABLE_MODEL_VISUALIZATION_MESH // Not Implemented Yet!

If TAPs_DEFORMABLE_MODEL_VISUALIZATION_RT_GEN_MESH is defined, then the options below can be chosen. Select whether ModelDeformableGLSL_Visualization_RTGenMesh will use buffers (memory on GPU such as VBO -- vertex buffer object) or not. //#define TAPs_DEFORMABLE_MODEL_VISUALIZATION_NOT_USE_BUFFERS // Not Finished Yet! -- Will not be implemented! //#define TAPs_DEFORMABLE_MODEL_VISUALIZATION_USE_BUFFERS // Default Select whether ModelDeformableGLSL_Visualization_RTGenMesh will use GPU for Marching Cubes with PN-Triangles rendering. //#define TAPs_DEFORMABLE_MODEL_VISUALIZATION_ON_CPU // This option is to avoid using geometry shader. //#define TAPs_DEFORMABLE_MODEL_VISUALIZATION_ON_GPU // Default Select whether ModelDeformableGLSL_Visualization_RTGenMesh will use Marching Cubes with or without PN-Triangles rendering. This option is available only with GPU Rendering. //#define TAPs_DEFORMABLE_MODEL_VISUALIZATION_GPU_MARCHING_CUBES_WITH_PNTRIANGLES //#define TAPs_DEFORMABLE_MODEL_VISUALIZATION_GPU_MARCHING_CUBES_WITHOUT_PNTRIANGLES // Default

Integration Method Selection -- allow only one selection //#define TAPs_EXPLICIT_EULER_INTEGRATION // Not Finished Yet! -- Will not be implemented! //#define TAPs_VERLET_INTEGRATION // Default

Connectivity Texture Arrangement Selection (for GPU) -- allow only one selection //#define TAPs_USE_TEXTURE_CONNECTIVITY_ONE //#define TAPs_USE_TEXTURE_CONNECTIVITY_3X3 // Default Each connectivity texture type has the same options for connectivity selection: //#define TAPs_DEFORMABLE_MODEL_USE_CONNECTIVITY_FACE -- 6 connections (F) //#define TAPs_DEFORMABLE_MODEL_USE_CONNECTIVITY_VERTEX -- 8 connections (V) //#define TAPs_DEFORMABLE_MODEL_USE_CONNECTIVITY_EDGE -- 12 connections (E) //#define TAPs_DEFORMABLE_MODEL_USE_CONNECTIVITY_HOME -- 1 connection (H) The options above are added up to form the connectivity (total := 27) Good combinations are F+V+E and F+V (with/without H (the home spring)). //#define TAPs_DEFORMABLE_MODEL_USE_CONNECTIVITY_PLANE -- 8 connections (center group) The option above can be only combined with the home spring. Or just define TAPs_DEFORMABLE_MODEL_USE_CONNECTIVITY_FULL for full connectivity //#define TAPs_DEFORMABLE_MODEL_USE_CONNECTIVITY_FULL -- (Default) 27 connections (F+V+E+H) If TAPs_GRID_GENERATOR_BY_SOFTWARE is not defined then the grid generator will use OpenGL drawing (hardware) to generate the grid data.

Definition at line 133 of file TAPsModelDeformableGLSL.hpp.

#define TAPs_MODEL_DEFORMABLE_GLSL_VERLET_INTEGRATION

Definition at line 265 of file TAPsModelDeformableGLSL.hpp.

#define TAPs_MODEL_DEFORMABLE_USE_CONNECTIVITY_FULL

Define one option from these selections: One set //#define TAPs_DEFORMABLE_MODEL_USE_CONNECTIVITY_FACE -- 6 connections //#define TAPs_DEFORMABLE_MODEL_USE_CONNECTIVITY_VERTEX -- 8 connections //#define TAPs_DEFORMABLE_MODEL_USE_CONNECTIVITY_EDGE -- 12 connections //#define TAPs_DEFORMABLE_MODEL_USE_CONNECTIVITY_HOME -- 1 connection Two sets //#define TAPs_DEFORMABLE_MODEL_USE_CONNECTIVITY_FACE_VERTEX //#define TAPs_DEFORMABLE_MODEL_USE_CONNECTIVITY_FACE_EDGE //#define TAPs_DEFORMABLE_MODEL_USE_CONNECTIVITY_FACE_HOME //#define TAPs_DEFORMABLE_MODEL_USE_CONNECTIVITY_VERTEX_EDGE //#define TAPs_DEFORMABLE_MODEL_USE_CONNECTIVITY_VERTEX_HOME //#define TAPs_DEFORMABLE_MODEL_USE_CONNECTIVITY_EDGE_HOME Three sets //#define TAPs_DEFORMABLE_MODEL_USE_CONNECTIVITY_FACE_VERTEX_EDGE //#define TAPs_DEFORMABLE_MODEL_USE_CONNECTIVITY_FACE_VERTEX_HOME //#define TAPs_DEFORMABLE_MODEL_USE_CONNECTIVITY_FACE_EDGE_HOME //#define TAPs_DEFORMABLE_MODEL_USE_CONNECTIVITY_VERTEX_EDGE_HOME Four sets //#define TAPs_DEFORMABLE_MODEL_USE_CONNECTIVITY_FULL // Default (26+1 connections) Or //#define TAPs_DEFORMABLE_MODEL_USE_CONNECTIVITY_PLANE -- 8 connections (center group) //#define TAPs_DEFORMABLE_MODEL_USE_CONNECTIVITY_PLANE_HOME -- 8+1 connections (center group + home)

Definition at line 413 of file TAPsModelDeformableGLSL.hpp.

#define TAPs_MODEL_DEFORMABLE_USE_GRADIENT_TEXTURE

Define one option from these selections:

TAPs_DEFORMABLE_MODEL_USE_GRADIENT_TEXTURE // Default

TAPs_DEFORMABLE_MODEL_NOT_USE_GRADIENT_TEXTURE

Definition at line 201 of file TAPsModelDeformableGLSL.hpp.

Referenced by ModelDeformableGLSL< T >::SetupBuffersAndShaders(), and ModelDeformableGLSL_Visualization_RTGenMesh< T >::SetupShadersForDrawing().

#define TAPs_MODEL_DEFORMABLE_USE_TEXTURE_CONNECTIVITY_3X3

TAPs_USE_TEXTURE_CONNECTIVITY_3X3 is for using 3x3 RGBA texels for defining connectivity Currently each component of the texel is a GL_RGBA32F_ARB.

TAPs_USE_TEXTURE_CONNECTIVITY_ONE is for using one RGBA texel for defining connectivity. Each component of the texel is an unsigned byte (8-bit).

Definition at line 301 of file TAPsModelDeformableGLSL.hpp.

Referenced by ModelDeformableGLSL< T >::SetupBuffersAndShaders().

#define TAPs_NVIDIA_CARD

Definition at line 238 of file TAPsModelDeformableGLSL.hpp.

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines