Migration Sur OSG

Notre vieille librairie OpenGL, PLIB datant de 10 ans et n'étant plus supportée par ses auteurs, nous avons étudié la possibilité de migrer toute la partie graphique vers une librairie plus moderne. Après plusieurs débats au sein de l'équipe il a été retenue la librairie OpenSceneGraph (OSG pour les connaisseurs). Cette librarie compatible OpenGL 2.0/3.0 va nous permettre d'avoir des performances accrues sur la partie graphique et surtout va nous permettre d'avoir des effets qu'il n'était pas possible d'avoir avec PLIB (tout du moins sans ajouter nous même les fonctions OpenGL 2.0 manquantes).

Nous avons déjà créé le loader pour les scenes et les voitures (ReaderWriterACC), pour le moment il y a quelques messages d'erreurs dans la console lié à la gestion du multitexturing dans l'import. Nous espérons pouvoir corriger ceci dans un proche avenir.

 

sd-20151109004852Dans les effets que nous pouvons déjà gérer, il y a le dynamic shadow (shadow généré à chaque frame) avec une possibilité de générer ce shadow juste pour les voitures ou pour toute la scène. A l'avenir j'aimerais générer ce shadow pour un partie seulement de la scène, ceci évitera les artefacts graphiques et améliorera les performances graphique. J'aimerais également pouvoir appliquer ce shadow sur les voitures, actuellement à cause des shaders utilisés, ce n'est pas le cas.

Pour cela il faudra certainement implanter notre propre fonction OSG pour le dynamic shadow, celui-ci utilisant des shaders codés directement.


sd-20151109004838Dans les shaders implémentés par Gaëtan, il y a le cube environnement mapping (réflexion sur les six faces appliquée en temps réel sur la voiture). Ceci apporte encore plus aux graphismes OpenSceneGraph comparés à ceux de PLIB, mais ce shader est appliqué sur chaque voiture en course, ceci réduit considérablement les performances, surtout sur les petites configs. L'idée serait d'utiliser ce shader uniquement sur la voiture courante, de copier ce cubemapping sur les voitures proches et de le désactiver pour les voitures éloignées ou non afficher. Avec ce système nous pourrions gagner énormément en performance. Actuellement ce shader est le plus gros consommateur de ressource sur tous les nouveaux effets.

 

sd-20151109004621Ce shader augmente également la réflexion spéculaire de la lumière du Soleil, ceci augmente encore une fois la qualité graphique de Speed Dreams. Actuellement nous pouvons activer/desactiver la reflexion cubemapping sur le shader, l'idéal serait de pouvoir implémenter la fonction expliquée au dessus et de pouvoir également désactiver tous les shaders. Avec Julien nous avons quelques idées sur les shaders justement (normalmap, specularmap, etc ...) ceci nous amènerait au niveau des simulateurs commerciaux actuels.

 

Ci-dessous quelques screenshots des possibilités implantés sur le ciel.

sd-20151110223826 sd-20151110223900 sd-20151110223939

 

 

 

 

 

 

 

 

 

 

 

 

 


L'implémentation de la pluie a également commencé. Des optimisations sont à prévoir, mais c'est déjà fonctionnel.

sd-20151110224801 sd-20151110224812

 

 

juillet 2019
L M M J V S D
« Mar    
1234567
891011121314
15161718192021
22232425262728
293031  

Articles récents