Historique des modifications - Message

Message #2054

Sujet: Rendu de terrain optimisé


TypeDateAuteurContenu
Dernière modification20-04-2007 05:07:27DeusXL
Bah il existe un tutoriel qui montre comment utiliser les shaders avec Irrlicht (c'est l'un des tutos officiels)big_smile

Ensuite, il faut définir les variables du shader dans le ShaderSet, c'est moi ça ressemble à ça :
                Matrix4 world = _driver.GetTransform(TransformationState.World);
                Matrix4 worldViewProj;
                worldViewProj = _driver.GetTransform(TransformationState.Projection);
                worldViewProj *= _driver.GetTransform(TransformationState.View);
                worldViewProj *= world;
                services.SetVertexShaderConstant("mWorldViewProj", worldViewProj.ToShader());
                services.SetVertexShaderConstant("TerrainHeight", 255f);
                services.SetVertexShaderConstant("FogDistance", _scene.ActiveCamera.FarValue);
                services.SetVertexShaderConstant("cameraPos", _scene.ActiveCamera.AbsolutePosition.ToShader());
                services.SetVertexShaderConstant("mWorld", world.ToShader());

Car DirectX/HLSL nécessite qu'on lui passe en paramètre la matrice WorldViewProj (alors qu'OpenGL/GLSL l'obtient directement dans le shader).

Si tu veux plus d'infos, tu peux toujours télécharger le .NET Reflector et l'utiliser sur l'applibig_smile
Création du message20-04-2007 05:06:43DeusXL
Bah il existe un tutoriel qui montre comment utiliser les shaders avec Irrlicht (c'est l'un des tutos officiels)big_smile

Ensuite, il faut définir les variables du shader dans le ShaderSet, c'est moi ça ressemble à ça :
                Matrix4 world = _driver.GetTransform(TransformationState.World);
                Matrix4 worldViewProj;
                worldViewProj = _driver.GetTransform(TransformationState.Projection);
                worldViewProj *= _driver.GetTransform(TransformationState.View);
                worldViewProj *= world;
                services.SetVertexShaderConstant("mWorldViewProj", worldViewProj.ToShader());
                services.SetVertexShaderConstant("TerrainHeight", 255f);
                services.SetVertexShaderConstant("FogDistance", _scene.ActiveCamera.FarValue);
                services.SetVertexShaderConstant("cameraPos", _scene.ActiveCamera.AbsolutePosition.ToShader());
                services.SetVertexShaderConstant("mWorld", world.ToShader());

Car DirectX/HLSL nécessite qu'on lui passe en paramètre la matrice WorldViewProj (alors qu'OpenGL/GLSL l'obtient directement dans le shader).

Si tu veux plus d'infos, tu peux toujours télécharger le .NET Reflector et l'utiliser sur l'applibig_smile

Retour

OptionsLiens officielsCaractéristiquesStatistiquesCommunauté
Préférences cookies
Corrections
irrlicht
irrklang
irredit
irrxml
Propulsé par Django
xhtml 1.0
css 2.1
884 membres
1441 sujets
11339 messages
Dernier membre inscrit: Saidov17
72 invités en ligne
membre en ligne: -
RSS Feed