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

API Demoniak3D/LUA: fonctions de manipulation des vertex pool

La librairie HYP_VertexPool permet de gérer les vertex pool. Un vertex pool est un objet qui permet de gérer un grand nombre de vertices indépendants les uns des autres. Chaque vertex peut avoir une position dans l'espace ainsi qu'une couleur. En présence d'une texture, les vertices sont rendus en mode point sprite. Le mode point sprite est une fonctionnalité de la carte 3D qui permet de créer un quad texturé et billboardé à partir d'un simple vertex. En somme, le vertex pool peut être vu comme l'outil de base pour vous permettre de créer votre propre système de particules. Un des intérets du vertex pool est sa rapidité de rendu.
HYP_VertexPool.Create
HYP_VertexPool.Destroy
HYP_VertexPool.SetVertexPosition
HYP_VertexPool.GetVertexPosition
HYP_VertexPool.SetVertexColor
HYP_VertexPool.GetVertexColor
HYP_VertexPool.SetVerticesColor
HYP_VertexPool.SetVerticesSize
HYP_VertexPool.SetPointSpriteDistAtt
HYP_VertexPool.SetUseOfVertexRenderingState
HYP_VertexPool.SetVertexRenderingState

Create

Create permet de créer un vertex pool.
Syntaxe
id_vp = HYP_VertexPool.Create( num_vertices, [name] );
  • num_vertices - [INTEGER] - nombre de vertices du vertex pool.
  • name - [STR127] - nom à donner au vertex pool. Optionnel.

Destroy

Destroy permet de détuire un vertex pool créé avec Create().
Syntaxe
HYP_VertexPool.Destroy( name | id );
  • name - [STR127] - nom du vertex pool.
  • id - [INTEGER] - identifiant numérique du vertex pool.

SetVertexPosition

SetVertexPosition permet de changer la position d'un vertex particulier du vertex pool.
Syntaxe
HYP_VertexPool.SetVertexPosition( name | id, vertex_index, x, y, z );
HYP_VertexPool.SetVertexPosition_Fast( name | id, vertex_index, x, y, z );
  • name - [STR127] - nom du vertex pool.
  • id - [INTEGER] - identifiant numérique du vertex pool.
  • vertex_index - [INTEGER] - index du vertex. Valeur: 0 à num_vertices_in_pool-1.
  • x - [REAL] - nouvelle coordonnée en X.
  • y - [REAL] - nouvelle coordonnée en Y.
  • z - [REAL] - nouvelle coordonnée en Z.
Remarques
Pour des raisons de rapidité, SetVertexPosition_Fast ne contrôle pas la validité des paramètres d'entrée.

GetVertexPosition

GetVertexPosition permet de récupérer la position d'un vertex particulier du vertex pool.
Syntaxe
x, y, z = HYP_VertexPool.GetVertexPosition( name | id, vertex_index );
x, y, z = HYP_VertexPool.GetVertexPosition_Fast( name | id, vertex_index );
  • name - [STR127] - nom du vertex pool.
  • id - [INTEGER] - identifiant numérique du vertex pool.
  • vertex_index - [INTEGER] - index du vertex. Valeur: 0 à num_vertices_in_pool-1.
  • x - [REAL] - nouvelle coordonnée en X.
  • y - [REAL] - nouvelle coordonnée en Y.
  • z - [REAL] - nouvelle coordonnée en Z.
Remarques
Pour des raisons de rapidité, GetVertexPosition_Fast ne contrôle pas la validité des paramètres d'entrée.

SetVertexColor

SetVertexColor permet de changer la couleur d'un vertex particulier du vertex pool.
Syntaxe
HYP_VertexPool.SetVertexColor( name | id, vertex_index, r, g, b, a );
HYP_VertexPool.SetVertexColor_Fast( name | id, vertex_index, r, g, b, a );
  • name - [STR127] - nom du vertex pool.
  • id - [INTEGER] - identifiant numérique du vertex pool.
  • vertex_index - [INTEGER] - index du vertex. Valeur: 0 à num_vertices_in_pool-1.
  • r - [CLAMPED_REAL] - composante rouge de la couleur.
  • g - [CLAMPED_REAL] - composante verte de la couleur.
  • b - [CLAMPED_REAL] - composante bleue de la couleur.
  • a - [CLAMPED_REAL] - composante alpha de la couleur.
Remarques
Pour des raisons de rapidité, SetVertexColor_Fast ne contrôle pas la validité des paramètres d'entrée.

GetVertexColor

GetVertexColor permet de récupérer la couleur d'un vertex particulier du vertex pool.
Syntaxe
r, g, b, a = HYP_VertexPool.GetVertexColor( name | id, vertex_index );
r, g, b, a = HYP_VertexPool.GetVertexColor_Fast( name | id, vertex_index );
  • name - [STR127] - nom du vertex pool.
  • id - [INTEGER] - identifiant numérique du vertex pool.
  • vertex_index - [INTEGER] - index du vertex. Valeur: 0 à num_vertices_in_pool-1.
  • r - [CLAMPED_REAL] - composante rouge de la couleur.
  • g - [CLAMPED_REAL] - composante verte de la couleur.
  • b - [CLAMPED_REAL] - composante bleue de la couleur.
  • a - [CLAMPED_REAL] - composante alpha de la couleur.
Remarques
Pour des raisons de rapidité, GetVertexColor_Fast ne contrôle pas la validité des paramètres d'entrée.

SetVerticesColor

SetVerticesColor permet de changer la couleur de tous les vertices du vertex pool.
Syntaxe
HYP_VertexPool.SetVerticesColor( name | id, r, g, b, a );
  • name - [STR127] - nom du vertex pool.
  • id - [INTEGER] - identifiant numérique du vertex pool.
  • r - [CLAMPED_REAL] - composante rouge de la couleur.
  • g - [CLAMPED_REAL] - composante verte de la couleur.
  • b - [CLAMPED_REAL] - composante bleue de la couleur.
  • a - [CLAMPED_REAL] - composante alpha de la couleur.

SetVerticesSize

SetVerticesSize permet de changer la taille de tous les vertices du vertex pool. Attention: si vous attachez une texture au vertex pool, les vertices du pool sont rendus en mode point sprite. Dans ce cas la taille maximale est dépendente du hardware graphique. Sur nVidia, la taille max est de 63.5.
Syntaxe
HYP_VertexPool.SetVerticesSize( name | id, size );
  • name - [STR127] - nom du vertex pool.
  • id - [INTEGER] - identifiant numérique du vertex pool.
  • size - [REAL] - taille des vertices.

SetPointSpriteDistAtt

SetPointSpriteDistAtt permet de changer les coefficients du facteur d'atténuation de la taille des vertices avec la distance. Ce facteur est exprimé par 3 valeurs {a, b, c}:
			                1
	dist_atten(d) = -------------------
			        a + b * d + c * d^2

où d est la distance de la camera, positionné en {0, 0, 0, 1} (coordonnées de l'oeil) au vertex. Par défaut, {a, b, c} valent {0.0, 0.01, 0.0002}.
Syntaxe
HYP_VertexPool.SetPointSpriteDistAtt( name | id, a, b, c );
  • name - [STR127] - nom du vertex pool.
  • id - [INTEGER] - identifiant numérique du vertex pool.
  • a - [REAL] - facteur d'atténuation constant.
  • b - [REAL] - facteur d'atténuation linéaire.
  • c - [REAL] - facteur d'atténuation quadratique.

SetVertexRenderingState

SetVertexRenderingState permet de désactiver ou d'activer le rendu d'un vertex particulier.
Syntaxe
HYP_VertexPool.SetVertexRenderingState( name|id, vertex_index, state );
  • name - [STR127] - nom du vertex pool.
  • id - [INTEGER] - identifiant numérique du vertex pool.
  • vertex_index - [INTEGER] - index du vertex. Valeur: 0 à num_vertices_in_pool-1.
  • state - [INTEGER] - active le rendu si 1 ou le désactive si 0.

GetVertexRenderingState

GetVertexRenderingState permet de connaître l'état de rendu d'un vertex particulier.
Syntaxe
state = HYP_VertexPool.GetVertexRenderingState( name|id, vertex_index );
  • name - [STR127] - nom du vertex pool.
  • id - [INTEGER] - identifiant numérique du vertex pool.
  • vertex_index - [INTEGER] - index du vertex. Valeur: 0 à num_vertices_in_pool-1.
  • state - [INTEGER] - rendu activé si 1 ou désactivé si 0.

SetUseOfVertexRenderingState

SetUseOfVertexRenderingState permet de désactiver ou d'activer le mode gestion de rendu par vertex (fonctions SetVertexRenderingState et GetVertexRenderingState). En effet, le mode de rendu par vertex implique des calculs supplémentaires qui peuvent être couteux en présence d'un grand nombre de particules.
Par défaut, la gestion est désactivée.
Syntaxe
HYP_VertexPool.SetUseOfVertexRenderingState( name|id, state );
  • name - [STR127] - nom du vertex pool.
  • id - [INTEGER] - identifiant numérique du vertex pool.
  • state - [INTEGER] - active si 1 ou désactive si 0.


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.0023019313812256 seconds.