private void init( GL gl ) { float[] cc = JOGLUtils.convertColorFloats( request.getBackgroundColor() ); gl.glClearColor( cc[0], cc[1], cc[2], 0.0f ); SunInfo pos = request.getSceneParameters().getSunPosition(); float[] light_position = pos.getEucledianPosition( sceneLatitude ); Vectors3f.scale( -1, light_position ); float[] ambientAndDiffuse = pos.calculateSunlight( sceneLatitude ); // float intens = pos.calcSunlightIntensity( ambientAndDiffuse, 0.5f ); gl.glLightfv( GL.GL_LIGHT0, GL.GL_POSITION, new float[] { light_position[0], light_position[1], light_position[2], 0 }, 0 ); gl.glLightfv( GL.GL_LIGHT0, GL.GL_AMBIENT, new float[] { ambientAndDiffuse[0], ambientAndDiffuse[1], ambientAndDiffuse[2], 1 }, 0 ); gl.glMaterialfv( GL.GL_FRONT_AND_BACK, GL.GL_AMBIENT, new float[] { ambientAndDiffuse[0], ambientAndDiffuse[1], ambientAndDiffuse[2], 1 }, 0 ); gl.glLightfv( GL.GL_LIGHT0, GL.GL_DIFFUSE, new float[] { ambientAndDiffuse[0], ambientAndDiffuse[1], ambientAndDiffuse[2], 1 }, 0 ); }
@Override public void init( GLAutoDrawable d ) { d.setGL( new DebugGL( d.getGL() ) ); GL gl = d.getGL(); gl.glClearColor( 0.7f, 0.7f, 1f, 0 ); float[] lightAmbient = { 0.4f, 0.4f, 0.4f, 1.0f }; float[] lightDiffuse = { 0.8f, 0.8f, 0.8f, 1.0f }; float[] lightSpecular = { 1.0f, 1.0f, 1.0f, 1.0f }; float[] lightPosition = { 0.0f, 0.0f, 10.0f, 1.0f }; gl.glLightfv( GL.GL_LIGHT0, GL.GL_AMBIENT, lightAmbient, 0 ); gl.glLightfv( GL.GL_LIGHT0, GL.GL_DIFFUSE, lightDiffuse, 0 ); gl.glLightfv( GL.GL_LIGHT0, GL.GL_SPECULAR, lightSpecular, 0 ); gl.glLightfv( GL.GL_LIGHT0, GL.GL_POSITION, lightPosition, 0 ); gl.glEnable( GL.GL_DEPTH_TEST ); gl.glEnable( GL.GL_LIGHT0 ); gl.glEnable( GL.GL_LIGHTING ); gl.glEnable( GL.GL_BLEND ); // enable color and texture blending gl.glBlendFunc( GL.GL_SRC_ALPHA, GL.GL_ONE_MINUS_SRC_ALPHA ); gl.glMatrixMode( GL.GL_MODELVIEW ); gl.glLoadIdentity(); gl.glEnableClientState( GL.GL_NORMAL_ARRAY ); gl.glEnableClientState( GL.GL_VERTEX_ARRAY ); }
gl.glLightfv( GL.GL_LIGHT0, GL.GL_POSITION, new float[] { light_position[0], light_position[1], light_position[2], 1 }, 0 ); gl.glLightfv( GL.GL_LIGHT0, GL.GL_AMBIENT, new float[] { ambientAndDiffuse[0], ambientAndDiffuse[1], ambientAndDiffuse[2], 1 }, 0 ); ambientAndDiffuse[2], 1 }, 0 ); gl.glLightfv( GL.GL_LIGHT0, GL.GL_DIFFUSE, new float[] { ambientAndDiffuse[0], ambientAndDiffuse[1], ambientAndDiffuse[2], 1 }, 0 ); gl.glLightfv( GL.GL_LIGHT0, GL.GL_SPECULAR, new float[] { ambientAndDiffuse[0] - 0.2f, ambientAndDiffuse[1] - 0.2f, ambientAndDiffuse[2] - 0.2f, 0 }, 0 );