|
Bienvenue sur ce site dédié à mon projet de fin d'études à l'EPFC et à la 3D en général. J'ai choisi de modéliser les bâtiments de l'école et bien sûr un maximum d'éléments faisant partie de la structure. L' API choisie pour le rendu 3D est OpenGL et Java sera le language de programmation utilisé.
Pourquoi Java?...penseront certains, alors qu'OpenGL est basé sur le C.Tout d'abord....j'aime bien programmer en Java ;) mais plus sérieusement, c'est la découverte de la librairie LWJGL qui a motivé mon choix, j'y ai trouvé là tous les avantages de choisir Java.
Quelques explications s'imposent,
- Premièrement, cette librairie est un très bon exemple de l'utilisation de JNI, l'interface de programmation standard pour l'écriture de methodes natives.
En quoi cela m'a t-il motivé? Simplement par le fait que l'on puisse apprendre à programmer l'OpenGL tel qu'il existe et surtout à l'utiliser quasiment à 100% de la même façon dans un code écrit en Java! Tout simplement génial!
- Ensuite et c'est là tout l'intérêt, l'application 3D va pouvoir tourner sous Windows, Linux et Mac sans devoir fournir d'efforts supplémentaires! (pour peu que l'on soit attentif à certains détails intimmant liés à chaque plateforme, dans le cadre d'applications complexes, bien sûr).
Imaginez un peu les possibilités...notement au niveau des jeux vidéo!
J'envisage également de créer un installeur qui se chargera de placer les librairies natives de l'OS courant et toutes les ressources nécéssaires à l'éxécution de l'application.
Matériel utilisé pour la création du projet
- Ce projet est réalisé à l'aide d'un "modeste" laptop Intel Celeron cadencé à 1400 MHz, équipé de 512 Mo de RAM et graphiquement épaulé par un chipset intégré ATI XPRESS 200M (128 Mo RAM dédié )
Il faut bien avouer que du point de vue performances 3D, c'est à la traîne tout ça...mais nous allons voir que pour débuter en programmation 3D c'est plus que suffisant.
- En réalité, des problèmes de performances sont très rapidement apparus, à peine quelques bureaux, chaises, écrans et claviers rendus ont suffit à mettre à genoux la config et par la suite, il m'est apparu très clairement que c'est un bon moyen d'apprendre à utiliser les optimisations mises à disposition par l'OpenGL (i.e. les display lists, vertex arrays...etc) et surtout de connaître les techniques utilisées réellement en 3D chez les programmeurs professionnels (i.e. view frustum culling, portals, bsp, octree...)
Par exemple, pour rendre un object "statique" plusieurs fois, le simple fait d'utiliser les displays lists a augmenté significativement le nombre d'images par secondes avec cette config...
Quoi qu'il en soit, j'ai choisi de travailler sur le laptop et je tenterai d'approfondir mes connaissances sur les différentes techniques utilisées pour le "scene management".
Project 3D 
Voiçi quelques screenshots affichant la progression du projet (je suis encore loin d'un jeu à la Carmack pour ne pas le citer ;)
Local 30
|