J'essaie de dessiner un personnage en 2D dans un environnement en 3D. J'utilise un plan orienté vers la caméra. Cela me donne le bon résultat seulement s'il n'y a pas d'intersection en profondeur avec les murs . Désactiver le test de profondeur n'est pas la solution, car l'avion doit toujours se trouver derrière d'autres murs, portes et objets.
J'ai ensuite rendu le plan perpendiculaire, ce qui me donne le résultat souhaité pour l'intersection du test de profondeur. Cependant, le personnage 2d est maintenant déformé à cause de la perspective, et semble lui donner une grosse tête et/ou un corps plus court. Ce n'est pas le résultat que je recherche.
Idéalement, je veux pouvoir dessiner un plan perpendiculaire à l'intersection du test de profondeur souhaité, et utiliser un shader pour dessiner la texture sans perspective (et à l'échelle). Cela permet de conserver l'intersection de test de profondeur du plan (pour les murs, les portes, les objets, etc.) et me donne les proportions correctes pour le personnage 2D.
Mise à jour de
Peut-être qu'une autre approche consiste à utiliser des pochoirs ? Idéalement, il serait bon de ne pas les utiliser.
- Activez le test des stencils et définissez la fonction de test et les opérations pour écrire des 1 à tous les stencils.
- Dessinez un plan perpendiculaire.
- Définit la fonction stencil pour passer si la valeur du stencil est égale à 1.
- Dessinez un personnage 2d face à la caméra.
- Désactiver le test du stencil.
Mise à jour de
Peut-être dessiné comme une réflexion plate sur le plan sans utiliser les normales ? Comme une réflexion cubique ou sphérique, mais uniquement plate. Des idées ?