erhsh 的另一个家

erhsh

走的不快,总比不走强!

光照效果的学习:

理论知识:Opengl把光照系统分为三个部分=> 光源材质光照环境

光源的设置:

  glLightfv(param1, param2, param3);

  param1:  要设置哪个光源的属性; (GL_LIGHT0, GL_LIGHT1, GL_LIGHT2 ... , GL_LIGHT8 ...)

  param2:  设置光源的哪个属性; (GL_POSITION, GL_AMBIENT,  GL_DIFFUSE, GL_SPECULAR,

                   GL_SPOT_DIRECTION, GL_SPOT_EXPONENT, GL_SPOT_CUTOFF  //适合位置光源

                   GL_CONSTANT_ATTENUATION, GL_LINEAR_ATTENUATION, GL_QUADRATIC_ATTENUATION //适合位置光源

                  )

  param3:  设置光源属性的值; (light_postion, light_ambient, light_diffuse, light_specular  )

  说明:(Ⅱ,Ⅲ,Ⅳ 待绪)

    Ⅰ light_position:

      GLfloat light_position[] = {x, y, z, w};

      ① w==0时 方向光源 => 光源在无线远处;

      ② w!=0时  位置光源 => 光源位置(X/W, Y/W, Z/W);

    Ⅱ light_ambient:       

    Ⅲ light_diffuse:  

    Ⅳ light_specular:

  glEnable(GL_LIGHT0);

  glEnable(GL_LIGHTING);

  glEnable(GL_DEPTH_TEST);

材料的设置:

  glMaterialfv(param1, param2, param3);

  param1:  指定哪一面的属性; (GL_FRONT, GL_BACK);

  param2:  设置材质的那个属性; (GL_POSITION, GL_AMBIENT,  GL_DIFFUSE, GL_SPECULAR)

  param3:  设置材质的属性值; (...);

光照环境的设置:

  待续。

posted on 2011-02-15 20:55  erhsh  阅读(216)  评论(0编辑  收藏  举报