请问什么是漫反射光,环境光,镜面光?

qq845284425 2009-08-03 02:26:15

请问什么是漫反射光,环境光,镜面光?

这三种光和反射面的向量有关有关吗(也就是说,光线和入射角,反射角有关)?
...全文
876 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
张赐 2009-08-03
  • 打赏
  • 举报
回复
楼主实在是不知道,看看物理书,大概也就知道了
xingzhe2001 2009-08-03
  • 打赏
  • 举报
回复
光掉了光照,就是用本来的颜色,这个例子中没有贴图,那就是用点的颜色,就是D3DFVF_DIFFUSE的颜色
qq845284425 2009-08-03
  • 打赏
  • 举报
回复

        
const DWORD ColorVertex::FVF = D3DFVF_XYZ | D3DFVF_DIFFUSE;

Device->SetRenderState(D3DRS_LIGHTING, false);

Device->BeginScene();

Device->SetFVF(ColorVertex::FVF);
Device->SetStreamSource(0, Triangle, 0, sizeof(ColorVertex));

// draw the triangle to the left with flat shading
D3DXMatrixTranslation(&WorldMatrix, -1.25f, 0.0f, 0.0f);
Device->SetTransform(D3DTS_WORLD, &WorldMatrix);

Device->SetRenderState(D3DRS_SHADEMODE, D3DSHADE_FLAT);
Device->DrawPrimitive(D3DPT_TRIANGLELIST, 0, 1);

// draw the triangle to the right with gouraud shading
D3DXMatrixTranslation(&WorldMatrix, 1.25f, 0.0f, 0.0f);
Device->SetTransform(D3DTS_WORLD, &WorldMatrix);

Device->SetRenderState(D3DRS_SHADEMODE, D3DSHADE_GOURAUD);
Device->DrawPrimitive(D3DPT_TRIANGLELIST, 0, 1);

Device->EndScene();


请教3楼,D3DFVF_DIFFUSE代表顶点的漫反射颜色,如果漫反射光diffuse与法线和光的夹角有关的

上面龙书(翁云兵)的例子中,关掉了光照的,那么该如何计算三角形的显示颜色哪?这里的顶点没有法线,而且光泽也关了
xingzhe2001 2009-08-03
  • 打赏
  • 举报
回复
他说得是对的,环境光ambient是一个均值。漫反射光diffuse是与法线和光的夹角有关的,但是镜面反射与法线,光入射线和视线都有关系。
qq845284425 2009-08-03
  • 打赏
  • 举报
回复

楼上可能打错了,呵呵,是不是这样的:

漫反射光就相当于一个亮度值,它是均等的,没有衰减,也不会引起任何光线传播的改变。它与法向量无关。

再请教,环境光和镜面光又有什么区别哪?
flyoxs 2009-08-03
  • 打赏
  • 举报
回复
漫反射光,环境光,镜面光仅仅是D3D为了模拟现实的光照效果,定义的几种光照模型。

环境光就相当于一个亮度值,它是均等的,没有衰减,也不会引起任何光线传播的改变。它与法向量无关。

环境光和镜面光与平面的法向量就有关了。你按现实生活中的光照模型去理解就行,它只不过是D3D的计算光线传播的一种数学模型。

8,305

社区成员

发帖
与我相关
我的任务
社区描述
游戏开发相关内容讨论专区
社区管理员
  • 游戏开发
  • 呆呆敲代码的小Y
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧