Java-Gaming.org Java4K winners: [ by our judges | by the community ]         
Featured games (67)
games approved by the League of Dukes
Games in Showcase (∞)
games submitted by our members



News: Read the Java Gaming Resources, or peek at the official Java tutorials
 
    Home     Help   Search   Login   Register   
Pages: [1]
  Print  
  Cube Texturing, HELP pls !  (Read 524 times)
0 Members and 1 Guest are viewing this topic.
Offline beaucoralk

JGO n00b
*

Posts: 14



« on: 2011-05-24 06:22:09 »

I feel there is a problem with the Z-BUFFER!
I can not make the faces of the cubes are properly textured visible or not.
Here is what I obtain:

and here is my code:
1  
2  
3  
4  
5  
6  
7  
8  
9  
@Override
    public void init(GLAutoDrawable gLDrawable)
    {
       System.out.println("init() called");
        GL2 gl = gLDrawable.getGL().getGL2();
        gl.glClearColor(0.0f, 0.0f, 0.0f, 0.0f);
        gl.glEnable(GL2.GL_DEPTH_TEST);                                          // Enables Depth Testing
       gl.glDepthFunc(GL2.GL_LESS);
    }

1  
2  
3  
4  
5  
6  
7  
8  
9  
10  
11  
12  
13  
14  
15  
16  
17  
18  
19  
20  
21  
22  
23  
24  
25  
26  
27  
28  
29  
30  
31  
32  
33  
34  
35  
36  
37  
38  
39  
40  
41  
42  
43  
44  
45  
46  
47  
48  
49  
50  
51  
52  
53  
54  
55  
56  
57  
58  
59  
60  
61  
62  
63  
64  
65  
66  
67  
68  
69  
70  
71  
72  
73  
74  
75  
76  
77  
78  
79  
80  
81  
82  
83  
84  
85  
86  
87  
88  
89  
90  
91  
92  
93  
94  
95  
96  
97  
98  
99  
100  
gl.glColor3f(1.0f, 1.0f, 1.0f);
        gl.glEnable(GL2.GL_BLEND);
        gl.glBlendFunc(GL2.GL_SRC_ALPHA, GL2.GL_ONE_MINUS_SRC_ALPHA);
       
        texPack.getTexture(numtex).getTop().enable();
        texPack.getTexture(numtex).getTop().bind();
        gl.glTexParameteri(GL2.GL_TEXTURE_2D, GL2.GL_TEXTURE_MAG_FILTER, GL2.GL_NEAREST);
   gl.glTexParameteri(GL2.GL_TEXTURE_2D, GL2.GL_TEXTURE_MIN_FILTER, GL2.GL_NEAREST);
   gl.glTexParameteri(GL2.GL_TEXTURE_2D, GL2.GL_TEXTURE_WRAP_S, GL2.GL_REPEAT);
   gl.glTexParameteri(GL2.GL_TEXTURE_2D, GL2.GL_TEXTURE_WRAP_T, GL2.GL_REPEAT);
   gl.glTexEnvi(GL2.GL_TEXTURE_ENV, GL2.GL_TEXTURE_ENV_MODE, GL2.GL_MODULATE);
        gl.glBegin(GL2.GL_QUADS);
        gl.glNormal3f(0.0f, 1.0f, 0.0f);
        gl.glTexCoord2d(0.0f, 0.0f); gl.glVertex3f(x, y + CUBESIZE, z);
   gl.glTexCoord2d(1.0f, 0.0f); gl.glVertex3f(x + CUBESIZE, y + CUBESIZE, z);
   gl.glTexCoord2d(1.0f, 1.0f); gl.glVertex3f(x + CUBESIZE, y + CUBESIZE, z + CUBESIZE);
   gl.glTexCoord2d(0.0f, 1.0f); gl.glVertex3f(x, y + CUBESIZE, z + CUBESIZE);
        gl.glEnd();
        texPack.getTexture(numtex).getTop().disable();
       
   texPack.getTexture(numtex).getBottom().enable();
        texPack.getTexture(numtex).getBottom().bind();
        gl.glTexParameteri(GL2.GL_TEXTURE_2D, GL2.GL_TEXTURE_MAG_FILTER, GL2.GL_NEAREST);
   gl.glTexParameteri(GL2.GL_TEXTURE_2D, GL2.GL_TEXTURE_MIN_FILTER, GL2.GL_NEAREST);
   gl.glTexParameteri(GL2.GL_TEXTURE_2D, GL2.GL_TEXTURE_WRAP_S, GL2.GL_REPEAT);
   gl.glTexParameteri(GL2.GL_TEXTURE_2D, GL2.GL_TEXTURE_WRAP_T, GL2.GL_REPEAT);
   gl.glTexEnvi(GL2.GL_TEXTURE_ENV, GL2.GL_TEXTURE_ENV_MODE, GL2.GL_MODULATE);
        gl.glNormal3f(0.0f, -1.0f, 0.0f);
   gl.glTexCoord2d(0.0f, 0.0f); gl.glVertex3f(x + CUBESIZE, y, z);
   gl.glTexCoord2d(1.0f, 0.0f); gl.glVertex3f(x, y, z);
   gl.glTexCoord2d(1.0f, 1.0f); gl.glVertex3f(x, y, z + CUBESIZE);
   gl.glTexCoord2d(0.0f, 1.0f); gl.glVertex3f(x + CUBESIZE, y, z + CUBESIZE);
        gl.glEnd();
        texPack.getTexture(numtex).getBottom().disable();
       
   texPack.getTexture(numtex).getRight().enable();
        texPack.getTexture(numtex).getRight().bind();
        gl.glTexParameteri(GL2.GL_TEXTURE_2D, GL2.GL_TEXTURE_MAG_FILTER, GL2.GL_NEAREST);
   gl.glTexParameteri(GL2.GL_TEXTURE_2D, GL2.GL_TEXTURE_MIN_FILTER, GL2.GL_NEAREST);
   gl.glTexParameteri(GL2.GL_TEXTURE_2D, GL2.GL_TEXTURE_WRAP_S, GL2.GL_REPEAT);
   gl.glTexParameteri(GL2.GL_TEXTURE_2D, GL2.GL_TEXTURE_WRAP_T, GL2.GL_REPEAT);
   gl.glTexEnvi(GL2.GL_TEXTURE_ENV, GL2.GL_TEXTURE_ENV_MODE, GL2.GL_MODULATE);
        gl.glBegin(GL2.GL_QUADS);
        gl.glNormal3f(1.0f, 0.0f, 0.0f);
   gl.glTexCoord2d(0.0f, 0.0f); gl.glVertex3f(x + CUBESIZE, y + CUBESIZE, z + CUBESIZE);
   gl.glTexCoord2d(1.0f, 0.0f); gl.glVertex3f(x + CUBESIZE, y + CUBESIZE, z);
   gl.glTexCoord2d(1.0f, 1.0f); gl.glVertex3f(x + CUBESIZE, y, z);
   gl.glTexCoord2d(0.0f, 1.0f); gl.glVertex3f(x + CUBESIZE, y, z + CUBESIZE);
        gl.glEnd();
        texPack.getTexture(numtex).getRight().disable();
   
   texPack.getTexture(numtex).getLeft().enable();
        texPack.getTexture(numtex).getLeft().bind();
        gl.glTexParameteri(GL2.GL_TEXTURE_2D, GL2.GL_TEXTURE_MAG_FILTER, GL2.GL_NEAREST);
   gl.glTexParameteri(GL2.GL_TEXTURE_2D, GL2.GL_TEXTURE_MIN_FILTER, GL2.GL_NEAREST);
   gl.glTexParameteri(GL2.GL_TEXTURE_2D, GL2.GL_TEXTURE_WRAP_S, GL2.GL_REPEAT);
   gl.glTexParameteri(GL2.GL_TEXTURE_2D, GL2.GL_TEXTURE_WRAP_T, GL2.GL_REPEAT);
   gl.glTexEnvi(GL2.GL_TEXTURE_ENV, GL2.GL_TEXTURE_ENV_MODE, GL2.GL_MODULATE);
        gl.glBegin(GL2.GL_QUADS);
        gl.glNormal3f(-1.0f, 0.0f, 0.0f);
   gl.glTexCoord2d(0.0f, 0.0f); gl.glVertex3f(x, y + CUBESIZE, z);
   gl.glTexCoord2d(1.0f, 0.0f); gl.glVertex3f(x, y + CUBESIZE, z + CUBESIZE);
   gl.glTexCoord2d(1.0f, 1.0f); gl.glVertex3f(x, y, z + CUBESIZE);
   gl.glTexCoord2d(0.0f, 1.0f); gl.glVertex3f(x, y, z);
        gl.glEnd();
        texPack.getTexture(numtex).getLeft().disable();
   
   texPack.getTexture(numtex).getFront().enable();
        texPack.getTexture(numtex).getFront().bind();
        gl.glTexParameteri(GL2.GL_TEXTURE_2D, GL2.GL_TEXTURE_MAG_FILTER, GL2.GL_NEAREST);
   gl.glTexParameteri(GL2.GL_TEXTURE_2D, GL2.GL_TEXTURE_MIN_FILTER, GL2.GL_NEAREST);
   gl.glTexParameteri(GL2.GL_TEXTURE_2D, GL2.GL_TEXTURE_WRAP_S, GL2.GL_REPEAT);
   gl.glTexParameteri(GL2.GL_TEXTURE_2D, GL2.GL_TEXTURE_WRAP_T, GL2.GL_REPEAT);
   gl.glTexEnvi(GL2.GL_TEXTURE_ENV, GL2.GL_TEXTURE_ENV_MODE, GL2.GL_MODULATE);
        gl.glBegin(GL2.GL_QUADS);
        gl.glNormal3f(0.0f, 0.0f, 1.0f);
   gl.glTexCoord2d(0.0f, 0.0f); gl.glVertex3f(x, y + CUBESIZE, z + CUBESIZE);
   gl.glTexCoord2d(1.0f, 0.0f); gl.glVertex3f(x + CUBESIZE, y + CUBESIZE, z + CUBESIZE);
   gl.glTexCoord2d(1.0f, 1.0f); gl.glVertex3f(x + CUBESIZE, y, z + CUBESIZE);
   gl.glTexCoord2d(0.0f, 1.0f); gl.glVertex3f(x, y, z + CUBESIZE);
        gl.glEnd();
        texPack.getTexture(numtex).getFront().disable();
   
   texPack.getTexture(numtex).getBack().enable();
        texPack.getTexture(numtex).getBack().bind();
        gl.glTexParameteri(GL2.GL_TEXTURE_2D, GL2.GL_TEXTURE_MAG_FILTER, GL2.GL_NEAREST);
   gl.glTexParameteri(GL2.GL_TEXTURE_2D, GL2.GL_TEXTURE_MIN_FILTER, GL2.GL_NEAREST);
   gl.glTexParameteri(GL2.GL_TEXTURE_2D, GL2.GL_TEXTURE_WRAP_S, GL2.GL_REPEAT);
   gl.glTexParameteri(GL2.GL_TEXTURE_2D, GL2.GL_TEXTURE_WRAP_T, GL2.GL_REPEAT);
   gl.glTexEnvi(GL2.GL_TEXTURE_ENV, GL2.GL_TEXTURE_ENV_MODE, GL2.GL_MODULATE);
        gl.glBegin(GL2.GL_QUADS);
        gl.glNormal3f(0.0f, 0.0f, -1.0f);
   gl.glTexCoord2d(0.0f, 0.0f); gl.glVertex3f(x + CUBESIZE, y + CUBESIZE, z);
   gl.glTexCoord2d(1.0f, 0.0f); gl.glVertex3f(x, y + CUBESIZE, z);
   gl.glTexCoord2d(1.0f, 1.0f); gl.glVertex3f(x, y, z);
   gl.glTexCoord2d(0.0f, 1.0f); gl.glVertex3f(x + CUBESIZE, y, z);
        gl.glEnd();
        texPack.getTexture(numtex).getBack().disable();
       
        gl.glDisable(GL2.GL_BLEND);

texPack.getTexture(numtex).getTop() // Renvoi l'objet Texture ou est charger le fichier top.png
texPack.getTexture(numtex).getBottom() // Renvoi l'objet Texture ou est charger le fichier bottom.png
texPack.getTexture(numtex).getRight() // Renvoi l'objet Texture ou est charger le fichier right.png
texPack.getTexture(numtex).getLeft() // Renvoi l'objet Texture ou est charger le fichier left.png
texPack.getTexture(numtex).getFront() // Renvoi l'objet Texture ou est charger le fichier front.png
texPack.getTexture(numtex).getBack() // Renvoi l'objet Texture ou est charger le fichier back.png

Please HELP ME !!
Offline Orangy Tang

JGO Kernel
*****

Posts: 2960
Medals: 37


Monkey for a head


« Reply #1 on: 2011-05-24 09:13:36 »

Did you remember to request a depth buffer when creating your display?

[ TriangularPixels.com - Play Growth Spurt, Rescue Squad and Snowman Village ] [ Rebirth - game resource library ]
Online Riven
« League of Dukes »

JGO Kernel
*****

Posts: 5866
Medals: 255


Hand over your head.


« Reply #2 on: 2011-05-24 10:51:49 »

Did you set your near-clipping-plane to (almost) zero? (in the projection matrix)


Other points:

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

You typically want (0.0f, 0.0f, 0.0f, 1.0f) // alpha: 1.0

1  
        gl.glDepthFunc(GL2.GL_LESS);

You typically want (GL_LEQUAL)

Hi, appreciate more people! Σ ♥ = ¾

Learn how to award medals... and work your way up the social rankings
Games published by our own members! Go get 'em!
Offline beaucoralk

JGO n00b
*

Posts: 14



« Reply #3 on: 2011-05-24 11:03:01 »

Quote
Did you set your near-clipping-plane to (almost) zero? (in the projection matrix)
I must admit I'm confused ... How can I do to do this?
Quote
Did you remember to request a depth buffer when creating your display?
Same question ... lol
Offline gouessej

JGO Kernel
*****

Posts: 3558
Medals: 30


TUER


« Reply #4 on: 2011-05-27 08:26:13 »

Hi!

Please HELP ME !!
Keep cool, this forum has already an example of excited French people Wink

I think that the order of the vertices is wrong, the texture at the bottom of each cube is not displayed. I'm accustomed with displaying orthogonal volumes, I had done this kind of mistake in the past.

Julien Gouesse
Pages: [1]
  Print  
 
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.16 | SMF © 2011, Simple Machines Valid XHTML 1.0! Valid CSS!
Page created in 0.177 seconds with 21 queries.