DI-Guy SDK Documentation  13.1
bdiGraphicsInitGraphicsAPI Struct Reference

#include <bdiGraphicsInitGraphicsAPI.h>

Public Attributes

int use_array_format_for_vertex_buffer_data
 If vertex buffer data is not in array form, data will be packed in interleaved form like so: More...
 
diguyGraphicsIndexType default_vertex_type
 This specifies the data type that indices in index buffer data should use. More...
 
int use_shaders
 Determines whether shaders should be loaded and compiled. More...
 
diguyGraphicsShaderLanguage shader_language
 Sets the shader language for loading shaders. More...
 
int transpose_shader_matrices
 Whether matrices that will be used as transforms in shaders should be transposed from the DI-Guy default order. More...
 
bool use_4x3_shader_matrices
 Whether matrices that will be used as transforms in shaders should be sent as 4x3 matrix instead of 4x4. More...
 
int use_cached_optimized_geometry
 Sets whether .flt and .dae files will be loaded as geometry files optimized for DI-Guy use. More...
 
int use_cached_compressed_textures
 Sets whether compressed texture files should be generated from source uncompressed texture files in order to reduce texture memory usage. More...
 
int use_sRGB_corrected_textures
 Sets whether SRGB textures should be used, these allow a relatively free lookup into texture maps that have been transformed into sRGB space allowing a linear lighting pipeline to be setup. More...
 
int use_linear_traversal_draw
 Sets whether DI-Guy draws characters by traversing links in a recursive tree traversal, or in a flat linear traversal. More...
 
int characters_have_world_space_triangle_query
 Experimental bits that allow the octtree to be built from internally loaded scene objects and vehicles to calculate their bounding box. More...
 
int scene_objects_have_world_space_triangle_query
 
int use_shader_instancing
 Experimental to support instancing. More...
 
int instancing_respect_graphics_state_switch
 Experimental to support instancing. More...
 

Member Data Documentation

int bdiGraphicsInitGraphicsAPI::use_array_format_for_vertex_buffer_data

If vertex buffer data is not in array form, data will be packed in interleaved form like so:

vnt vnt vnt vnt vnt vnt

Where 'v' represents three floats specifying vertex position, 'n' represents three floats specifying normal direction, and 't' represents two or more floats specifying texture indices.

If vertex buffer data is in array form, data will be packed like:

vvvvvv nnnnnn tttttt

Where 'v' , 'n', and 't' have the same meanings as above.

The default is 0, do not use array format.

See the documentation for diguyGraphicsVertexFormat for more information.

diguyGraphicsIndexType bdiGraphicsInitGraphicsAPI::default_vertex_type

This specifies the data type that indices in index buffer data should use.

The default is DIGUY_GRAPHICS_INDEX_TYPE_USHORT.

int bdiGraphicsInitGraphicsAPI::use_shaders

Determines whether shaders should be loaded and compiled.

Note the DI-Guy skinned appearances depend on shaders being available and enabled.

Possible values are:

Parameters
0don't use shaders
1do use shaders

Default is 1.

diguyGraphicsShaderLanguage bdiGraphicsInitGraphicsAPI::shader_language

Sets the shader language for loading shaders.

Possible values are:

DIGUY_GRAPHICS_SHADER_LANGUAGE_GLSL DIGUY_GRAPHICS_SHADER_LANGUAGE_HLSL

Default is DIGUY_GRAPHICS_SHADER_LANGUAGE_GLSL

int bdiGraphicsInitGraphicsAPI::transpose_shader_matrices

Whether matrices that will be used as transforms in shaders should be transposed from the DI-Guy default order.

This affects the data passed to/retrieved from the following DI-Guy Graphics API functions:

Note
Change in 12.5 Open Scene Graph uses the transposed form. OpenGL the transpose is done by the video card.
bool bdiGraphicsInitGraphicsAPI::use_4x3_shader_matrices

Whether matrices that will be used as transforms in shaders should be sent as 4x3 matrix instead of 4x4.

This affects the data passed to/retrieved from the following DI-Guy Graphics API functions:

int bdiGraphicsInitGraphicsAPI::use_cached_optimized_geometry

Sets whether .flt and .dae files will be loaded as geometry files optimized for DI-Guy use.

Generated files will be put into a subdirectory of the DI-Guy geometry directory, and will be automatically updated as needed (doesn't exist, or original file is newer).

The .bdg geometry format is a smaller, more efficient version of the geometry data encoded in .flt and .dae files. It is an internal DI-Guy format that is not directly supported by geometry editing programs.

There is no quality trade-off in using optimized geometry files, so it is recommended that they always be enabled.

Default is 1.

int bdiGraphicsInitGraphicsAPI::use_cached_compressed_textures

Sets whether compressed texture files should be generated from source uncompressed texture files in order to reduce texture memory usage.

There is a quality trade-off when using compressed textures. If there are too many undesired artifacts in the generated textures, they should not be used.

Generated files will be put into a subdirectory of the DI-Guy geometry directory, and will be automatically updated as needed (doesn't exist, or original file is newer).

The compressed texture files will be in the .dds (DirectDraw Surface) format.

Default is 0.

int bdiGraphicsInitGraphicsAPI::use_sRGB_corrected_textures

Sets whether SRGB textures should be used, these allow a relatively free lookup into texture maps that have been transformed into sRGB space allowing a linear lighting pipeline to be setup.

OSG 3.0 does not support sRGB textures properly.

Default is 1.

int bdiGraphicsInitGraphicsAPI::use_linear_traversal_draw

Sets whether DI-Guy draws characters by traversing links in a recursive tree traversal, or in a flat linear traversal.

Linear drawing allows for easier culling and some additional performance on simpler characters. Linear drawing is required for bump map support.

Versions of DI-Guy prior to version 11 always used a recursive traversal.

Default is 1.

int bdiGraphicsInitGraphicsAPI::characters_have_world_space_triangle_query

Experimental bits that allow the octtree to be built from internally loaded scene objects and vehicles to calculate their bounding box.

Default is 0 (off); set to 1 to turn on.

**

Note
this functionality requires that diguyGraphicsMesh::free_loader_memory() is not called during the build process.
int bdiGraphicsInitGraphicsAPI::scene_objects_have_world_space_triangle_query
int bdiGraphicsInitGraphicsAPI::use_shader_instancing

Experimental to support instancing.

Default is 0 (off).

int bdiGraphicsInitGraphicsAPI::instancing_respect_graphics_state_switch

Experimental to support instancing.

Instructs the instancing system to respect the graphics state switch of geometry when constructing instance groups. Setting value to 0 while not graphically correct results in increased performance

Default is 1 (on).


The documentation for this struct was generated from the following file: