begin process at 2010 02 10 16:38:35
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

OpenGL

 > DEBUT DE MOTEUR D'AFFICHAGE OPENGL AVEC RENDU DE SKYBOX

DEBUT DE MOTEUR D'AFFICHAGE OPENGL AVEC RENDU DE SKYBOX


 Information sur la source

Note :
7,5 / 10 - par 2 personnes
7,50 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :OpenGL Classé sous :skybox, opengl, moteur, 3d, textures Niveau :Initié Date de création :16/02/2004 Date de mise à jour :11/01/2005 18:38:17 Vu / téléchargé :6 491 / 2 876

Auteur : Maegis

Ecrire un message privé
Commentaire sur cette source (8)
Ajouter un commentaire et/ou une note

 Description

Cliquez pour voir la capture en taille normale
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

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Historique

11 janvier 2005 18:38:17 :

 Sources du même auteur

Source avec Zip Source avec une capture DETECTION DE CONTOURS
Source avec Zip Source avec une capture ASCII ART : BMP TO HTM - TRANSFORME UNE IMAGE EN FICHIER HT...
Source avec Zip ETIRER/RÉTRÉCIR UNE IMAGE BMP SANS STRETCHBLT
Source avec Zip Source avec une capture BITMAP24 TO TEXT - TRANSFORME UNE IMAGE EN TEXTE VC++
Source avec Zip RESOLUTION D'EQUATIONS DE DEGRÉ 4 OU INFERIEUR

 Sources de la même categorie

Source avec Zip JEU DE DAMES 3D par vbclaude
Source avec Zip CHARGEMENT DES TEXTURES EN OPENGL par Jackyzgood
Source avec Zip Source avec une capture OPENGL - UN PEU DE NEIGE... par underprog
Source avec Zip Source avec une capture JEU DE LA VIE 3D OPENGL AVEC GESTION SOURIS par fratleym
Source avec Zip Source avec une capture SPEAD RACER par jngl

 Sources en rapport avec celle ci

Source avec Zip Source avec une capture XTENGINE - MOTEUR 3D BASÉ SUR OPENGL, GLEW ET LA SDL par XT95
Source avec Zip MOTEUR A PARTICULES par leo666
Source avec Zip Source avec une capture MOTEUR 3D AVEC OPENGL par crazy lapinou
Source avec Zip Source avec une capture DÉBUT DE MOTEUR 3D par CyberP
Source avec Zip Source avec une capture [VC++] 1.3 MOTEUR DE JEU 3D OPENGL [SANS GLUT] par Xentor

Commentaires et avis

Commentaire de LordBob le 16/02/2004 17:45:06

je n'est regardé que vite fait la source, car je n'ai pas de compilateur sous la main... mais ca promet !!! :) (vu la capture) et puis ton code est commenté...

Commentaire de Maegis le 16/02/2004 19:41:16

Je viens de rajouter la gestion des collisions avec le sol et la lecture du niveau dans un fichier
Je mettrai la source a jour quand j'en aurait le temps

Commentaire de djl le 16/02/2004 22:38:23

c'est kler que ca promet pour un debut!
pour la gestion de la camera j'ai vu que tu te servai de glulookat et ca c'est tres bien car c'est beaucoup plus facile comme ca
la skybox rend bien! et le code est bien structuré, si ta du temps tu pourra faire un truc qui dechire et t'aura de bonnes bases pour faire un quake like

Commentaire de cppdupdup34 le 17/02/2004 22:08:53

juste un truc dans le source que tu a posté il y a pas les textures
le prog me dis

"Il manque des textures"
"elles doivent se trouver dans le repertoire texture"

:-)

Commentaire de djl le 17/02/2004 22:25:45

telecharge l'archive ici

http://maegisinstinct.free.fr/OpenGL%20Texture.rar

Commentaire de cppdupdup34 le 17/02/2004 22:44:20

danke

Commentaire de gouessej le 06/04/2006 11:14:18

bonjour

Je vois que tu as fait une caméra en opengl dans ton programme. Je vais jeter un coup d'oeil à tes sources. As-tu des problèmes de "gimbal lock"? J'essaie de me fabriquer une caméra depuis 2 mois sans succès. Ca marche un peu mais ça me crée des rotations indésirables. J'ai essayé de faire une caméra d'Euler (qui marche en déplacement centré en 0) puis une caméra UVN et enfin j'ai fait 2 caméras à base de quaternions...toujours le même problème. Pourquoi n'as-tu pas utilisé la glut? Ce serait plus portable, non?

Commentaire de Maegis le 06/04/2006 20:52:54

Non, aucun probleme de lock avec ma camera à ma connaissance.
Sinon pour glut c'est simplement que je suis pas trop fan, mais c'est sur que la comme je l'ai fait c'est pas portable sous un autre OS du coup ^^

 Ajouter un commentaire


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&#233;er un petit moteur 3D le plus simple possible en partant de rien. Quelqu'un en a t il d&#233;j&#224; 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&#233;r&#233;r les transparences. Mais le probleme est qu'au Les textures en OpenGL [ par fireuo ] Bonjour je vien de commencer en OpenGl et apr&#232;s beaucoup de travail j'ai r&#233;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&#233;grad&#233; e Comment fonctionne un moteur 2D ? [ par psykocrash ] Bonjour,J'ai pour projet de d&#233;velopper un rpg &#224; la Final Fantasy (en 2D, 4 h&#233;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


Nos sponsors


Sondage...

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,388 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales