Historique des modifications - Message

Message #2054

Sujet: Rendu de terrain optimisé


Type Date Auteur Contenu
Dernière modification 20-04-2007 05:07:27 DeusXL
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'appli big_smile
Création du message 20-04-2007 05:06:43 DeusXL
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'appli big_smile

Retour

Options Liens officiels Caractéristiques Statistiques Communauté
Préférences cookies
Corrections
irrlicht
irrklang
irredit
irrxml
Propulsé par Django
xhtml 1.0
css 2.1
884 membres
1440 sujets
11337 messages
Dernier membre inscrit: Saidov17
194 invités en ligne
membre en ligne: -
RSS Feed