mercredi 7 décembre 2011

De la trouadé, pour commencer..

Mon objectif : développer un prototype de moteur de rendu planétaire, à l'instar de ceux-çi : 

http://inovaestudios.com/technology.htm
http://www.outerra.com/



Bien évidemment je suis très loin d'atteindre ce niveau de rendu, néanmoins mon proto, nommé "SuperSphere", est déja relativement avancé (j'ai écris les premières lignes de codes début Janvier 2011).


L'idée est de représenter les planètes en tailles "réelles" (diamètre d'une dizaine de milliers de kilomètres) et de pouvoir s'en approcher, pénétrer dans l’atmosphère jusqu’à pouvoir se poser au niveau du sol, et ce sans aucun écran de chargement ni de transitions;  les planètes présentent des reliefs variés (plaines, chaînes de montagnes, lac, océans... générés de façon procédurale (relief généré "on the fly" par une fonction mathématique, typiquement une fractale...). Au fur et à mesure des déplacements de la caméra le LOD (Level Of Details) est géré par le système pour faire en sorte que les zones proches de la caméra soit détaillées le plus possible, et les zones plus éloignées voient leurs nombres de triangles dégradés, afin de réduire le plus possible la quantité de triangles poussés dans le GPU.... Voilà pour le principe, dans les grandes lignes du moins !


Pour le rendu 3D je m'appuie sur mon moteur 3D générique "I-Motion", qui tourne actuellement sous Windows et s'appuie sur Direct3D (bien que l'ouverture à d'autres middlewares de rendu soit possible grâce à un système de plugins. J'aurais l'occasion de revenir sur ce dernier lors de prochains articles...

En attendant la suite, quelques screenshots...










Aucun commentaire:

Enregistrer un commentaire