游戏开发论坛

 找回密码
 立即注册
搜索
查看: 2105|回复: 4

怎么样把方向光改成点光源~?

[复制链接]

4

主题

7

帖子

7

积分

新手上路

Rank: 1

积分
7
发表于 2008-5-15 22:02:00 | 显示全部楼层 |阅读模式
我想用下面这段代码改``
D3DMATERIAL9 mtrl;
        mtrl.Ambient = d3d::WHITE;
        mtrl.Diffuse = d3d::WHITE;
        mtrl.Specular = d3d::WHITE;
        mtrl.Emissive = d3d::BLACK;
        mtrl.Power = 5.0f;

        Device->SetMaterial(&mtrl);

        D3DLIGHT9 dir;
        ::ZeroMemory(&dir, sizeof(dir));
        dir.Type = D3DLIGHT_DIRECTIONAL;
        dir.Diffuse = d3d::WHITE;
        dir.Specular = d3d::WHITE * 0.3f;
        dir.Ambient = d3d::WHITE * 0.6f;
        dir.Direction = D3DXVECTOR3(1.0f, 0.0f, 0.0f);

        Device->SetLight(0, &dir);
        Device->LightEnable(0, true);

        Device->SetRenderState(D3DRS_NORMALIZENORMALS, true);
        Device->SetRenderState(D3DRS_SPECULARENABLE,true);



要把dir.Type = D3DLIGHT_DIRECTIONAL;这个改成点光源,那么其他参数要怎么设置呢?

4

主题

7

帖子

7

积分

新手上路

Rank: 1

积分
7
 楼主| 发表于 2008-5-15 22:32:00 | 显示全部楼层

Re:怎么样把方向光改成点光源~?

没人知道吗?

201

主题

1437

帖子

1963

积分

金牌会员

Rank: 6Rank: 6

积分
1963
QQ
发表于 2008-5-18 00:03:00 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽

22

主题

63

帖子

63

积分

注册会员

Rank: 2

积分
63
发表于 2008-5-18 09:01:00 | 显示全部楼层

Re:怎么样把方向光改成点光源~?

D3DLIGHT9 InitPointLight(D3DXVECTOR3* position, D3DXCOLOR* color)

{

    D3DLIGHT9 light;

    ::ZeroMemory(&light, sizeof(light));



    light.Type      = D3DLIGHT_POINT;

    light.Ambient   = *color * 0.6f;

    light.Diffuse   = *color;

    light.Specular  = *color * 0.6f;

    light.Position  = *position;

    light.Range        = 1000.0f;

    light.Falloff      = 1.0f;

    light.Attenuation0 = 1.0f;

    light.Attenuation1 = 0.0f;

    light.Attenuation2 = 0.0f;



    return light;

}

0

主题

16

帖子

20

积分

注册会员

Rank: 2

积分
20
发表于 2008-5-19 09:52:00 | 显示全部楼层

Re: 怎么样把方向光改成点光源~?

chmimi: 怎么样把方向光改成点光源~?

我想用下面这段代码改``
D3DMATERIAL9 mtrl;
        mtrl.Ambient = d3d::WHITE;
        mtrl.Diffuse = d3d::WHITE;...


我想对于点光源最主要的特点是有确定位置,但是无确定方向,并且有衰减,而方向光却相反,所以从方向光改成点光源,首先把方向信息删除,并且设置位置和衰减。楼上sudongao 已经给出了正解。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2026-1-22 12:08

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表