Note that there are some explanatory texts on larger screens.

plurals
  1. POOpengl proper lighting problem
    primarykey
    data
    text
    <p>I have written the following program to display a teapot on a table in a room with 2side walls and a floor.</p> <pre><code>#include &lt;stdio.h&gt; #include &lt;glut.h&gt; void wall1(float thickness) { glPushMatrix(); glTranslatef(100,100,0); glRotatef(90,1,0,0); glScalef(thickness,1,1); glutSolidCube(100); glPopMatrix(); } void wall2(float thickness) { glPushMatrix(); glTranslatef(150,100,-50); glScalef(1,1,thickness); glutSolidCube(100); glPopMatrix(); } void floor(float thickness) { glPushMatrix(); glTranslatef(150,50,0); glScalef(1,thickness,1); glutSolidCube(100); glPopMatrix(); } void leg(float thickness) { glPushMatrix(); glScalef(thickness,.5,thickness); glutSolidCube(100); glPopMatrix(); } void tableTop(float thickess) { glPushMatrix(); glTranslatef(150,100,0); glScalef(.5,thickess,.5); glutSolidCube(100); glPopMatrix(); } void table() { tableTop(.05); glPushMatrix(); glTranslatef(125,75,-25); leg(.05); glPopMatrix(); glPushMatrix(); glTranslatef(175,75,-25); leg(.05); glPopMatrix(); glPushMatrix(); glTranslatef(175,75,25); leg(.05); glPopMatrix(); glPushMatrix(); glTranslatef(125,75,25); leg(.05); glPopMatrix(); glPushMatrix(); glTranslatef(150,110,0); glScalef(.1,.1,.1); glutSolidTeapot(100); glPopMatrix(); } void display() { glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); float pos[] = {200,200,0}; float dif[] = {.3,.3,.3,3}; float spe[] = {1,1,1,1}; float amb[] = {1,1,1,0}; glLightfv(GL_LIGHT0,GL_POSITION,pos); glLightfv(GL_LIGHT0,GL_DIFFUSE,dif); glLightfv(GL_LIGHT0,GL_AMBIENT,amb); glLightfv(GL_LIGHT0,GL_SPECULAR,spe); glTranslatef(50,50,0); glRotatef(30,1,0,0); glRotatef(-30,0,1,0); wall1(.05); wall2(.05); floor(0.05); table(); glFlush(); } void reshape(int w,int h) { glViewport(0,0,w,h); glMatrixMode(GL_PROJECTION); glLoadIdentity(); glOrtho(0,400,0,400,-400,400); glMatrixMode(GL_MODELVIEW); } void main(int argc,char** argv) { glutInit(&amp;argc,argv); glutInitDisplayMode(GLUT_RGB | GLUT_SINGLE | GLUT_DEPTH); glutInitWindowPosition(100,100); glutInitWindowSize(400,400); glutCreateWindow("woot"); glClearColor(1,1,1,1); glEnable(GL_DEPTH_TEST); glEnable(GL_LIGHTING); glEnable(GL_LIGHT0); glShadeModel(GL_SMOOTH); glutReshapeFunc(reshape); glutDisplayFunc(display); glutMainLoop(); } </code></pre> <p>The problem with this is my lighting part is not working as expected. Its not illuminating <strong>evenly</strong> all my objects... What am i missing? This making even the teapot hard to sea. My lighting part is in display function.</p>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload