Salut tout le monde.
Par avance, navré si le vocabulaire n'est pas le bon ou que je manque de précision, je commence à peine à dompter OpenGL :p
(Pour la partie math en revanche pas de soucis!)
Voila le topo
Je travail actuellement sur un moteur de jeu 2D/3D à des fins purement éducative.
Je dispose :
- d'un monde dans lequel sont placées des entités. Une entité étant défini, pour simplifier, par une pose (matrice 4x4) et une liste de vertice.
- d'une camera, une matrice 4x4 également.
je désire rendre à l'écran mes entités telles quelles sont définies mais en ayant un effet de parallaxe du au z de mes entités.
Pour ce faire je vois actuellement deux approches :
- je peux partir d'une projection orthogonale puis calculer l'effet de parallaxe à la main, cad en modifiant les poses des entités du point de vue de la camera.
Désavantage, le jour où je vais vouloir un autre type de camera (ex perspective), il va falloir modifier du code. En plus de ne pas être générique ce code va manquer d'élégance, je préférerait que le parallaxe remonte naturellement et de manière transparente quand je fais le rendu d'une entité à l'écran.
ex: rendu = entité * vue * camera- l'autre solution plus chamanique : la matrice de la camera contiendrait une projection perspective, là le parallaxe deviendrait naturel, mais sans scale/shear ! D'où le titre étrange du poste "Projection perspective isométrique" (le dernier terme étant celui qui m'a paru le plus adapté ... ou peut être pas ^^)
La question est donc, si la deuxième solution est possible comment la réaliser !? là je suis perdu. Peut être y a-t-il d'autres solutions que je ne vois pas.
NB: je m'impose de ne pas utiliser les fonctions dépréciées d'OpenGL 4.0, et l'utilisation de Glut et glu, principalement pour faire le travail sur les matrices à la main
En attendant je reste dispo pour toutes discussions
Au plaisir
Partager