游戏开发论坛

 找回密码
 立即注册
搜索
查看: 2688|回复: 8

请教一个阴暗的效果

[复制链接]

8

主题

44

帖子

70

积分

注册会员

Rank: 2

积分
70
发表于 2005-3-31 11:34:00 | 显示全部楼层 |阅读模式
想用D3D做一个2D的游戏
我现在想实现一个阴天的效果 就是要让所有图片的亮度变低该该怎么做啊?

还有想模拟实现一个人的视野效果(2D) 用聚光灯来做好还是用纹理混合来做好呢?
对D3D还没熟悉 请各位指教,谢谢 :)

8

主题

44

帖子

70

积分

注册会员

Rank: 2

积分
70
 楼主| 发表于 2005-3-31 16:39:00 | 显示全部楼层

Re: 请教一个阴暗的效果

请大家帮帮忙

59

主题

1104

帖子

1199

积分

金牌会员

Rank: 6Rank: 6

积分
1199
发表于 2005-3-31 16:40:00 | 显示全部楼层

Re:请教一个阴暗的效果

建一个覆盖摄象机的rhw的板,设置上黑色的顶点色,打开alpha混合就能实现你的阴天的效果。视野效果用贴图来做比较划算,用灯太耗。

7

主题

54

帖子

54

积分

注册会员

Rank: 2

积分
54
发表于 2005-4-1 00:44:00 | 显示全部楼层

Re:请教一个阴暗的效果

当然是纹理混合好啦,用聚光灯你算起来多累啊,而且你的多变性数量不够的话,效果很难看的。

0

主题

237

帖子

237

积分

中级会员

Rank: 3Rank: 3

积分
237
发表于 2005-4-1 09:46:00 | 显示全部楼层

Re:请教一个阴暗的效果

tarkey的方法可?是最??蔚牧? 或者用ortho matrix亦可. 用?艄獾脑?, 你在?鼍疤?理上????????....

8

主题

44

帖子

70

积分

注册会员

Rank: 2

积分
70
 楼主| 发表于 2005-4-1 15:08:00 | 显示全部楼层

Re:请教一个阴暗的效果

谢谢大家
能不能麻烦详细说一下 阴天效果的实现啊?

3D不熟悉 麻烦大家说详细一点  最好给一些代码示例

8

主题

44

帖子

70

积分

注册会员

Rank: 2

积分
70
 楼主| 发表于 2005-4-5 15:36:00 | 显示全部楼层

Re:请教一个阴暗的效果

up

11

主题

114

帖子

118

积分

注册会员

Rank: 2

积分
118
QQ
发表于 2005-4-6 13:27:00 | 显示全部楼层

Re:请教一个阴暗的效果

//声明
struct SHADOWVERTEX
{
    D3DXVECTOR4 p;
    D3DCOLOR    color;
       
    static const DWORD FVF;
};
const DWORD SHADOWVERTEX::FVF = D3DFVF_XYZRHW | D3DFVF_DIFFUSE;

LPDIRECT3DVERTEXBUFFER9 m_pBigSquareVB;

// 创建
if( FAILED( m_pd3dDevice->CreateVertexBuffer( 4*sizeof(SHADOWVERTEX),
                D3DUSAGE_WRITEONLY, SHADOWVERTEX::FVF,
                D3DPOOL_MANAGED, &m_pBigSquareVB, NULL ) ) )
        return E_FAIL;

SHADOWVERTEX* v;
FLOAT sx = (FLOAT)m_d3dsdBackBuffer.Width;
FLOAT sy = (FLOAT)m_d3dsdBackBuffer.Height;
m_pBigSquareVB->Lock( 0, 0, (void**)&v, 0 );
v[0].p = D3DXVECTOR4(  0, sy, 0.0f, 1.0f );
v[1].p = D3DXVECTOR4(  0,  0, 0.0f, 1.0f );
v[2].p = D3DXVECTOR4( sx, sy, 0.0f, 1.0f );
v[3].p = D3DXVECTOR4( sx,  0, 0.0f, 1.0f );
v[0].color = 0x7f000000;
v[1].color = 0x7f000000;
v[2].color = 0x7f000000;
v[3].color = 0x7f000000;
m_pBigSquareVB->Unlock();

// 渲染
m_pd3dDevice->SetRenderState( D3DRS_ALPHABLENDENABLE, TRUE );
m_pd3dDevice->SetRenderState( D3DRS_SRCBLEND,  D3DBLEND_SRCALPHA );
m_pd3dDevice->SetRenderState( D3DRS_DESTBLEND, D3DBLEND_INVSRCALPHA );

// Draw a big, gray square
m_pd3dDevice->SetFVF( SHADOWVERTEX::FVF );
m_pd3dDevice->SetStreamSource( 0, m_pBigSquareVB, 0, sizeof(SHADOWVERTEX) );
m_pd3dDevice->DrawPrimitive( D3DPT_TRIANGLESTRIP, 0, 2 );
       
// Restore render states
m_pd3dDevice->SetRenderState( D3DRS_ALPHABLENDENABLE, FALSE );

8

主题

44

帖子

70

积分

注册会员

Rank: 2

积分
70
 楼主| 发表于 2005-4-13 16:32:00 | 显示全部楼层

Re:请教一个阴暗的效果

十分感谢大家
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-12-25 06:26

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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