Java-Gaming.org Hi !
Featured games (83)
games approved by the League of Dukes
Games in Showcase (539)
Games in Android Showcase (132)
games submitted by our members
Games in WIP (603)
games currently in development
News: Read the Java Gaming Resources, or peek at the official Java tutorials
 
    Home     Help   Search   Login   Register   
Pages: [1]
  ignore  |  Print  
  Color Rendering Probem  (Read 2359 times)
0 Members and 1 Guest are viewing this topic.
Offline TomUPB

Junior Newbie





« Posted 2012-04-21 20:22:49 »

Hi, I am trying the NeHe lessons and get to No 5. But here an error occurs: The triangle is shown in blue (last color set), the quad is shown correctly:

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  
101  
102  
103  
104  
105  
106  
107  
108  
109  
110  
111  
112  
113  
114  
115  
116  
117  
package testJOGL; 

import javax.media.opengl.GL2;
import javax.media.opengl.GLAutoDrawable;
import javax.media.opengl.GLEventListener;
import javax.media.opengl.glu.GLU;
 
class Renderer implements GLEventListener
{
    private GLU glu = new GLU();
 
    public void display(GLAutoDrawable gLDrawable)
    {
        final GL2 gl = gLDrawable.getGL().getGL2();
        gl.glClear(GL2.GL_COLOR_BUFFER_BIT | GL2.GL_DEPTH_BUFFER_BIT);
        gl.glLoadIdentity();
        gl.glTranslatef(-1.5f, 0.0f, -6.0f);
        gl.glBegin(GL2.GL_TRIANGLES);          // Drawing Using Triangles        
          gl.glColor3f(1.0f, 0.0f, 0.0f);   // Set the current drawing color to red
          gl.glVertex3f( 0.0f, 1.0f, 0.0f);   // Top          
          gl.glColor3f(0.0f, 1.0f, 0.0f);   // Set the current drawing color to green
          gl.glVertex3f(-1.0f,-1.0f, 0.0f);   // Bottom Left          
          gl.glColor3f(0.0f, 0.0f, 1.0f);   // Set the current drawing color to blue
          gl.glVertex3f( 1.0f,-1.0f, 0.0f);   // Bottom Right          
        gl.glEnd();            // Finished Drawing The Triangle
        gl.glTranslatef(3.0f, 0.0f, 0.0f);
        gl.glBegin(GL2.GL_QUADS);              // Draw A Quad
          gl.glColor3f(0.5f, 0.5f, 1.0f);   // Set the current drawing color to light blue
          gl.glVertex3f(-1.0f, 1.0f, 0.0f);   // Top Left
          gl.glVertex3f( 1.0f, 1.0f, 0.0f);   // Top Right
          gl.glVertex3f( 1.0f,-1.0f, 0.0f);   // Bottom Right
          gl.glVertex3f(-1.0f,-1.0f, 0.0f);   // Bottom Left
        gl.glEnd();            // Done Drawing The Quad
        gl.glFlush();
    }
 
 
    public void displayChanged(GLAutoDrawable gLDrawable, boolean modeChanged, boolean deviceChanged)
    {
       System.out.println("displayChanged called");
    }
 
    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.glShadeModel(GL2.GL_FLAT);
        gl.glClearDepth(1.0f);
        gl.glEnable(GL2.GL_DEPTH_TEST);
        gl.glDepthFunc(GL2.GL_LEQUAL);
        gl.glHint(GL2.GL_PERSPECTIVE_CORRECTION_HINT, GL2.GL_NICEST);  
    }
 
    public void reshape(GLAutoDrawable gLDrawable, int x, int y, int width, int height)
    {
       System.out.println("reshape() called: x = "+x+", y = "+y+", width = "+width+", height = "+height);
        final GL2 gl = gLDrawable.getGL().getGL2();
 
        if (height <= 0) // avoid a divide by zero error!
        {
            height = 1;
        }
 
        final float h = (float) width / (float) height;
 
        gl.glViewport(0, 0, width, height);
        gl.glMatrixMode(GL2.GL_PROJECTION);
        gl.glLoadIdentity();
        glu.gluPerspective(45.0f, h, 1.0, 20.0);
        gl.glMatrixMode(GL2.GL_MODELVIEW);
        gl.glLoadIdentity();
    }
 
 
   public void dispose(GLAutoDrawable arg0)
   {
      System.out.println("dispose() called");
   }
}
package testJOGL;

import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
 
import javax.media.opengl.GLCapabilities;
import javax.media.opengl.GLProfile;
import javax.media.opengl.awt.GLCanvas;
import javax.swing.JFrame;
 
public class JOGL_Test1
{
    public static void main(String[] args)
    {
       // setup OpenGL Version 2
       GLProfile profile = GLProfile.get(GLProfile.GL2);
       GLCapabilities capabilities = new GLCapabilities(profile);
 
       // The canvas is the widget that's drawn in the JFrame
       GLCanvas glcanvas = new GLCanvas(capabilities);
       glcanvas.addGLEventListener(new Renderer());
       glcanvas.setSize( 640, 480 );
 
        JFrame frame = new JFrame( "Hello World" );
        frame.getContentPane().add( glcanvas);
 
        // shutdown the program on windows close event
        frame.addWindowListener(new WindowAdapter() {
            public void windowClosing(WindowEvent ev) {
                System.exit(0);
            }
        });
 
        frame.setSize( frame.getContentPane().getPreferredSize() );
        frame.setVisible( true );
    }
}


The code is taken from a tutorial from http://schabby.de and other sources as I've tried to fix the problem myself.

Maybe someone could help me? Thx!
Offline ra4king

JGO Kernel


Medals: 356
Projects: 3
Exp: 5 years


I'm the King!


« Reply #1 - Posted 2012-04-21 20:46:41 »

JOGL 1.1 is old and abandoned. Try updating to the latest JOGL 2.

Offline TomUPB

Junior Newbie





« Reply #2 - Posted 2012-04-22 07:52:50 »

I have installed JOGL 2 and imported
1  
import javax.media.opengl.GL2;

Thought that would be enough to make sure it's JOGL 2.
Games published by our own members! Check 'em out!
Legends of Yore - The Casual Retro Roguelike
Offline gouessej
« Reply #3 - Posted 2012-04-22 10:31:05 »

Hi

This is not caused by a bug in JOGL 2.0 but maybe something is wrong in your driver. I'm quite surprised. Which version of JOGL 2 do you use? Which graphics cards? Which driver?

Offline TomUPB

Junior Newbie





« Reply #4 - Posted 2012-04-23 19:25:25 »

I have added JOGL-2.0b633 and GLUEGEN-2.0b480 to my project. After all there cannot be a major problem with my system: both LWJGL and another tutorial on JOGL2.0 work absolutely fine.

I have discovered just one real difference in the code working properly and the code posted above:
1  
GLProfile glp = GLProfile.getDefault();

instead of
1  
GLProfile profile = GLProfile.get(GLProfile.GL2);


Well, my assignment is to wirte a method receiving a drawable and pushing some GL2-commands to it. As this works now, I am fine.

Thanks for your offered help, guys!  Grin
Offline gouessej
« Reply #5 - Posted 2012-04-23 19:54:24 »

Of course, GLProfile.getDefault() returns the default profile which can be different of the profile returned by GLProfile.get(GLProfile.GL2) but I'm still surprised by the result. If the default profile is the forward compatible profile, the whole immediate mode shouldn't work.

Keep in mind that you should never store GL instances, look at JOGL user guide for more information. Good luck.

Pages: [1]
  ignore  |  Print  
 
 
You cannot reply to this message, because it is very, very old.

 

Add your game by posting it in the WIP section,
or publish it in Showcase.

The first screenshot will be displayed as a thumbnail.

rwatson462 (30 views)
2014-12-15 09:26:44

Mr.CodeIt (22 views)
2014-12-14 19:50:38

BurntPizza (43 views)
2014-12-09 22:41:13

BurntPizza (77 views)
2014-12-08 04:46:31

JscottyBieshaar (38 views)
2014-12-05 12:39:02

SHC (52 views)
2014-12-03 16:27:13

CopyableCougar4 (50 views)
2014-11-29 21:32:03

toopeicgaming1999 (116 views)
2014-11-26 15:22:04

toopeicgaming1999 (106 views)
2014-11-26 15:20:36

toopeicgaming1999 (32 views)
2014-11-26 15:20:08
Resources for WIP games
by kpars
2014-12-18 10:26:14

Understanding relations between setOrigin, setScale and setPosition in libGdx
by mbabuskov
2014-10-09 22:35:00

Definite guide to supporting multiple device resolutions on Android (2014)
by mbabuskov
2014-10-02 22:36:02

List of Learning Resources
by Longor1996
2014-08-16 10:40:00

List of Learning Resources
by SilverTiger
2014-08-05 19:33:27

Resources for WIP games
by CogWheelz
2014-08-01 16:20:17

Resources for WIP games
by CogWheelz
2014-08-01 16:19:50

List of Learning Resources
by SilverTiger
2014-07-31 16:29:50
java-gaming.org is not responsible for the content posted by its members, including references to external websites, and other references that may or may not have a relation with our primarily gaming and game production oriented community. inquiries and complaints can be sent via email to the info‑account of the company managing the website of java‑gaming.org
Powered by MySQL Powered by PHP Powered by SMF 1.1.18 | SMF © 2013, Simple Machines | Managed by Enhanced Four Valid XHTML 1.0! Valid CSS!