Bonjour,
Voilà j'ai un soucis avec WPF lors de la création d'un jeux en 3D. Vous aurez compris que c'est la gestion des ombres avec WPF qui gêne. WPF gère la lumière et la retranscrit sur un MeshGeometry3D, mais n'applique pas de calculs d'ombre de portée. Je suis sur un projet personnel qui a bien avancé, j'ai la gestion des interactions, animations, son, textures mais il me manque la gestion des ombres portée.
C'est un sujet très sérieux pour moi et pour le reste parce qu'un jour l'on voudra tous avoir une gestion d'ombre portée en WPF.
Je résume, quelqu'un pourrait-il m'expliquer de manière explicite comment à partir d'un ModelVisual3D (donc un MeshGeometry3D) parcourir les Positions, Normals, TextureCoordinates et TriangleIndices pour créer un autre MeshGeometry contenant l'ombre du permier élément 3D.
Donc ici pas de HSLS, pas d'OpenGL, de RayTracing en image, pas de Matrix. Juste un Transform3DGroup avec TranslateTransform3D, RotateTransform3D et ScaleTransform3D étant bien suffisant même pour tous calculs.
Merci à tous de me répondre en tenant bien compte de ce cours résumé qui ira à une résolution certaine, j'espères. Comme je vous le dis, WPF finira par avoir une gestion d'ombre portée. Donc voici le descriptif :
- J'ai un viewport3D contenant des objets 3D avec leurs textures
- On récupère les objets 3D par Viewport3D.Children
- Pour chacun de ces objets, créer un MeshGeometry3D contenant l'ombre
C'est là que ma question me fait réfléchir un max, créer un MeshGeometry3D avec Positions, Normals, TextureCoordinate et TriangleIndice, puis bien sûr trouver le bon calcul pour fournir le bon TranslateTransform3D, RotateTransform3D
Merci de m'aider plz
Partager