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 2010 : ADMINISTRATION SHAREPOINT 2010TECHDAYS PARIS 2010 : ADMINISTRATION SHAREPOINT 2010 par ROMELARD Fabrice
Animé par: Patrick Guimonet et Benoit Hamet Cette session traitera des différents points exigés durant les taches d'administration : Planification (architecture, hébergement, authentification, .) Opération e...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice [TECHDAYS 2010] #03 - WEB CONTENT MANAGEMENT SOUS SHAREPOINT 2010[TECHDAYS 2010] #03 - WEB CONTENT MANAGEMENT SOUS SHAREPOINT 2010 par pierre
Stephane Cordonnier de MCNext nous présente les fonctionnalités Web Content Management (WCM) sous SharePoint 2010. Qu'est-ce que le WCM ECM, GED, RM, WCM c'est quoi Plateforme SharePoint Versions SharePoint 2010 SharePoint Fondation...
Cliquez pour lire la suite de l'article par pierre [DESIGN PATTERNS] PARTIE 2: DIP: DEPENDENCY INVERSION PRINCIPLE[DESIGN PATTERNS] PARTIE 2: DIP: DEPENDENCY INVERSION PRINCIPLE par tja
C'est le dernier principe des principes du Design Orienté Objet (The Principles of Object Oriented Design) fondés par Robert C. Martin plus connu sous le pseudonyme d'Uncle Bob.
l'image empruntée de LosTechies.
Je ne traite pas les principes dans...
Cliquez pour lire la suite de l'article par tja TECHDAYS PARIS 2010 : SHAREPOINT 2010 POUR LES DéVELOPPEURSTECHDAYS PARIS 2010 : SHAREPOINT 2010 POUR LES DéVELOPPEURS par ROMELARD Fabrice
Animé par: Laurent Cotton Le développement dans SharePoint 2010 passe par plusieurs axes qui seront évoqués dans cette session, mais plus particulièrement les développements simples lié au besoin Business Business Connectivity Services Ce BCS es...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice TECHDAYS PARIS 2010 : PLEINIèRE DERNIER JOURTECHDAYS PARIS 2010 : PLEINIèRE DERNIER JOUR par ROMELARD Fabrice
Cette session est la dernière pleinière de ces 3 jours de TechDays Paris 2010. Généralement, cette troisième journée est plus axée sur l'avenir vu par Microsoft. Après un retour sur l'avenir vu par la Science Fiction ou par ...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice
Forum
CAST DE POINTEURSCAST DE POINTEURS par zaraki21
Cliquez pour lire la suite par zaraki21 CARTE GOOGLECARTE GOOGLE par ja92
Cliquez pour lire la suite par ja92 RE : WIN APIRE : WIN API par omarino_007
Cliquez pour lire la suite par omarino_007
Logiciels
DB-MAIN (9.1.0)DB-MAIN (9.1.0)DB-MAIN is a data-modeling and data-architecture tool. It is designed to help developers and anal... Cliquez pour télécharger DB-MAIN Xilisoft DPG Convertisseur (5.1.37.0120)XILISOFT DPG CONVERTISSEUR (5.1.37.0120)Xilisoft DPG Convertisseur offre aux fans de Nintendo DS une bonne solution leur permettant de dé... Cliquez pour télécharger Xilisoft DPG Convertisseur GraphicsGale (2.01.01)GRAPHICSGALE (2.01.01)GraphicsGale est un logiciel de PixelArt avec de nombreuse fonctionnalités permettant de réalisé ... Cliquez pour télécharger GraphicsGale Architecte 3D (Platinum 2010)ARCHITECTE 3D (PLATINUM 2010)Architecte 3D Platinium vous permet de concevoir facilement les plans votre future maison, de l'é... Cliquez pour télécharger Architecte 3D TeamViewer 5 (TeamViewer 5)TEAMVIEWER 5 (TEAMVIEWER 5)Dépanner un ami,expliquer une manipulation devient un jeu d'enfant.
Prise en main d'un autre ord... Cliquez pour télécharger TeamViewer 5
|