Re: hARMful engine

Posté par Bibi09 le 20/6/2020 12:02:37
Hello,
Voici quelques nouvelles. Pas grand chose à montrer de nouveau, plus à énoncer.

J'avais prévu de faire une vidéo "en grande pompe" sur le rendu PBR intégré au moteur avec une scène "complexe". Je pense la faire mais de façon assez classique, juste avec une petite démo de rendu de quelques objets.

Mais avant ça, je souhaite fixer quelques bugs ou améliorer le rendu.

J'ai déjà pu retirer un gros souci avec les reflets. En effet, ils avaient tendance à trembler légèrement quand on bougeait la caméra. C'était dû au multisampling (antialiasing, aussi noté MSAA) que je réalisais directement via OpenGL. Grosso modo, je demandais à OpenGL de faire le rendu 4 fois avec un léger décalage sur les pixels, ce qui permettaient en théorie d'avoir un adoucissement des arêtes...

Ça bouffe énormément les performances. Pire encore, je n'ai pas vu que l'antialiasing était aussi ouf que ça ! Franchement le jeu n'en valait pas trop la chandelle. Et le clou du spectacle, c'est que ça m'altérait aussi les normales des meshs. Or, les reflets se basent sur les normales ce qui explique les tremblements.
J'ai donc enlevé l'antialiasing "automatique" d'OpenGL. Les performances sont remontées en flèche ! Ça m'évitera encore plein d'autres ennuis à l'avenir.

Bien sûr, sans antialiasing c'est très moche. C'est pourquoi je vais passer par du FXAA en "post-production". C'est rapide et ma foi efficace. Je verrai pour intégrer d'autres algorithmes bien plus tard car ce n'est pas d'une grande priorité.
https://www.canardpc.com/375/fxaa
Dans le moteur, j'ai déjà un système d'effets de post-production. J'applique déjà avec l'ambient occlusion avec ce système. C'est par exemple là que je mettrai aussi le bloom, etc.

La v2.0 du moteur est planifiée pour septembre 2020. Elle pourra être repoussée selon les besoins. En terme de contenu, le PBR est la principale feature à ajouter à cette version.
Un gros morceau, c'est l'optimisation du moteur. Je compte profiter de cette version pour faire une première passe sur quelque chose que j'ai négligé mais en posant ici et là quelques éléments pour offrir de meilleures performances.

Si j'arrive à obtenir de bonnes performances sur un environnement statique (je n'ai pas de chiffres encore, il faudra que je fasse une petite comparaison avec Blender par exemple), ça pourra ouvrir la porte vers un début d'interactions avec l'utilisateur. Entendez par là : commencer à rendre le moteur utilisable pour du jeu vidéo, etc.

Un bon programme bien chargé !

Cette contribution était de : http://blenderclan.tuxfamily.org/html/newbb/viewtopic.php?forum=3&topic_id=49507&post_id=583671