Accueil > > > DEBUT DE MOTEUR D'AFFICHAGE OPENGL AVEC RENDU DE SKYBOX
DEBUT DE MOTEUR D'AFFICHAGE OPENGL AVEC RENDU DE SKYBOX
Information sur la source
Description
C'est vraiment le debut d'un moteur d'affichage en openGL On peut afficher des surfaces rectangulaires et triangulaires texturées, en peut faire le rendu d'une skybox La gestion du clavier et de la souris est integrée, le deplacement est le meme que dans les FPS classiques. Dans le zip il y a le programme avec un exemple d'affichage d'une maison et d'une skybox et d 'un plan incliné, regardez le screen. Le niveau est initialement chargé d'apres un fichier, il n'est plus codé en hard La gestion des collisions avec le sol et les plan inclinés marche
Source
- //==> ZIP
- //Les textures ne pouvant pas rentrer dans le zip je vous invite a telecharger
- //le projet complet avec les textures ici
- //"http://maegisinstinct.free.fr/OpenGL%20Texture.rar"
-
- //Je met 2 ou 3 bouts de code
-
- ////////////////////////////////////////////////////
- //Ma classe de camera
-
- #include <windows.h>
- #include <gl\glu.h>
-
- #define PI 3.14159f
-
- #ifndef CAMERA //pour eviter les redefinitions
- #define CAMERA
-
- #define UP 0 //Flag pour les translations
- #define LEFT 2
- #define JUMP 4
-
- #define GROUND_ARG_SIZE 10 //taille pour les tableau 2d
- #define WALL_ARG_SIZE 9
- #define TRIANGLE_ARG_SIZE 13
- #define JUMP_INC 0.08f
-
-
- /*--------------------------------------------------------------*/
- //Classe de camera qui gerera les rotations et les translations
- /*--------------------------------------------------------------*/
- class Camera
- {
- float X,Y,Z; //position de la camera
- float Xlook,Ylook,Zlook; //position du point ou l'on regarde
- float Xvertical,Yvertical,Zvertical; //coords de la verticale
- float angleXZ; //longitude (coords spheriques)
- float angleXY; //latitude
- float rayon; //rayon
-
- int nbGrounds; //Nombre desurfaces pour la gestion des collisions
- int nbWalls;
- int nbTriangles;
-
- void CalculCoords(); //Calcule le point que l'on vise en fonction des angles
-
- public:
-
- int* Grounds[GROUND_ARG_SIZE]; //Va contenir les caracteristiques des surfaces
- int* Walls[WALL_ARG_SIZE];
- float* Triangles[TRIANGLE_ARG_SIZE];
- int skybox[7];
-
-
-
- ~Camera(void); //destructeur
- void SetCamera(float tab[11]);
-
- void PlaceCamera() //set la camera
- {
- gluLookAt(X,Y,Z,Xlook,Ylook,Zlook,Xvertical,Yvertical,Zvertical);
- };
-
- void Setnb(int ng,int nw,int nt)
- {
- nbGrounds = ng;
- nbWalls = nw;
- nbTriangles = nt;
- };
-
- void RotateCamera(char axex,char axey,float angle); //gere les rotations
- void TranslateCamera(int flag,float inc); //gere les translations
- void Paint(HDC); //fonction de dessin
- BOOL CollisionGround(); //gere les collisions avec le sol
- BOOL CollisionWall(); //gere les collisions avec les murs
- };
//==> ZIP
//Les textures ne pouvant pas rentrer dans le zip je vous invite a telecharger
//le projet complet avec les textures ici
//"http://maegisinstinct.free.fr/OpenGL%20Texture.rar"
//Je met 2 ou 3 bouts de code
////////////////////////////////////////////////////
//Ma classe de camera
#include <windows.h>
#include <gl\glu.h>
#define PI 3.14159f
#ifndef CAMERA //pour eviter les redefinitions
#define CAMERA
#define UP 0 //Flag pour les translations
#define LEFT 2
#define JUMP 4
#define GROUND_ARG_SIZE 10 //taille pour les tableau 2d
#define WALL_ARG_SIZE 9
#define TRIANGLE_ARG_SIZE 13
#define JUMP_INC 0.08f
/*--------------------------------------------------------------*/
//Classe de camera qui gerera les rotations et les translations
/*--------------------------------------------------------------*/
class Camera
{
float X,Y,Z; //position de la camera
float Xlook,Ylook,Zlook; //position du point ou l'on regarde
float Xvertical,Yvertical,Zvertical; //coords de la verticale
float angleXZ; //longitude (coords spheriques)
float angleXY; //latitude
float rayon; //rayon
int nbGrounds; //Nombre desurfaces pour la gestion des collisions
int nbWalls;
int nbTriangles;
void CalculCoords(); //Calcule le point que l'on vise en fonction des angles
public:
int* Grounds[GROUND_ARG_SIZE]; //Va contenir les caracteristiques des surfaces
int* Walls[WALL_ARG_SIZE];
float* Triangles[TRIANGLE_ARG_SIZE];
int skybox[7];
~Camera(void); //destructeur
void SetCamera(float tab[11]);
void PlaceCamera() //set la camera
{
gluLookAt(X,Y,Z,Xlook,Ylook,Zlook,Xvertical,Yvertical,Zvertical);
};
void Setnb(int ng,int nw,int nt)
{
nbGrounds = ng;
nbWalls = nw;
nbTriangles = nt;
};
void RotateCamera(char axex,char axey,float angle); //gere les rotations
void TranslateCamera(int flag,float inc); //gere les translations
void Paint(HDC); //fonction de dessin
BOOL CollisionGround(); //gere les collisions avec le sol
BOOL CollisionWall(); //gere les collisions avec les murs
};
Conclusion
J'ai pris les textures de bois et de brique sur la source de djl : Labyrinthe 3d Et les textures de la skybox on été prises sur le CD d'un numero de Coder
Ma classe camera va etre renomée, elle gere aussi bien la camera que les collisions et contient la structure du niveau
Je vais essayer progressivement rajouter : -la gestion des collisions des murs et des plans tres inclinés -regrouper les infos dans un fichier ini -gerer le jump et le crouch -essayer de mettre des models -affichage des sprites -gerer la lumiere [...]
Je vais essayer de faire un max pendant ces vacances parce qu'apres le projet ne pourra pas avancer tres vite
Historique
- 11 janvier 2005 18:38:17 :
Sources du même auteur
Sources de la même categorie
Commentaires et avis
Discussions en rapport avec ce code source dans le forum
Moteur 3d OpenGL [ par Stormy ]
Salut. Je recherche des personnes motives pour travailler sur un moteur 3d sous OpenGL. Les bases sont deja etablies (Detection de collisions, sons, m
OpenGL et moteur3D [ par adess00 ]
Salut, Je voudrais savoir ce qu est la difference entre un moteur 3D et openGL Je pensai qu un moteur 3D etait un ensemble de fonction qui permet de
Création d'un moteur 3D en partant de rien [ par poiuytrez3 ]
Bonjour, je souhaiterai créer un petit moteur 3D le plus simple possible en partant de rien. Quelqu'un en a t il déjà fait un? Je ne so
transparences en openGL [ par vangeurmasker ]
J'ai un probleme dans un projet en OpenGL. J'utilise le canal alpha de mes textures pour gérér les transparences. Mais le probleme est qu'au
Les textures en OpenGL [ par fireuo ]
Bonjour je vien de commencer en OpenGl et après beaucoup de travail j'ai réusie a faire apparaitre un Mesh avec une texture de gazon. Mais m
OpenGL textures et DevC++ [ par vangeurmasker ]
J'ai un projet que je souhaite compiler avec DevC++. La compilation passe sans probleme. C lors du link que j'ai deux erreurs: - [Linker error] undefi
Transition progressive de textures en OPENGL [ par CausPupus ]
En OPENGL tout le monde connait la magnifique gestion des couleurs de l'api notamment le mixage des couleurs qui permet d'avoir un dégradé e
Comment fonctionne un moteur 2D ? [ par psykocrash ]
Bonjour,J'ai pour projet de développer un rpg à la Final Fantasy (en 2D, 4 héros, un inventaire pour les techniques et les armes, des c
Moteur 3D. [ par pauledouard ]
Voila, bonjour à tous, je suis tout nouveau.Ma question est simple, avez vous une marche à suivre pour construire un moteur 3D en opengl en partant de
|
Derniers Blogs
TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3 par ROMELARD Fabrice
Speaker: Bernard Ourghanlian Cette session est comme chaque jour transmise en live par BrainSonic, et j'ai donc suivi cette troisième pleinière par ce moyen sur mon iPad . Elle est dédiée comme chaque année à la mise en perspective de l'é...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice MISHRA READER : UN LECTEUR RSS TRèS ZUNE STYLE EN OPEN SOURCE !MISHRA READER : UN LECTEUR RSS TRèS ZUNE STYLE EN OPEN SOURCE ! par Vko
Hier durant une session dédiée aux Techdays 2012, j'ai eu le plaisir d'annoncer la sortie de la Béta 2 de Mishra Reader. C'est quoi ? Pour les utilisateurs, c'est une vraie expérience de lecture de flux RSS sur Windows. Rien à voir avec les produit...
Cliquez pour lire la suite de l'article par Vko [FRAMEWORK 4] LES TASKS ET LE THREAD UI[FRAMEWORK 4] LES TASKS ET LE THREAD UI par fathi
Je viens de passer quelques temps au TechDay's et j'ai pu voir pas mal de session intéressante. Par contre une chose m'a un peu étonné lors de certaines de ces sessions qui abordaient les améliorations du framework .NET (donc le 4.5) : en gros, bea...
Cliquez pour lire la suite de l'article par fathi WORKFLOW FOUNDATION 3 A UN PIED DANS LA TOMBEWORKFLOW FOUNDATION 3 A UN PIED DANS LA TOMBE par JeremyJeanson
Depuis déjà un an, je conseille vivement les utilisateurs de Workflow Foundation 3 à migrer vers la version 4. L'information qui va suivre ne devrait donc pas trop prendre au dépourvu les personnes qui m'ont suivi. Je profite de ce poste, pour faire le re...
Cliquez pour lire la suite de l'article par JeremyJeanson TECHDAYS PARIS 2012 : NOUVELLES TENDANCES DU POSTE DE TRAVAIL - BRING YOUR OWN PCTECHDAYS PARIS 2012 : NOUVELLES TENDANCES DU POSTE DE TRAVAIL - BRING YOUR OWN PC par ROMELARD Fabrice
Speakers: Thierry Rapatout, Antoine Petit et Xavier Trebbia Cette session entre dans le cadre des RDV Décideurs des TechDays 2012, elle est liée à la consumérisation de l'IT et la mise en place du "DeskTop as a Service" dans de plus en ...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice
Forum
RE : CXIMAGERE : CXIMAGE par rt15
Cliquez pour lire la suite par rt15
Logiciels
Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System Easy-Planning (1.0.0.1)EASY-PLANNING (1.0.0.1)Basé sur les mêmes principes que MyPlanning, Easy-Planning permet de créer des plannings sous la ... Cliquez pour télécharger Easy-Planning COLLECTOR PLUS (3.00B)COLLECTOR PLUS (3.00B)COLLECTOR PLUS version 3.00B est un logiciel utilisant une base de données alimentée par :
- L... Cliquez pour télécharger COLLECTOR PLUS PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO LettresFaciles 2011 (8.0.0.1)LETTRESFACILES 2011 (8.0.0.1)LettresFaciles est un logiciel facilitant la création et la rédaction de lettres types.
Son inte... Cliquez pour télécharger LettresFaciles 2011
|