现实中,一个物体在阳光照射下,有些面会反射光线强些,有些反射光线弱些..要模拟这样的效果,需要设置物体的材质??还是光照??说说其中的原理,或给个介绍的比较详细的链接...谢谢

解决方案 »

  1.   

    Would you mind introducing more details??
      

  2.   

    是物体的性质, 可以看看phong lighting当例子作为参考, opengl red book 里有phong lighting的说明,是免费的官方网上有下载http://www.opengl.org/documentation/red_book/
      

  3.   

    对静态物体,如房屋可事先渲染好融入Terrain LightMap。
    对动态物体,可用Projection Shadow,简单说就是从光源方向把物体影子渲染到一张纹理,然后通过使用纹理坐标生成(TexCoordGen)和修改相应Texture Coordinates Matrix,把这张图贴到地面渲染。
      

  4.   

    好象材质和光照都会有影响,这个应该是属于GPU编程的范围了,固定管道恐怕没那么强大吧
      

  5.   

    一般的光照模型是 LightFinal=环境光+普通光照+高光
    普通光照一般就是 Light dot Normal
    高光一般是 Eye dot Half
    你说的特别亮的地方应该是高光
      

  6.   

    我把光源的属性设置如下:
    DiffuseColor = (255,255,255) //漫射光
    AmbientColor = (255,255,255) //环境光
    SpecularColor = (255,255,255) //镜面光
    再设置材质的属性如下:
    mtrl.Ambient = (0,0,0);
    mtrl.Diffuse  = (255,255,255);
    mtrl.Specular = (255,255,255);
    mtrl.Emissive = (0,0,0);我再移动光源,物体的向光部分会被照亮,而其他背光部分就是黑的..
    我现在就是想让效果更逼真点,被照亮的部分会因为物体表面的不同,而有些地方显示的更亮,有些地方相对更暗,这样该怎么做??
      

  7.   

    D3DMATERIAL9.Specular = D3DCOLORVALUE(1.0,1.0,1.0,1.0);
    对所有的光线的镜面反射参数为满值。
    然后设置光源的颜色是(1.0,1.0,1.0,1.0);
    在某一特定角度,就会出现很明亮的绚丽效果。
    主要是物体镜面反射和漫反射的物理特性。
      

  8.   

    你要做的是调整环境光也就是AmbientColor 和mtrl.Ambient 才可以,使用这样的环境光只是简单的光照模型,光照不到的地方显示环境光和环境材质的作用结果,如果想要更真实地,就需要更换一套光照模型了
      

  9.   

    我就是这样设置的啊,,材质的Specular属性设置成(255,255,255),然后光源颜色设置成(255,255,255)..
    这样是整个物体的属性,我现在是想让这个物体上某部分的亮度比其他部分高.
      

  10.   

    参考阴影映射图(ShadowMap)和阴影体(ShadowVolume)算法。
    把阴影换成光柱。
    然后单独渲染阴影部分。
      

  11.   

    http://www.cppblog.com/lai3d/archive/2008/03/28/45572.html
    多重纹理中的黑暗纹理可以实现
      

  12.   

    http://blog.csdn.net/kesalin/archive/2008/03/23/2209963.aspx
    也可以看下这里,建议还是买本书来看看吧
      

  13.   

    我也很想系统的学习下3D程序设计,,3D程序设计中有什么经典的著作吗??就像我说,如果我想学VC,大家肯定会推荐我看《windows程序设计》..
      

  14.   

    DirectX 9 3D游戏设计入门,封面上有条龙,大家称为红龙书
    精通directx 3D图形与动画程序设计,这本里有一些用hlsl的例子