Børre Stenseth
OpenGL>Light and materials>Some Materials

Some materials

What
Introducing a class for selection of a set of materials

There is always a problem determining which materials to use. Some sources are OpenGL materials [1] and Material Type Settings for OpenGL [2]

You may also experiment with materials in the editor in module Material Editor

messing
//Brass
float[] mat_ambient ={ 0.329412f, 0.223529f, 0.027451f,1.0f };
float[] mat_diffuse ={ 0.780392f, 0.568627f, 0.113725f, 1.0f };
float[] mat_specular ={ 0.992157f, 0.941176f, 0.807843f, 1.0f };
float shine = 27.8974f;
  	  
bronse
// Bronze
float[] mat_ambient ={ 0.2125f, 0.1275f, 0.054f, 1.0f };
float[] mat_diffuse ={ 0.714f, 0.4284f, 0.18144f, 1.0f };
float[] mat_specular ={ 0.393548f, 0.271906f, 0.166721f, 1.0f };
float shine = 25.6f;
  	  
polert_bronse
//Polished bronze
float[] mat_ambient ={0.25f, 0.148f, 0.06475f, 1.0f  };
float[] mat_diffuse ={0.4f, 0.2368f, 0.1036f, 1.0f };
float[] mat_specular ={0.774597f, 0.458561f, 0.200621f, 1.0f };
float shine =76.8f ;
  	  
krom
//Chrome
float[] mat_ambient ={0.25f, 0.25f, 0.25f, 1.0f  };
float[] mat_diffuse ={0.4f, 0.4f, 0.4f, 1.0f };
float[] mat_specular ={0.774597f, 0.774597f, 0.774597f, 1.0f };
float shine = 76.8f;
  	  
kobber
//Copper
float[] mat_ambient ={ 0.19125f, 0.0735f, 0.0225f, 1.0f };
float[] mat_diffuse ={0.7038f, 0.27048f, 0.0828f, 1.0f };
float[] mat_specular ={0.256777f, 0.137622f, 0.086014f, 1.0f };
float shine = 12.8f;
  	  
polert_kobber
//Polished copper
float[] mat_ambient ={ 0.2295f, 0.08825f, 0.0275f, 1.0f };
float[] mat_diffuse ={0.5508f, 0.2118f, 0.066f, 1.0f };
float[] mat_specular ={0.580594f, 0.223257f, 0.0695701f, 1.0f };
float shine =51.2f ;
  	  
gull
//Gold
float[] mat_ambient ={ 0.24725f, 0.1995f, 0.0745f, 1.0f };
float[] mat_diffuse ={0.75164f, 0.60648f, 0.22648f, 1.0f };
float[] mat_specular ={0.628281f, 0.555802f, 0.366065f, 1.0f };
float shine =51.2f ;
  	  
polert_gull
//Polished gold
float[] mat_ambient ={ 0.24725f, 0.2245f, 0.0645f, 1.0f };
float[] mat_diffuse ={0.34615f, 0.3143f, 0.0903f, 1.0f };
float[] mat_specular ={ 0.797357f, 0.723991f, 0.208006f, 1.0f};
float shine =83.2f ;
  	  
tinn
//Tin
float[] mat_ambient ={ 0.105882f, 0.058824f, 0.113725f, 1.0f };
float[] mat_diffuse ={0.427451f, 0.470588f, 0.541176f, 1.0f };
float[] mat_specular ={0.333333f, 0.333333f, 0.521569f, 1.0f };
float shine = 9.84615f;
  	  
solv
//Silver
float[] mat_ambient ={ 0.19225f, 0.19225f, 0.19225f, 1.0f };
float[] mat_diffuse ={ 0.50754f, 0.50754f, 0.50754f, 1.0f};
float[] mat_specular ={0.508273f, 0.508273f, 0.508273f, 1.0f };
float shine = 51.2f;
  	  
polert_solv
//Polished silver
float[] mat_ambient ={ 0.23125f, 0.23125f, 0.23125f, 1.0f };
float[] mat_diffuse ={0.2775f, 0.2775f, 0.2775f, 1.0f };
float[] mat_specular ={0.773911f, 0.773911f, 0.773911f, 1.0f };
float shine =89.6f ;
  	  
smaragd
//Emerald
float[] mat_ambient ={ 0.0215f, 0.1745f, 0.0215f, 0.55f };
float[] mat_diffuse ={0.07568f, 0.61424f, 0.07568f, 0.55f };
float[] mat_specular ={0.633f, 0.727811f, 0.633f, 0.55f };
float shine = 76.8f;
  	  
jade
//Jade
float[] mat_ambient ={ 0.135f, 0.2225f, 0.1575f, 0.95f };
float[] mat_diffuse ={0.54f, 0.89f, 0.63f, 0.95f };
float[] mat_specular ={0.316228f, 0.316228f, 0.316228f, 0.95f };
float shine = 12.8f;
  	  
obsidian
//Obsidian
float[] mat_ambient ={ 0.05375f, 0.05f, 0.06625f, 0.82f };
float[] mat_diffuse ={ 0.18275f, 0.17f, 0.22525f, 0.82f};
float[] mat_specular ={0.332741f, 0.328634f, 0.346435f, 0.82f };
float shine =38.4f ;
  	  
perle
//Perl
float[] mat_ambient ={ 0.25f, 0.20725f, 0.20725f, 0.922f };
float[] mat_diffuse ={1.0f, 0.829f, 0.829f, 0.922f };
float[] mat_specular ={0.296648f, 0.296648f, 0.296648f, 0.922f };
float shine = 11.264f;
  	  
rubin
//Ruby
float[] mat_ambient ={ 0.1745f, 0.01175f, 0.01175f, 0.55f };
float[] mat_diffuse ={0.61424f, 0.04136f, 0.04136f, 0.55f };
float[] mat_specular ={0.727811f, 0.626959f, 0.626959f, 0.55f };
float shine =76.8f ;
  	  
turkis
//Turquoise
float[] mat_ambient ={ 0.1f, 0.18725f, 0.1745f, 0.8f };
float[] mat_diffuse ={0.396f, 0.74151f, 0.69102f, 0.8f };
float[] mat_specular ={0.297254f, 0.30829f, 0.306678f, 0.8f };
float shine = 12.8f;
  	  
svart_plastikk
//Black plastic
float[] mat_ambient ={0.0f, 0.0f, 0.0f, 1.0 f };
float[] mat_diffuse ={0.01f, 0.01f, 0.01f, 1.0f };
float[] mat_specular ={0.50f, 0.50f, 0.50f, 1.0f };
float shine =32.0f ;
  	  
cyan_plastikk
//Cyan plastic
float[] mat_ambient ={ 0.0f,0.1f,0.06f ,1.0f};
float[] mat_diffuse ={ 0.0f,0.50980392f,0.50980392f,1.0f};
float[] mat_specular ={0.50196078f,0.50196078f,0.50196078f,1.0f };
float shine =32.0f ;
  	  
gronn_plastikk
//Green plastic
float[] mat_ambient ={ 0.0f,0.0f,0.0f,1.0f };
float[] mat_diffuse ={ 0.1f,0.35f,0.1f,1.0f};
float[] mat_specular ={0.45f,0.55f,0.45f,1.0f };
float shine = 32.0f ;
  	  
rod_plastikk
//Red plastic
float[] mat_ambient ={ 0.0f,0.0f,0.0f,1.0f };
float[] mat_diffuse ={ 0.5f,0.0f,0.0f,1.0f};
float[] mat_specular ={0.7f,0.6f,0.6f,1.0f };
float shine =32.0f ;
  	  
hvit_plastikk
//White plastic
float[] mat_ambient ={ 0.0f,0.0f,0.0f,1.0f };
float[] mat_diffuse ={ 0.55f,0.55f,0.55f,1.0f};
float[] mat_specular ={0.70f,0.70f,0.70f,1.0f };
float shine = 32.0f ;
  	  
gul_plastikk
//Yellow plastic
float[] mat_ambient ={0.0f,0.0f,0.0f,1.0f };
float[] mat_diffuse ={0.5f,0.5f,0.0f,1.0f };
float[] mat_specular ={0.60f,0.60f,0.50f,1.0f };
float shine = 32.0f ;
  	  
svart_gummi
//Black rubber
float[] mat_ambient ={ 0.02f, 0.02f, 0.02f, 1.0f };
float[] mat_diffuse ={ 0.01f, 0.01f, 0.01f, 1.0f};
float[] mat_specular ={0.4f, 0.4f, 0.4f, 1.0f };
float shine = 10.0f;
  	  
cyan_gummi
//Cyan rubber
float[] mat_ambient ={ 0.0f,0.05f,0.05f,1.0f };
float[] mat_diffuse ={0.4f,0.5f,0.5f,1.0f };
float[] mat_specular ={0.04f,0.7f,0.7f,1.0f };
float shine = 10.0f;
  	  
gronn_gummi
//Green rubber
float[] mat_ambient ={ 0.0f,0.05f,0.0f,1.0f };
float[] mat_diffuse ={ 0.4f,0.5f,0.4f,1.0f};
float[] mat_specular ={0.04f,0.7f,0.04f,1.0f };
float shine =  10.0f;
  	  
rod_gummi
//Red rubber
float[] mat_ambient ={ 0.05f,0.0f,0.0f,1.0f };
float[] mat_diffuse ={ 0.5f,0.4f,0.4f,1.0f};
float[] mat_specular ={ 0.7f,0.04f,0.04f,1.0f};
float shine = 10.0f;
  	  
hvit_gummi
//White rubber
float[] mat_ambient ={ 0.05f,0.05f,0.05f,1.0f };
float[] mat_diffuse ={ 0.5f,0.5f,0.5f,1.0f};
float[] mat_specular ={ 0.7f,0.7f,0.7f,1.0f};
float shine = 10.0f;
  	  
gul_gummi
//Yellow rubber
float[] mat_ambient ={ 0.05f,0.05f,0.0f,1.0f };
float[] mat_diffuse ={0.5f,0.5f,0.4f,1.0f};
float[] mat_specular ={0.7f,0.7f,0.04f,1.0f };
float shine = 10.0f;
  	  

The light on teapots [3] are set as:

// set up light
float[] ambient = { 0.2f, 0.2f, 0.2f, 1.0f };
float[] diffuse = { 1.0f, 1.0f, 1.0f, 1.0f };
float[] specular ={ 1.0f, 1.0f, 1.0f, 1.0f };
float[] position = { 200.0f, 300.0f, 100.0f, 0.0f };

Gl.glLightfv(Gl.GL_LIGHT0, Gl.GL_AMBIENT, ambient);
Gl.glLightfv(Gl.GL_LIGHT0, Gl.GL_DIFFUSE, diffuse);
Gl.glLightfv(Gl.GL_LIGHT0, Gl.GL_SPECULAR, specular);
Gl.glLightfv(Gl.GL_LIGHT0, Gl.GL_POSITION, position);
Gl.glEnable(Gl.GL_LIGHT0);
Gl.glEnable(Gl.GL_LIGHTING);

A class

A class is available for setting any of the materials above, and a few more.

_stdMaterials.java
References
  • A program demonstrating materials: https://svn.hiof.no/svn/psource/JOGL/mat
Maintainance

B.Stenseth, revised April 2009

(Welcome) OpenGL>Light and materials>Some Materials (Material Editor)