DirectX实现光照、纹理

关照的种类
环境光:经其他表面反射到达物体
漫射光:沿特定方向传播,到达某一表面后向各个方向均匀传播
镜面光:光线向同一方向反射(能模拟高亮点)
directx在通过如下函数设置光照:
光源的种类
点光源:有固定位置,并向各个方向发射
方向光:没有位置信息,所以光相互平行沿一特定方向传播
聚光灯:有位置信息,向手电筒一样发出锥形光,向特定方向传播

D3DXVECTOR3 dir(1.0f, -0.0f, 0.25f);
    D3DXCOLOR   color = d3d::WHITE;
        D3DLIGHT9 light;
    ::ZeroMemory(&light, sizeof(light));
    // 设置光照属性(方向光)
    light.Type      = D3DLIGHT_DIRECTIONAL;
    light.Ambient   = *color * 0.6f;
    light.Diffuse   = *color;
    light.Specular  = *color * 0.6f;
    light.Direction = *dir;
Device->SetLight(0, &light);
Device->LightEnable(0, true);
Device->SetRenderState(D3DRS_NORMALIZENORMALS, true);

现实世界中我们看到的物体颜色是由该物体反射的光的颜色决定的,如红色的物体吸收所有的非红色光,反射红光所以显示为红色,使用directx中函数SetMaterial可以设置物体材质。

顶点法线描述构成多边形的各个顶点的法线,通过该法线可以确定光线到达该表面的入射角。假设一个面由三个顶点 p0,p1,p2 构成,计算得到平面的两个向量 u⃗ 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值