Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
3684 connectés 

  FORUM HardWare.fr
  Programmation

  Un peu de 3D :-D

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Un peu de 3D :-D

n°71931
neoby
C normal la fumée là ?
Posté le 13-11-2001 à 18:33:03  profilanswer
 

bon tout d' abord voila ma source, je l' ai faite a l' arrache a partir de 2 ou 3 tuts ke j' a v lu, donc vous verrez kelle est pas du tout optimisee :-) :
 
/////////////////////////////////////////////////////////////////
#include <conio.h>
 
char * screen =(char*)(0xA0000000L);
 
void setmode(int mode)
{
asm{
MOV AX, mode
INT 0x10
}
}
 
void putpixel(int X, int Y, char color)
{
screen [320*Y+X]=color;
}
 
typedef struct tri
{
 float x,y,z;
};
 
typedef struct bi
{
int x,y;
};
 
 tri c[8] = {
   {  1.0,  1.0,  1.0 },  
   { -1.0,  1.0,  1.0 },
   { -1.0, -1.0,  1.0 },
   {  1.0, -1.0,  1.0 },
   {  1.0,  1.0, -1.0 },    <<<
   { -1.0,  1.0, -1.0 },    <<< LE PB EST                   { -1.0, -1.0, -1.0 },    <<<   ICI
   {  1.0, -1.0, -1.0 }     <<<  
};
 
bi cube[8] =
{
{ 160+200*c[0].x/c[0].z, 100+200*c[0].y/c[0].z},
{ 160+200*c[1].x/c[1].z, 100+200*c[1].y/c[1].z},
{ 160+200*c[2].x/c[2].z, 100+200*c[2].y/c[2].z},
{ 160+200*c[3].x/c[3].z, 100+200*c[3].y/c[3].z},
{ 160+200*c[4].x/c[4].z, 100+200*c[4].y/c[4].z},
{ 160+200*c[5].x/c[5].z, 100+200*c[5].y/c[5].z},
{ 160+200*c[6].x/c[6].z, 100+200*c[6].y/c[6].z},
{ 160+200*c[7].x/c[7].z, 100+200*c[7].y/c[7].z}
};
 
void main()
{
setmode (0x13);
putpixel (cube[0].x, cube[0].y, 50);
putpixel (cube[1].x, cube[1].y, 50);
putpixel (cube[2].x, cube[2].y, 50);
putpixel (cube[3].x, cube[3].y, 50);
putpixel (cube[4].x, cube[4].y, 50);
putpixel (cube[5].x, cube[5].y, 50);
putpixel (cube[6].x, cube[6].y, 50);
putpixel (cube[7].x, cube[7].y, 50);
getch();
}
 
/////////////////////////////////////////////////////////////////
 
Tout cela marche tres bien (TC++ 3.0 DOS represent ;-), mis a part kil n' y a aucune perspective.En effet, on n' appercoit ke 4 points (ki en sont donc chacun 2 superpose ....). Le probleme vient d nombres indique dans la source, car kan je met la une valeur positive different de 1, g un effet de perspective nikel. Ke faire pour ke mon "moteur" accepte les coordones Z negatifs ???? Merci d' avance (je compte sur toa rainckill ;-)

mood
Publicité
Posté le 13-11-2001 à 18:33:03  profilanswer
 

n°71932
youdontcar​e
Posté le 13-11-2001 à 18:40:46  profilanswer
 

un moteur n'accepte jamais, jamais de coordonées négatives. enfin si, mais pas à cet endroit. lorsque tu fais la projection, tu es dans le repère caméra. ton oeil est en fait en (0, 0, 0), l'axe des z s'étend tout droit devant toi. vouloir afficher un z négatif signifie vouloir afficher des trucs derrière ton oeil ... -> pas possible.
 
pour régler le problème directement, tu décales ton cube sur l'axe des z, tu rajoutes par ex 2 à toutes les coordonnées z. et hop.
 
dans la pratique, chaque objet a son repère relatif au repère monde. pour afficher l'objet, tu le transformes de son repère vers le repère monde puis vers le repère caméra (oeil). c'est très bien expliqué dans la doc de dx, tu devrais faire du dx d'ailleurs :)

n°71933
youdontcar​e
Posté le 13-11-2001 à 18:41:44  profilanswer
 

ah et tu devrais utiliser des boucles, c'est utile :D

n°71939
neoby
C normal la fumée là ?
Posté le 13-11-2001 à 18:52:18  profilanswer
 

Merci beaucoup youdontcare !, j' aimerai bien te dire ke je te revaudrai ca mais vu mon nivo je croa ke ca va pas etre possible ;-). Sinon, g remarke kil y avait d commande un peu repetitive (cf : putpixel ;-), mais vu l' heure ou j' ai code ce torchon, un fois les algos créé, je me sentait plus de faire des boucles ;-). Sinon, j' ai achete un book sur DX (DIRECT 3D game programming) mais g trouve les explications un peu trop abstraite, donc g preferé prendre la 3D aux sources ;-)

n°72860
rainckill
Posté le 16-11-2001 à 17:40:48  profilanswer
 

neoby a écrit a écrit :

bon tout d' abord voila ma source, je l' ai faite a l' arrache a partir de 2 ou 3 tuts ke j' a v lu, donc vous verrez kelle est pas du tout optimisee :-) :
 
//////////////////////////////////////////////////
 
///////////////
 
BARATIN
 
//////////////////////////////////////////////////
 
///////////////
 
Merci d' avance (je compte sur toa rainckill ;-)  




 
:lol:, reve pas trop mon gars, la, je comprend meme aps avec koi faire marché ce code, et emme pas quel language c'est :) :D
 
:(
Bah, c'ets pas grave, bon, ben je voit qu'on ta bien aidé, je vais aps en dire +
 
 
 :hello:  
 
Rainckill

 

[edtdd]--Message édité par rainckill--[/edtdd]

n°72985
ricocorico
Posté le 17-11-2001 à 02:21:02  profilanswer
 

C'est bien de commencer par les bases: les matrices de transformation et tout et tout...
 
mais après mets toi à l'openGL + Glut. c'est nikel et tout simple


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation

  Un peu de 3D :-D

 

Sujets relatifs
Plus de sujets relatifs à : Un peu de 3D :-D


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)