Warning: Undefined array key "HTTP_ACCEPT_LANGUAGE" in /home/clients/50536745d503cc9bd290722a231d5f8f/web/includes/o3_common.php on line 79

Deprecated: strpos(): Passing null to parameter #1 ($haystack) of type string is deprecated in /home/clients/50536745d503cc9bd290722a231d5f8f/web/includes/o3_common.php on line 79
oZone3D.Net - Demoniak3D Developer Guide




GeeXLab
Current version: 0.45.1
>GeeXLab homepage

FurMark
Current version: 1.30.0
>FurMark homepage

GPU Caps Viewer
Current version: 1.55.0.0
>GPU Caps Viewer homepage

GPU Shark
Current version: 0.26.0.0
>GPU Shark homepage


Blogs
>JeGX's HackLab

Geeks3D's Articles
>GPU Memory Speed Demystified

>Multi-Threading Programming Resources

>GeForce and Radeon OpenCL Overview

>How to Get your Multi-core CPU Busy at 100%

>How To Make a VGA Dummy Plug

>Night Vision Post Processing Filter

PhysX FluidMark
Current version: 1.5.4
>FluidMark homepage

TessMark
Current version: 0.3.0
>TessMark homepage

ShaderToyMark
Current version: 0.3.0
>ShaderToyMark homepage
>ShaderToyMark Scores

Demoniak3D
Current Version: 1.23.0
>Demoniak3D
>Download
>Libraries and Plugins
>Demos
>Online Help - Reference Guide
>Codes Samples
 
oZone3D.Net - Demoniak3D Developer Guide


» Back To Index

The <model> node

Function

The model node makes it possible to define a 3d model. In the case of Demoniak3D, a model is a hierarchy of objects mainly made up with meshes. Some objects like the gizmos can be present in this hierarchy in order to be used as pivot points and to set complex hierarchies. More simply, the model can be seen as an interface to easily modify the properties of a large number of meshes.

Demoniak3D can directly load 3d models in the following formats:
  • *.3DS (3d Studio MAX binary format)
  • *.OBJ (ASCII format of Alias|Wavefront)
  • *.ASE (3d Studio MAX ASCII format)
  • *.TXT (MilkShape3D ASCII format)
  • *.O3MDL (oZone3D engine binary format)
  • *.XML (Demoniak3D own XML model format)
Actually, the 3d models loaders do not handle pivots, especially rescaling (application of a scaling factor to the pivot points). This is particularly true for the *.3DS format.

When modeling, it is recommended to apply the following practices:
  • always give an explicit name to each meshes that is part of the 3D model. For example when modeling a car, the mesh representing the front right wheel should be called RightFrontWheel and not Torus01 which is the default name. For the *.3DS format, do not exceed 10 characters.
  • each material must always be given an explicit name. For performances reasons, it is necessary to decrease the maximum number of materials and to avoid having several materials for only one mesh. The ideal case is to have only one material with only one texture. Use at the maximum the handling possibilities of the textures coordinates provided by your modeling software to pack several textures just in one big texture. For the *.3DS format, do not give names that exceed 10 characters for materials. In the same way, for the *.3DS, the textures filenames must respect the 8.3 format (standard format of filenames in the DOS Operating System): 8 characters + 3 for the extension..
  • for the *.OBJ format, it is strongly recommended to join the material file (*. mtl) with the *.obj file.

General syntax

<model
	name=""
	filename=""
	load_texture="TRUE"
	render="TRUE"
	texturing="FALSE"
	lighting="FALSE"
	improve_specular_highlights="TRUE"
	normalize="FALSE"
	two_sides_lighting="FALSE"
	flip_normals="FALSE"
	auto_spin="FALSE"
	back_face_culling="FALSE"
	shadow_caster="FALSE"
	compute_normals="TRUE"
	compute_tangent_space="TRUE"
	average_normals="FALSE"
	display_bounding_box="FALSE"
	display_bounding_sphere="FALSE"
	display_tripod="FALSE"
	auto_update_direction="FALSE"
	polygon_mode="SOLID"
	shading_mode="SMOOTH"
	motion_path=""
	play_motion_path="TRUE"
	display_motion_path_curve="FALSE"
	display_motion_path_tangents="FALSE"
	link_to_motion_path="FALSE"
	motion_path_time_offset="0.0"
	motion_path_time_step="0.001" 
	camera_collision="FALSE"
	camera_collision_bv_shape="BOX"
	camera_collision_entity="MODEL"
	use_vbo="FALSE"
	use_user_transformation="TRUE"
	nx_add_to_physics_engine="FALSE"
	check_crc32="0" >
	
	
	<add_child
		name="" />
			
	<apply_ambient
		r="0.0" 
		g="0.0" 
		b="0.0" 
		a="0.0" />
	
	<apply_diffuse
		r="0.0" 
		g="0.0" 
		b="0.0" 
		a="0.0" />

	<apply_specular_exp
		exp="0.0" />

	<apply_specular
		r="0.0" 
		g="0.0" 
		b="0.0" 
		a="0.0" />

	<bump_mapping_attach_light
		name="" />

	<loading_option
		load_texture="TRUE" 
		load_normal_map="FALSE" 
		pixel_format="RGB_BYTE" 
		auto_gen_mipmaps="FALSE" 
		compute_vertices_normals="TRUE" 
		compute_tangent_space_vectors="TRUE" 
		average_vertices_normals="FALSE" 
		free_pixmap_after_upload="FALSE" 
		s3tc="FALSE" />
		
		
	<ambient_occlusion_lighting
		ambient_occlusion_map="" />

	<optimize
		vertex_epsilon="0.0001"
		method="NONE" />

	<orientation
		ang="0.0" 
		x="0.0" 
		y="0.0" 
		z="0.0" />

	<orientation_pitch_yaw_roll
		pitch="0.0" 
		yaw="0.0" 
		roll="0.0" />

	<position
		x="0.0" 
		y="0.0" 
		z="0.0" />

	<remove_child
		name="" />
	
	<scale
		x="1.0" 
		y="1.0" 
		z="1.0" />

	<spin_values
		x="0.0" 
		y="0.0" 
		z="0.0" />

	<vertices_color
		r="1.0" 
		g="1.0" 
		b="1.0" 
		a="1.0" />
		
	<alpha_test_params 
		active="FALSE" 
		func="CMP_FUNC_GREATER" 
		ref="0.5" />

	<blending_params 
		active="FALSE" 
		src_factor="BLENDING_FACTOR_SRC_ALPHA" 
		dst_factor="BLENDING_FACTOR_ONE_MINUS_SRC_ALPHA" />
		
	<nx_linear_velocity 
		x="0.0" 
		y="0.0" 
		z="0.0" 
		damping="0.5" 
		sleep_threshold="0.14*0.14" />

	<nx_angular_velocity 
		x="0.0" 
		y="0.0" 
		z="0.0" 
		damping="0.5" 
		sleep_threshold="0.15*0.15" />
		
	<nx_misc_data 
		mass="0.0" 
		density="0.0" 
		actor_type="DYNAMIC" />

	<shader_program 
		name="" 
		gpu_shader_for_ambient_pass="" 
		apply_to_all_materials="FALSE" />

		
	</model>

model element

model is the xml tag that defines a model node.

Attributes:
  • name - [STR127] - name of the node. This name will make it possible to refer this node throughout the XML script.

  • filename - [STR255] - name of the file of the 3d model to be loaded. The format of the 3d files depends on the plugins available with Hyperion:
    • Plugin for loading the 3DStudio binary format (*.3ds)
    • Plugin for loading the 3DStudio ASCII format (*.ase)
    • Plugin for loading the MilkShape3D ASCII format (*.txt)
    • Plugin for loading the Alias|WaveFront ASCII format (*.obj)
    Hyperion can of course load the native oZone3D engine format : the *.o3mdl format. This format can be created with the 3d LynX viewer that may convert 3D files into the o3mdl format.

  • load_texture - [BOOLEAN] - enables (TRUE) or disables (FALSE) the loading of textures while loading the model - default value: TRUE

  • render - [BOOLEAN] - enables (TRUE) or disables (FALSE) the model rendering - default value: TRUE

  • lighting - [BOOLEAN] - enables (TRUE) or disables (FALSE) lighting calculations - default value: FALSE

  • normalize - [BOOLEAN] - enables (TRUE) or disables (FALSE) the standardization of the normals to the vertices after having used the LUA HYP_SetObjectScale function - default value: FALSE

  • two_sides_lighting - [BOOLEAN] - enables (TRUE) or disables (FALSE) lighting calculations on both sides (face and back) of every single face of the mesh - default value: FALSE

  • flip_normals - [BOOLEAN] - enables (TRUE) or disables (FALSE) the inversion of the normals of the faces of the meshes - default value: FALSE

  • improve_specular_highlights - [BOOLEAN] - makes it possible to improve the specular reflections rendering by using a calculation method that utilizes the true "half-vector". The specular reflects are more realistic but this involves a slight performances fall - default value: TRUE

  • texturing - [BOOLEAN] - enables (TRUE) or disables (FALSE) the application of textures - default value: FALSE

  • auto_spin - [BOOLEAN] - enables (TRUE) or disables (FALSE) rotation around the axis of the local reference mark of the object. The values of the rotation angles must be specified by the <spin_values> tag - default value: FALSE

  • back_face_culling - [BOOLEAN] - enables (TRUE) or disables (FALSE) the removal of the back faces - default value: FALSE

  • blending - [BOOLEAN] - enables (TRUE) or disables (FALSE) the mixture of the colors - default value: FALSE

  • use_vbo - [BOOLEAN] - enables (TRUE) or disables (FALSE) the use of the vertex buffer objects to accelerate mesh rendering - default value: FALSE
    use_vbo makes it possible to use the vertex-buffer materials (the famous VBO in OpenGL) in order to effectively store the mesh vertices into the graphics board memory. It is recommended to activate this state for static meshes featuring a great number of polygons. A mesh is static if it does not undergo any geometric transformation on its vertices.

  • shadow_caster - [BOOLEAN] - enables (TRUE) or disables (FALSE) the projection of volumic shadows - default value: FALSE

  • compute_normals - [BOOLEAN] - enables (TRUE) or disables (FALSE) the computing of vertices normals - default value: TRUE

  • compute_tangent_space - [BOOLEAN] - enables (TRUE) or disables (FALSE) the computing of vertices tangent space normals (useful for bump mapping) - default value: TRUE

  • average_normals - [BOOLEAN] - enables (TRUE) or disables (FALSE) the averaging of the vertices normals - default value: FALSE

  • display_bounding_box - [BOOLEAN] - enables (TRUE) or disables (FALSE) bounding box rendering - default value: FALSE

  • display_bounding_sphere - [BOOLEAN] - enables (TRUE) or disables (FALSE) bounding sphere rendering - default value: FALSE

  • display_tripod - [BOOLEAN] - displays (TRUE) or hides (FALSE) the mesh local reference mark - default value: FALSE
    Remark: The axis of the tripod are represented with the following colors:
    • X axis: red
    • Y axis: green
    • Z axis: blue
  • auto_update_direction - [BOOLEAN] - enables (TRUE) or disables (FALSE) the automatic direction update (Z axis) of the object's local reference mark (tripod) - default value: FALSE

  • polygon_mode - [ENUM] - specifies the rendering mode the mesh faces:
    • SOLID: the faces are filled (solid) - default value
    • WIREFRAME: the faces are rendered in wire


  • shading_mode - [ENUM] - specifies the way in which the faces are colored:
    • FLAT: the faces are colored in a uniform way
    • SMOOTH: the faces are colored in order to form a colour gradation - default value


  • motion_path - [STR127] - name of the motion path to which one attaches the gizmo in order to perform automatic displacements

  • play_motion_path - [BOOLEAN] - enables (TRUE) or disables (FALSE) the animation of the position along a motion path - default value: TRUE

  • display_motion_path_curve - [BOOLEAN] - displays (TRUE) or hides (FALSE) the motion path - default value: FALSE

  • display_motion_path_tangents - [BOOLEAN] - displays (TRUE) or hides (FALSE) the motion path tangents - default value: FALSE

  • motion_path_time_step - [REAL] - makes it possible to control the animation speed by specifying the temporal increment along the motion-path. Time is standardized along the motion-path, i.e time equals 0.0 for the first keyframe and 1.0 for the last one - default value: 0.001

  • motion_path_time_offset - [REAL] - makes it possible to control the starting time value of the animation. By default this starting value is the standardized time 0.0. This offset makes it possible to place several objects on one motion-path with a time-lag (offset) between each one of them - default value: 0.0

  • check_crc32 - [INTERGER] - performs a crc32 type integrity test on the 3d file while loading. This kind of test is useful to control if the right model has been loaded. That makes it therefore impossible to falsify a Hyperion scene delivered in a binary format : even if the description code of the scene is in binary format, textures and other 3d objects are always accessible in the ususal files type. Anybody could appropriate a project by falsifying some textures or models. The crc32 code of a file can be obtained with the Hyperion_CRC32.exe utility - default value: FALSE

  • camera_collision - [BOOLEAN] - makes it possible to take (TRUE) or not to take (FALSE) into account of this model in the calculations of collisions with the camera. The calculation of the collision is based on the including box of the mesh (bounding box) and on the position of the camera - default value: FALSE

  • camera_collision_bv_shape - [ENUM] - makes it possible to specify the shape of the including volume for the collision tests. The shape of the including volume is to be chosen according to the topology of the model:
    • BOX: bounding box - default value
    • SPHERE: bounding sphere


  • camera_collision_entity - [ENUM] - makes it possible to specify which including volume is used for the collision detection: either that of the complete model or those of submeshes for more precision:
    • MODEL: the including volume of the model is used in the collision calculations - default value.
    • MESH: the including volume of each one of the submeshes is used in the collision calculations.


  • group - [STR127] - name of the group in which to add the current node. A group makes it possible to control the behavior of several objects in a single way.

  • nx_add_to_physics_engine - [BOOLEAN] - makes it possible to add (TRUE) or not add (FALSE) this object in the scene of the physical simulation engine. This makes sense only if the physical engine (NovodeX) is available and if it has been activated in the scene node - default value: FALSE

  • use_user_transformation - [BOOLEAN] - allows to use the user's settings for the position and the orientation of the model. In the case of the O3MFF format, the transformation matrix is already initialized. In order to use this matrix you have to disable user's setting - default value: TRUE

loading_option element

loading_option makes it possible to modify the default options of the 3d objects loaders. Several calls to loading_option make it possible to modify several options.

Attributes:
  • load_texture - [BOOLEAN] - enables the automatic loading of textures with the model. It has the same effect as the load_texture attribute of the model node - default value: TRUE
  • load_normal_map - [BOOLEAN] - loads bump textures (the normals maps) of the model when the bump mapping is performed with a pixel shader - default value: FALSE
    These textures have the same basic name as the base textures but with the DOT3 suffix. Example:
    • base: wood.tga
    • bump: woodDOT3.tga
    The base map is loaded on the texture unit 0 and the normal map on the unit 1.
  • pixel_format - [ENUM] - specifies the pixel format of each texture - default value: RGB_BYTE
    • RGB_BYTE: pixel coded on 3 bytes (1 byte for each component) - default value
    • RGBA_FLOAT: pixel coded on 16 bytes (4 bytes for each component)
  • s3tc - [BOOLEAN] - enables compression hardware of texture according to the S3TC diagram - default value: FALSE
  • auto_gen_mipmaps - [BOOLEAN] - enables the hardware mipmaps generation for textures accompanying the model. In this case, trilinear filtering is activated - default value - default value: FALSE
  • compute_vertices_normals - [BOOLEAN] - enables calculations of the normal vectors (faces and vertices) necessary for lighting - default value: TRUE
  • compute_tangent_space_vectors - [BOOLEAN] - enables calculations of the space tangent vectors. These vectors, more known as the tangent vectors and the binormal vectors are used in the bump mapping algorithms - default value: TRUE
  • average_vertices_normals - [BOOLEAN] - enables the averaging of vertices normals - default value: FALSE
  • free_pixmap_after_upload - [BOOLEAN] - allows to destroy the pixmap and to release the system memory after the texture has been transfered on the graphics controller - default value: FALSE


orientation element

orientation specifies the orientation of the model around an arbitrary axis in its local reference mark.

Attributes:
  • ang - [REAL] - Rotation angle in degrees - default value: 0.0
  • x - [CLAMPED_REAL] - X component of the rotation axis - default value: 0.0
  • y - [CLAMPED_REAL] - Y component of the rotation axis - default value: 0.0
  • z - [CLAMPED_REAL] - Z component of the rotation axis - default value: 0.0
Example
<model>
	<orientation ang="90.0" x="0.0" y="0.0" z="1.0" />
</model>
In this example, the model performs a rotation of 90.0 degrees around the Z axis.

orientation_pitch_yaw_roll element

orientation_pitch_yaw_roll specifies the orientation of the model around the axis of its local reference mark.

Attributes:
  • pitch - [REAL] - Rotation angle in degrees around the X axis - default value: 0.0
  • yaw - [REAL] - Rotation angle in degrees around the Y axis - default value: 0.0
  • roll - [REAL] - Rotation angle in degrees around the Z axis - default value: 0.0
Example
<model>
	<orientation_pitch_yaw_roll pitch="30.0" yaw="45.0" roll="0.0" />
</model>
In this example, the model makes a rotation of 30.0 degrees around the X axis and of 45.0 degrees around the Y axis.

position element

position specifies the X, Y and Z position of the model in its local reference mark or compared to its parent.

Attributes:
  • x - [REAL] - X coordinate of the position - default value: 0.0
  • y - [REAL] - Y coordinate of the position - default value: 0.0
  • z - [REAL] - Z coordinate of the position - default value: 0.0

spin_values element

spin_values specifies the rotation angles around the X, Y and Z axis. At each frame, the rotation angles of the model are incremented by the specified values. This generates an animation of the model by doing a simple rotation around the 3 axis.

Attributes:
  • pitch - [REAL] - Rotation angle in degrees around the X axis - default value: 0.0
  • yaw - [REAL] - Rotation angle in degrees around the Y axis - default value: 0.0
  • roll - [REAL] - Rotation angle in degrees around the Z axis - default value: 0.0

Remarks

The previous values take effect only if the spin_state attribute is set to TRUE.

scale element

scale makes it possible to perform a scaling of the model by multiplication of the vertices with the scale factors. It is then possible to perform uniform or non uniform scalings.

Attributes:
  • x - [REAL] - X scaling factor - default value: 1.0
  • y - [REAL] - X scaling factor - default value: 1.0
  • z - [REAL] - X scaling factor - default value: 1.0

vertices_color element

vertices_color specifies the new color to be applied to all the vertices (3d vertex) of each one of the model submeshes.

Attributes:
  • r - [CLAMPED_REAL] - red component. Float value ranging between 0.0 and 1.0 - default value: 1.0
  • g - [CLAMPED_REAL] - green component. Float value ranging between 0.0 and 1.0 - default value: 1.0
  • b - [CLAMPED_REAL] - blue component. Float value ranging between 0.0 and 1.0 - default value: 1.0
  • a - [CLAMPED_REAL] - alpha component. Float value ranging between 0.0 and 1.0 - default value: 1.0

Remarks

The color of the vertices takes effect only if lighting is disabled for this model. See the lighting attribute to disable the lighting.

apply_ambient element

apply_ambient allows to apply a new value of the ambient reflection coefficient to the first material of each submesh.

Attributes:
  • r - [CLAMPED_REAL] - red component. Float value ranging between 0.0 and 1.0 - default value: 0.0
  • g - [CLAMPED_REAL] - green component. Float value ranging between 0.0 and 1.0 - default value: 0.0
  • b - [CLAMPED_REAL] - blue component. Float value ranging between 0.0 and 1.0 - default value: 0.0
  • a - [CLAMPED_REAL] - alpha component. Float value ranging between 0.0 and 1.0 - default value: 0.0

apply_diffuse element

apply_diffuse makes it possible to apply a new value of the diffuse reflection coefficient to the first material of each submesh.

Attributes:
  • r - [CLAMPED_REAL] - red component. Float value ranging between 0.0 and 1.0 - default value: 0.0
  • g - [CLAMPED_REAL] - green component. Float value ranging between 0.0 and 1.0 - default value: 0.0
  • b - [CLAMPED_REAL] - blue component. Float value ranging between 0.0 and 1.0 - default value: 0.0
  • a - [CLAMPED_REAL] - alpha component. Float value ranging between 0.0 and 1.0 - default value: 0.0

apply_specular element

apply_specular makes it possible to apply a new value of the specular reflection coefficient to the first material of each submesh.

Attributes:
  • r - [CLAMPED_REAL] - red component. Float value ranging between 0.0 and 1.0 - default value: 0.0
  • g - [CLAMPED_REAL] - green component. Float value ranging between 0.0 and 1.0 - default value: 0.0
  • b - [CLAMPED_REAL] - blue component. Float value ranging between 0.0 and 1.0 - default value: 0.0
  • a - [CLAMPED_REAL] - alpha component. Float value ranging between 0.0 and 1.0 - default value: 0.0

apply_specular_exp element

apply_specular_exp makes it possible to apply a new value of the exponential specular reflection coefficient to the first material of each submesh.

Attributes:
  • r - [REAL] - exponent of the specular reflection coefficient - default value: 0.0

alpha_test_params element

alpha_test_params makes it possible to set the parameters for the alpha-test hardware.

Attributes:
  • active - [BOOLEAN] - enables or disables the alpha test - default value: FALSE
  • func - [ENUM] - alpha comparison function. The following symbolic constant are accepted:
    • CMP_FUNC_NEVER: the test never passes.
    • CMP_FUNC_LESS: the test passes if the alpha value is smaller than the reference value.
    • CMP_FUNC_LESS_OR_EQUAL: the test passes if the alpha value is smaller or equal to the reference value.
    • CMP_FUNC_GREATER: the test passes if the alpha value is greater than the reference value - default value
    • CMP_FUNC_GREATER_OR_EQUAL: the test passes if the alpha value is greater or equal to the reference value.
    • CMP_FUNC_EQUAL: the test passes if the alpha value is equal to the reference value.
    • CMP_FUNC_NOT_EQUAL: the test passes if the alpha value is different from the reference value.
    • CMP_FUNC_ALWAYS: the test always passes.
  • ref - [CLAMPED_REAL] - reference value with which the entering alpha value is compared. This reference value must lie between 0.0 and 1.0 - default value: 0.5

blending_params element

blending_params makes it possible to set the parameters for the blending (mixture) of the colors.

Attributes:
  • active - [BOOLEAN] - enables or disables the blending - default value: FALSE
  • src_factor - [ENUM] - specifies the blending source factor - default value: BLENDING_FACTOR_SRC_ALPHA
    blending_dst_factor specifies the destination factor in the blending equation :
    C = Cs*Sf + Cd*Df
    where C is the final (R, G, B, A) color, Cs the (Rs, Gs, Bs, As) source (or entering) color and Cd is the (Rd, Gd, Bd, Ad) color present in the framebuffer .
    Sf is the (Sr, Sg, Sb, Sa) blending source factor and Df is the (Dr, Dg, Db, Da) blending destination factor.
    • BLENDING_FACTOR_ZERO: (0 0 0 0)
    • BLENDING_FACTOR_ONE: (1 1 1 1)
    • BLENDING_FACTOR_SRC_ALPHA: (As, As, As, As)
    • BLENDING_FACTOR_ONE_MINUS_DST_ALPHA: (1-Ad, 1-Ad, 1-Ad, 1-Ad)
    • BLENDING_FACTOR_ONE_MINUS_DST_COLOR: (1-Rd, 1-Gd, 1-Bd, 1-Ad)
    • BLENDING_FACTOR_ONE_MINUS_SRC_ALPHA: (1-As, 1-As, 1-As, 1-As)
    • BLENDING_FACTOR_DST_COLOR: (Rd, Gd, Bd, Ad)
    • BLENDING_FACTOR_DST_ALPHA: (Ad, Ad, Ad, Ad)
    • BLENDING_FACTOR_SRC_COLOR: (Rs, Gs, Bs, As)
    • BLENDING_FACTOR_ONE_MINUS_SRC_COLOR: (1-Rs, 1-Gs, 1-Bs, 1-As)
  • dst_factor - specifies the blending destination factor. Please refer to the src_factor to see the acceptable
    values - default value: BLENDING_FACTOR_ONE_MINUS_SRC_ALPHA

bump_mapping_attach_light element

bump_mapping_attach_light specifies the light to be taken into account for the DOT3 bump mapping. Several calls to mesh_bump_mapping_attach_light will allow to attach several lights. This instruction is to be used when the LOAD_BUMP_MAP option has been used for the 3d model loading..

Attributes:
  • name - [STR127] - name of the light node to be attached

optimize element

optimize makes it possible to optimize the geometry of a polygonal mesh. This is useful when one wants to apply deformation effects to the meshes. By default, the volumic shadows engine optimizes all the meshes.

Attributes:
  • method - [ENUM] - optimization method. The following values are accepted:
    • NONE: does not apply any optimization.
    • VERTICES: optimize the vertices: remove the isolated vertices and merges the vertices that have the same position (by considering an epsilon tolerance adjustable with vertex_epsilon).
    • ALL: optimizes the vertices (like the VERTICES mode) and the faces (removal of the degenerated faces).
  • vertex_epsilon - [REAL] - makes it possible to specify the tolerance for merging the vertices (in the VERTICES optimization mode) - default value: 0.0001

add_child element

add_child makes it possible to add a child to the current mesh. That makes it possible to easily set up complex hierarchies. Any transformation (rotation or translation) of the current mesh will have repercussions on the children.

Attributes:
  • name - [STR127] - name of the child object to be added. Of course, this object must exist.

remove_child element

remove_child makes it possible to remove a child from the current model. That makes it possible to easily set up complex hierarchies.

Attributes:
  • name - [STR127] - name of the child object to be removed. This object must exist.

ambient_occlusion_lighting element

ambient_occlusion_lighting makes it possible to specify data in order to implement an advanced lighting algorithm : the Ambient Occlusion Lighting. But the Ambient Occlusion Lighting technique requires a vertex/pixel shader in order to correctly exploit the occlusion data (these data are generally stored in a file called occlusion-map).

The occlusion map creation is an offline stage because it is a time consuming process (several hours). For this reason, Hyperion is delivered with the AOGen utility (command line tool), which will generate this occlusion map.

See the Ambient Occlusion Lighting tutorial for more information about this lighting technique and about AOGen use.

Attributes:
  • active - [BOOLEAN] - TRUE pour autoriser l'initialisation des données d'occlusion et FALSE dans le cas contraire.
  • ambient_occlusion_map - [STR255] - occlusion map.
  • vertex_attrib - [INTEGER] - allows to specify the vertex attribute in which loading occlusion data. In the current version of Hyperion, only attributes 1, 2, 3, 4 andt 5 are allowed. These attributes are then accessible in a vertex shader (with the GLSL keyword attribute).

nx_linear_velocity element

nx_linear_velocity makes it possible to specify the linear velocity of an object. The speed parameters are taken into account only if the physical simulation engine has been activated in the scene node.

Attributes:
  • x - [REAL] - X coordinate of the gravity vector - default value: 0.0
  • y - [REAL] - Y coordinate of the gravity vector - default value: -9.81
  • z - [REAL] - Z coordinate of the gravity vector - default value: 0.0
  • damping - [REAL] - damping speed factor - default value: 0.5
  • sleep_threshold - [REAL] - sleeping threshold - default value: 0.14*0.14

nx_angular_velocity element

nx_angular_velocity makes it possible to specify the angular velocity of an object. The speed parameters are taken into account only if the physical simulation engine has been activated in the scene node.

Attributes:
  • x - [REAL] - X coordinate of the gravity vector - default value: 0.0
  • y - [REAL] - Y coordinate of the gravity vector - default value: -9.81
  • z - [REAL] - Z coordinate of the gravity vector - default value: 0.0
  • damping - [REAL] - damping speed factor - default value: 0.5
  • sleep_threshold - [REAL] - sleeping threshold - default value: 0.15*0.15

nx_misc_data element

nx_misc_data makes it possible to specify the angular velocity of an object. The speed parameters are taken into account only if the physical simulation engine has been activated in the scene node.

Attributes:
  • mass - [REAL] - mass of the object - default value: 100.0
  • density - [REAL] - density of the object - default value: 0.0
  • actor_type - [ENUM] - actor type (object):
    • STATIC
    • DYNAMIC - default value.
    • KINEMATIC

shader_program element

shader_program allows to apply a vertex pixel shader to all materials that compound model sub-meshes.

Attributs:
  • name - [STR127] - name of the main shader (the one that is used in the material node). In the case of shadow volumes rendering this shader is used for illumination pass.
  • gpu_shader_for_ambient_pass - [STR127] - name of the shader for shadow volumes ambient pass.
  • apply_to_all_materials - [BOOLEAN] - enable (TRUE) ou disable (FALSE) the application of shaders to materials- default value: FALSE


GeeXLab demos


GLSL - Mesh exploder


PhysX 3 cloth demo


Normal visualizer with GS


Compute Shaders test on Radeon


Raymarching in GLSL



Misc
>Texture DataPack #1
>Asus Silent Knight CPU Cooler
Page generated in 0.0030899047851562 seconds.