d3d设置材质与灯光
2010-06-17 12:32
260 查看
//-----------------------------------------------------------------------------
// Desc: 设置材质和灯光
//-----------------------------------------------------------------------------
VOID SetLight()
{
//设置材质
D3DMATERIAL9 mtrl;
ZeroMemory( &mtrl, sizeof(D3DMATERIAL9) );
mtrl.Diffuse.r = mtrl.Ambient.r = 1.0f;
mtrl.Diffuse.g = mtrl.Ambient.g = 1.0f;
mtrl.Diffuse.b = mtrl.Ambient.b = 0.0f;
mtrl.Diffuse.a = mtrl.Ambient.a = 1.0f;
g_pd3dDevice->SetMaterial(&mtrl);
//设置灯光
D3DXVECTOR3 vecDir;
D3DLIGHT9 light;
ZeroMemory( &light, sizeof(D3DLIGHT9) );
light.Type = D3DLIGHT_DIRECTIONAL;
light.Diffuse.r = 1.0f;
light.Diffuse.g = 1.0f;
light.Diffuse.b = 1.0f;
vecDir = D3DXVECTOR3(cosf(timeGetTime()/350.0f),
1.0f,
sinf(timeGetTime()/350.0f) );
//vecDir = D3DXVECTOR3(1.0f, 1.0f, 0.0f);
D3DXVec3Normalize( (D3DXVECTOR3*)&light.Direction, &vecDir );
light.Range = 1000.0f;
g_pd3dDevice->SetLight( 0, &light );
g_pd3dDevice->LightEnable( 0, TRUE );
g_pd3dDevice->SetRenderState( D3DRS_LIGHTING, TRUE );
//设置环境光
g_pd3dDevice->SetRenderState( D3DRS_AMBIENT, 0x00505050);
}
通过设置旋转灯光的方向同样可以让人感觉物体在转动
材质的设置,使得我们看到物体的颜色,如果没有设置材质,而开启灯光,此时看到的物体是黑色,
因为默认情况下材质不反射任何光线。
改变g_pd3dDevice->SetRenderState( D3DRS_AMBIENT, 0xFf000000);的颜色
感受下环境光与方向光源的区别。
// Desc: 设置材质和灯光
//-----------------------------------------------------------------------------
VOID SetLight()
{
//设置材质
D3DMATERIAL9 mtrl;
ZeroMemory( &mtrl, sizeof(D3DMATERIAL9) );
mtrl.Diffuse.r = mtrl.Ambient.r = 1.0f;
mtrl.Diffuse.g = mtrl.Ambient.g = 1.0f;
mtrl.Diffuse.b = mtrl.Ambient.b = 0.0f;
mtrl.Diffuse.a = mtrl.Ambient.a = 1.0f;
g_pd3dDevice->SetMaterial(&mtrl);
//设置灯光
D3DXVECTOR3 vecDir;
D3DLIGHT9 light;
ZeroMemory( &light, sizeof(D3DLIGHT9) );
light.Type = D3DLIGHT_DIRECTIONAL;
light.Diffuse.r = 1.0f;
light.Diffuse.g = 1.0f;
light.Diffuse.b = 1.0f;
vecDir = D3DXVECTOR3(cosf(timeGetTime()/350.0f),
1.0f,
sinf(timeGetTime()/350.0f) );
//vecDir = D3DXVECTOR3(1.0f, 1.0f, 0.0f);
D3DXVec3Normalize( (D3DXVECTOR3*)&light.Direction, &vecDir );
light.Range = 1000.0f;
g_pd3dDevice->SetLight( 0, &light );
g_pd3dDevice->LightEnable( 0, TRUE );
g_pd3dDevice->SetRenderState( D3DRS_LIGHTING, TRUE );
//设置环境光
g_pd3dDevice->SetRenderState( D3DRS_AMBIENT, 0x00505050);
}
通过设置旋转灯光的方向同样可以让人感觉物体在转动
材质的设置,使得我们看到物体的颜色,如果没有设置材质,而开启灯光,此时看到的物体是黑色,
因为默认情况下材质不反射任何光线。
改变g_pd3dDevice->SetRenderState( D3DRS_AMBIENT, 0xFf000000);的颜色
感受下环境光与方向光源的区别。
相关文章推荐
- D3D打开灯光后,设置了环境光颜色,但是发现模型仍然是黑色
- 建筑建模学习笔记4——室内放置物品/设置灯光/设置材质/渲染出图
- d3d设置灯光时需要注意的地方
- D3D 材质和灯光
- D3D中SetRenderState 设置渲染状态
- threejs学习笔记--添加材质 灯光和阴影
- Unity3D 材质球设置参数无效果的解决方法
- 弘智教育-效果图-渲染1-渲染设置,vr灯光
- DirectX 3D灯光和材质
- D3D学习总结基础篇(二)--从古墓丽影的画面设置了解基础概念
- DX灯光与材质
- UE4中灯光和天空大气的设置说明
- unity标准材质球动态改值和共用材质不同设置问题
- Unity3d基础教程7-灯光(灯光阴影参数设置及lightmapping制作)
- cesium编程入门(八)设置材质
- 室外建筑表现3Dmax和vray常用材质参数设置
- Unity在运行时(代码中)设置材质的渲染模式(RenderingMode)
- 游戏框架其九:灯光和材质( Lights and Material )
- 2.4 设置摄像机与灯光
- Unity灯光效果及设置