begin process at 2010 02 09 21:20:44
  Trouver un code source :
 
dans
 
Accueil > Forum > 

JAVA / J2EE / J2ME

 > 

Multimédia

 > 

Autre

 > 

OpenGL et Z-Buffer


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

OpenGL et Z-Buffer

samedi 15 novembre 2008 à 23:31:05 | OpenGL et Z-Buffer

JCDjcd

Bonsoir,

J'ai des problèmes pour arriver à utiliser le Z-Buffer...
Mon problème c'est que pour l'instant c'est l'ordre dans lequel j'ai

ajouté les triangles qui compte
alors que moi je voudrais que ca soit en fonction de la position de

l'observateur... (de la vraie 3D quoi)

Voici mon code :
**********************************************************

importjava.awt.*;

import

java.awt.event.*;

import

javax.swing.*;

import

javax.media.opengl.*;

import

javax.media.opengl.glu.GLU;

 

//===================================================

public

classTestZBufferextendsJFrameimplements GLEventListener, MouseListener,MouseMotionListener

{

//---------------------------------------------------

static

finallong serialVersionUID = 1L;

static

finalGLU glu = new GLU();

//---------------------------------------------------

GLCanvas

canvas;

float

theta,phi,zoom;

float

oldX,oldY,oldTheta,oldPhi;

boolean

bMouse;

//---------------------------------------------------

public

TestZBuffer(String title)

{

super(title);

this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

this.bMouse = false;

this.theta = 0.f;

this.phi = 0.f;

this.zoom = 5f;

canvas = new GLCanvas(new GLCapabilities());

canvas.addGLEventListener(this);

canvas.addMouseListener(this);

canvas.addMouseMotionListener(this);

canvas.requestFocus();

this.getContentPane().add(canvas,BorderLayout.CENTER);

this.setSize(500,500);

this.setVisible(true);

} // TestZBuffer()

//---------------------------------------------------

public

staticvoidmain(String[] args)

{

TestZBuffer frm = new TestZBuffer("Test du Z-Buffer en OpenGL");

frm.setVisible(true);

} // main()

//---------------------------------------------------

public

voidinit(GLAutoDrawable drawable)

{

GL gl;

gl = drawable.getGL();

gl.setSwapInterval(1);

gl.glClearColor(0.0f, 0.0f, 0.0f, 0.0f);

gl.glClearDepth(1.0f);

gl.glEnable(GL.GL_DEPTH_TEST);

gl.glDepthFunc(GL.GL_LEQUAL);

} // init()

public

voidreshape(GLAutoDrawable drawable, int x, int y, int width,int height)

{

GL gl;

gl = drawable.getGL();

gl.glViewport(0,0,width,height);

gl.glMatrixMode(GL.GL_PROJECTION);

gl.glLoadIdentity();

glu.gluPerspective(45.,(float)width/(float)height,0.,100000.);

} // reshape()

public

voiddisplay(GLAutoDrawable drawable)

{

GL gl;

gl = drawable.getGL();

gl.glMatrixMode(GL.GL_MODELVIEW);

gl.glClear(GL.GL_COLOR_BUFFER_BIT | GL.GL_DEPTH_BUFFER_BIT);

gl.glLoadIdentity();

glu.gluLookAt(zoom*Math.cos(theta)*Math.cos(phi),zoom*Math.sin(theta)*Math.cos(phi),zoom*Math.sin(phi),0,0,0,Math.cos(theta-Math.PI)*Math.cos(Math.PI/2.-phi),Math.sin(theta-Math.PI)*Math.cos(Math.PI/2.-phi),Math.sin(Math.PI/2.-phi));

gl.glBegin(GL.GL_TRIANGLES);

gl.glColor3f(0f,1f,0f);

gl.glVertex3f(0f,0f,0f);

gl.glVertex3f(1f,0f,0f);

gl.glVertex3f(0f,1f,0f);

gl.glColor3f(1f,0f,0f);

gl.glVertex3f(0f,0f,0.1f);

gl.glVertex3f(1f,0f,0.1f);

gl.glVertex3f(0f,1f,0.1f);

gl.glColor3f(0f,0f,1f);

gl.glVertex3f(0f,0f,0.2f);

gl.glVertex3f(1f,0f,0.2f);

gl.glVertex3f(0f,1f,0.2f);

gl.glEnd();

} // display()

public

voiddisplayChanged(GLAutoDrawable drawable, boolean modeChanged,boolean deviceChanged)

{

} // displayChanged()

//---------------------------------------------------

public

voidmouseClicked(MouseEvent e){}

public

voidmouseReleased(MouseEvent e)

{

this.bMouse = false;

}

public

voidmouseDragged(MouseEvent e)

{

if(this.bMouse == false)

{

this.bMouse = true;

oldX = e.getX();

oldY = e.getY();

oldTheta = theta;

oldPhi = phi;

}

theta = oldTheta + 2*3.141592f*(e.getX()-oldX)/((float)this.getWidth());

phi = oldPhi + 2*3.141592f*(e.getY()-oldY)/((float)this.getHeight());

canvas.display();

}

 

public

voidmousePressed(MouseEvent e){}

public

voidmouseEntered(MouseEvent e){}

public

voidmouseExited(MouseEvent e){}

public

voidmouseMoved(MouseEvent e){}

//---------------------------------------------------

} // class TestZbuffer

**********************************************************

JCDjcd



Cette discussion est classée dans : math, gl, 1f, 0f, phi


Répondre à ce message

Sujets en rapport avec ce message

Problème de caméra OpenGL [ par MeraK1337 ] Bonjour, je suis débutant en java et j'ai un problème pour le contrôle de ma caméra sur une scène 3D.J'ai besoin d'adapter une classe que j'ai récupér probleme painter [ par mouhoub ] bonjour,j'ai un probleme avec une methode qui ne veut pas marcher, bhein en fait je veux creer un header d'un formulaire en se servant de l'api de swi Sortir un zéro avec un Math.random()*10+1 [ par daviddubois ] Bonjour tout le monde,J'essaie d'avoir des chiffres de 0 à 10 avec un Math.random(), le problème est qu'il sort des chiffres entre 1 et 10.Il ne sort la fonction Math.random() [ par dorine82 ] bonjour,j'aimerais savoir comment utiliser deux threads chacun a son tour. si par exemple j' ai le thread A et le thread B , je dois avoir comme resul tableau sans repitition [ par gigi00 ] bonjourj ai besoin d' aide pour faire fonctioner se programmedans ce programme je veux réaliser un tableau de [9][9] et qui rempli aleatoirement les c jButton [ par kyokosan ] salut j'ai un problème dans jButton2_actionPerformed car j'ai mis dans cette fonction ce code   variable=Math.random()*100.intValue();while (variable= vector [ par gigi00 ] bonjour je veux que ce programme rempli aleatoirement  un tableau de 9 saans repition mais j ai un probleme  au niveau des colonnes import java.util.V interface graphique, dessiner un vecteur [ par le_papy ] bonjour, je suis actuelement en train de developper une petit programme perso (pour aprendre le langage Java) et je souhaite dessiner un dans une fene Génération de code à 8 chiffres. [ par fiftyxav03 ] Bonjour à tous, alors mon problème est le suivant:  Je voudrais générer 1 liste de code à 8 chiffres automatiquement; Or j'ai simplement réussi à obte requiet gens baléz en math et algo [ par mangiacapra ] bonjour ,je suis nul en math,mais j'aimré une fonction en java ki prends en entré un vecteur de points et ki donne en sortie la fonction ki les genére


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 : 0,265 sec (3)

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