| 
    faogenlib3
    
   | 
 
fast ambient occlusion generator library More...
Typedefs | |
| typedef int | obj_handle | 
| A type that represents object handle.  | |
Enumerations | |
| enum | e_index_type { INDEX_U16, INDEX_U32 } | 
| Selects index type.  More... | |
Functions | |
| bool | initialize () | 
| void | shutdown () | 
| obj_handle | create_object_v (float const *vertices3f, size_t vertices_stride, size_t num_vertices, e_index_type index_type, void const *triangle_indices, size_t num_indices) | 
| obj_handle | create_object_vn (float const *vertices3f, size_t vertices_stride, float const *normals3f, size_t normals_stride, size_t num_vertices, e_index_type index_type, void const *triangle_indices, size_t num_indices) | 
| obj_handle | create_object_vnt (float const *vertices3f, size_t vertices_stride, float const *normals3f, size_t normals_stride, float const *texcoords2f, size_t texcoords_stride, size_t num_vertices, e_index_type index_type, void const *triangle_indices, size_t num_indices) | 
| void | set_object_matrix (obj_handle object_id, float const *matrix) | 
| bool | start_ao_gen_vert (obj_handle object_id, unsigned quality, int hemisphere_mode) | 
| bool | start_ao_gen_tex (obj_handle object_id, unsigned quality, unsigned width, unsigned height, int hemisphere_mode) | 
| unsigned | num_iterations (unsigned quality) | 
| void | ao_vert_generate (size_t iterations) | 
| void | ao_tex_generate (size_t iterations) | 
| bool | results_ready () | 
| float const * | get_vert_results () | 
| float const * | get_tex_results () | 
| void | destroy_object (obj_handle object_id) | 
fast ambient occlusion generator library
| void faogenlib3::ao_tex_generate | ( | size_t | iterations | ) | 
Perform texture ao generation.
| iterations | number of iterations in this step. | 
| void faogenlib3::ao_vert_generate | ( | size_t | iterations | ) | 
Perform per-vertex ao generation.
| iterations | number of iterations in this step. | 
| obj_handle faogenlib3::create_object_v | ( | float const * | vertices3f, | 
| size_t | vertices_stride, | ||
| size_t | num_vertices, | ||
| e_index_type | index_type, | ||
| void const * | triangle_indices, | ||
| size_t | num_indices | ||
| ) | 
Create object. For objects, created with this function ambient occlusion data can't be generated, they will serve only as occludders for other objects.
| vertices3f | A pointer to the first coordinate of the first vertex in the array. Each vertex has 3 coordinates - X, Y, Z. | 
| vertices_stride | The byte offset between consecutive vertices. When stride is zero, the vertices are tightly packed in the array. | 
| num_vertices | Total number of vertices. | 
| index_type | The type of the values in triangle_indices | 
| triangle_indices | A pointer to the location where the indices are stored | 
| num_indices | Number of indices. Must be a multiple of 3. | 
| obj_handle faogenlib3::create_object_vn | ( | float const * | vertices3f, | 
| size_t | vertices_stride, | ||
| float const * | normals3f, | ||
| size_t | normals_stride, | ||
| size_t | num_vertices, | ||
| e_index_type | index_type, | ||
| void const * | triangle_indices, | ||
| size_t | num_indices | ||
| ) | 
Create object. For objects, created with this function only per-vertex ambient occlusion data can be generated.
| vertices3f | A pointer to the first coordinate of the first vertex in the array. Each vertex has 3 coordinates - X, Y, Z. | 
| vertices_stride | The byte offset between consecutive vertices. When stride is zero, the vertices are tightly packed in the array. | 
| normals3f | A pointer to the first coordinate of the first normal in the array. Each normal has 3 coordinates - X, Y, Z. | 
| normals_stride | The byte offset between consecutive normals. When stride is zero, the normals are tightly packed in the array. | 
| num_vertices | Total number of vertices. | 
| index_type | The type of the values in triangle_indices | 
| triangle_indices | A pointer to the location where the indices are stored | 
| num_indices | Number of indices. Must be a multiple of 3. | 
| obj_handle faogenlib3::create_object_vnt | ( | float const * | vertices3f, | 
| size_t | vertices_stride, | ||
| float const * | normals3f, | ||
| size_t | normals_stride, | ||
| float const * | texcoords2f, | ||
| size_t | texcoords_stride, | ||
| size_t | num_vertices, | ||
| e_index_type | index_type, | ||
| void const * | triangle_indices, | ||
| size_t | num_indices | ||
| ) | 
Create object. For objects, created with this function both per-vertex and texture ambient occlusion can be generated.
| vertices3f | A pointer to the first coordinate of the first vertex in the array. Each vertex has 3 coordinates - X, Y, Z. | 
| vertices_stride | The byte offset between consecutive vertices. When stride is zero, the vertices are tightly packed in the array. | 
| normals3f | A pointer to the first coordinate of the first normal in the array. Each normal has 3 coordinates - X, Y, Z. | 
| normals_stride | The byte offset between consecutive normals. When stride is zero, the normals are tightly packed in the array. | 
| texcoords2f | A pointer to the first component of the first texcoord in the array. Each texcoord has 2 components - U, V. | 
| texcoords_stride | The byte offset between consecutive texcoords. When stride is zero, the texcoords are tightly packed in the array. | 
| num_vertices | Total number of vertices. | 
| index_type | The type of the values in triangle_indices | 
| triangle_indices | A pointer to the location where the indices are stored | 
| num_indices | Number of indices. Must be a multiple of 3. | 
| void faogenlib3::destroy_object | ( | obj_handle | object_id | ) | 
Delete object from the scene.
| object_id | handle, returned by create_object_v, create_object_vn or create_object_vnt | 
| float const* faogenlib3::get_tex_results | ( | ) | 
Retrieve generated texture ao data.
| float const* faogenlib3::get_vert_results | ( | ) | 
Retrieve generated per-vertex ao data.
| bool faogenlib3::initialize | ( | ) | 
Initialize faogenlib.
      
  | 
  inline | 
Helper function to calculate actual number of iterations for specified quality value.
| bool faogenlib3::results_ready | ( | ) | 
Check if ao data is generated.
| void faogenlib3::set_object_matrix | ( | obj_handle | object_id, | 
| float const * | matrix | ||
| ) | 
Set transformation matrix for object.
| object_id | handle, returned by create_object_v, create_object_vn or create_object_vnt | 
| matrix | pointer to 4*4 matrix | 
| void faogenlib3::shutdown | ( | ) | 
Shutdown faogenlib. Destroys all left objects.
| bool faogenlib3::start_ao_gen_tex | ( | obj_handle | object_id, | 
| unsigned | quality, | ||
| unsigned | width, | ||
| unsigned | height, | ||
| int | hemisphere_mode | ||
| ) | 
Start texture ambient occlusion generation.
| object_id | object_id handle, returned by create_object_vnt | 
| quality | This parameter controls number of iterations. Must be in [1, 100] range. | 
| width | Width of the AO map to be generated. Must be a power of 2 and in [1, 4096] range. | 
| height | Height of the AO map to be generated. Must be a power of 2 and in [1, 4096] range. | 
| hemisphere_mode | 0 for no hemisphere, 1 for y-axis up, 2 for z-axis up. | 
| bool faogenlib3::start_ao_gen_vert | ( | obj_handle | object_id, | 
| unsigned | quality, | ||
| int | hemisphere_mode | ||
| ) | 
Start per-vertex ambient occlusion generation.
| object_id | Handle, returned by create_object_vn or create_object_vnt | 
| quality | This parameter controls number of iterations. Must be in [1, 100] range. | 
| hemisphere_mode | 0 for no hemisphere, 1 for y-axis up, 2 for z-axis up. | 
 1.8.8