OpenGL的光照是基本操作之一,可是我每次使用效果都不理想。glLightfv()
glMaterialfv()
glEnable(GL_LIGHT0);
glEnable(GL_LIGHTING);这些步骤都做了整个物体模模糊糊只有一种明暗等级,无法产生立体的感觉。
我不停地修改光源和材质的属性也无济于事。
请问各位大侠这是怎么回事啊?

解决方案 »

  1.   

    比如这么写
    glPushAttrib(GL_LIGHTING_BIT|GL_VIEWPORT_BIT);
    glViewport(0, 0, texdim, texdim);
    glEnable(GL_LIGHTING);
    glLightfv(GL_LIGHT0, GL_DIFFUSE, zero);
    glLightfv(GL_LIGHT0, GL_POSITION, lightpos); /* light direction */
    glMateriali(GL_FRONT, GL_SHININESS, shinyness); /* cosine power */
    glMaterialfv(GL_FRONT, GL_AMBIENT, zero); 
    glMaterialfv(GL_FRONT, GL_DIFFUSE, zero); 
    glMaterialfv(GL_FRONT, GL_SPECULAR, color);我最近也在研究OpenGL程序,也是初学者,大家以后多交流交流。
    [email protected]
      

  2.   

    注意光的参数glLightfv(GL_LIGHT0, GL_AMBIENT, m_lightAmb);
    glLightfv(GL_LIGHT0, GL_DIFFUSE, m_lightDif);
    glLightfv(GL_LIGHT0, GL_SPECULAR, m_lightSpe);
    光的位置
    glLightfv(GL_LIGHT1, GL_POSITION, m_lightPos);