社区
图形处理/算法
帖子详情
D3D 中的图片的淡入淡出效果?
cytlyy
2009-03-09 11:58:20
首先说明一下,我是在windows mobile下用Direct3d mobile实现mobile下的3d效果的,现在我想问一下如何实现一幅图片的的淡入淡出效果(图片是先load到surface然后StretchRect到要渲染的TEXTURE上的 ),我知道最好的方法应该是用模板缓存技术。但对这个不太熟悉。希望达人指点,最好有些代码,这样容易理解,方便我一直到windows mobile上。谢谢!
...全文
102
1
打赏
收藏
D3D 中的图片的淡入淡出效果?
首先说明一下,我是在windows mobile下用Direct3d mobile实现mobile下的3d效果的,现在我想问一下如何实现一幅图片的的淡入淡出效果(图片是先load到surface然后StretchRect到要渲染的TEXTURE上的 ),我知道最好的方法应该是用模板缓存技术。但对这个不太熟悉。希望达人指点,最好有些代码,这样容易理解,方便我一直到windows mobile上。谢谢!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
1 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
leechrockgames
2009-03-09
打赏
举报
回复
D3DLOCKED_RECT stLockedRect;
(*ppTexture)->LockRect( 0, &stLockedRect, 0, 0 );
UCHAR *pch=(UCHAR *)stLockedRect.pBits;
for (int j=0;j<h;j++)
{
for (int i=0;i<w;i++)
{
pch[3]=AlphaData[i+j*w];
if(pch[3]!=0)//pch[3] may by is -120
{
if(!mode)//3d ob static
{
if(alpha-AlphaData[i+j*w]+255>0)
{pch[3]=alpha-AlphaData[i+j*w]+255;}
else{pch[3]=0;}
}
else//3d fog static
{
if(AlphaData[i+j*w]-alpha>0)
{pch[3]=AlphaData[i+j*w]-alpha;}
else{pch[3]=0;}
}
}
pch+=4;
}
}
(*ppTexture)->UnlockRect(0);
设置纹理的alpha值,但d3d渲染还有相关的设置.
//D3DRS_DITHERENABLE:使程序允许抖动,默认是FALSE。
m_pd3dDevice->SetRenderState( D3DRS_DITHERENABLE, TRUE );
// Turn on the zbuffer
m_pd3dDevice->SetRenderState( D3DRS_ZENABLE, TRUE );//激活深度缓冲区P157
m_pd3dDevice->SetRenderState( D3DRS_ZFUNC, D3DCMP_LESS );//设置深度深度函数P157
m_pd3dDevice->SetRenderState(D3DRS_ZWRITEENABLE, TRUE);//允许应用程序在绘制像素时更新深度缓冲区;P158
// Turn off culling render mode
m_pd3dDevice->SetRenderState( D3DRS_CULLMODE, D3DCULL_NONE );//设置整体环境光;P92
m_pd3dDevice->SetRenderState( D3DRS_FILLMODE, D3DFILL_SOLID );//D3DFILL_WIREFRAME//D3DFILL_SOLID渲染面模式;P168
m_pd3dDevice->SetRenderState( D3DRS_SHADEMODE, D3DSHADE_GOURAUD );
// Turn off D3D lighting
m_pd3dDevice->SetRenderState( D3DRS_LIGHTING, FALSE );//激活对景物进行光照运算x
// Turn on ambient lighting
//D3DCOLOR ambientcolor=D3DCOLOR_XRGB(64,64,64);
//m_pd3dDevice->SetRenderState( D3DRS_AMBIENT, 0xffffffff );
//激活多重采样;P173(除锯齿)
m_pd3dDevice->SetRenderState( D3DRS_MULTISAMPLEANTIALIAS, false );
// Set default render states
// 用于设置顶点与纹理混合
m_pd3dDevice->SetRenderState( D3DRS_NORMALIZENORMALS, TRUE );
m_pd3dDevice->SetTextureStageState( 0, D3DTSS_COLOROP, D3DTOP_MODULATE );
m_pd3dDevice->SetTextureStageState( 0, D3DTSS_COLORARG1, D3DTA_TEXTURE );
m_pd3dDevice->SetTextureStageState( 0, D3DTSS_COLORARG2, D3DTA_DIFFUSE );
m_pd3dDevice->SetTextureStageState( 0, D3DTSS_ALPHAOP, D3DTOP_SELECTARG1 );
m_pd3dDevice->SetTextureStageState( 0, D3DTSS_ALPHAARG1, D3DTA_TEXTURE );
//D3DSAMP_MINFILTER:缩小过滤器,用于纹理缩小时减少闪烁失真
//D3DSAMP_MAGFILTER:放大过滤器,用于纹理放大时,减少出现色块
m_pd3dDevice->SetSamplerState( 0, D3DSAMP_MINFILTER, D3DTEXF_LINEAR );
m_pd3dDevice->SetSamplerState( 0, D3DSAMP_MAGFILTER, D3DTEXF_LINEAR );
//多级渐进纹理(用于设置各纹理层间的设置)
//D3DSAMP_MIPFILTER:设置多级渐进纹理过滤
m_pd3dDevice->SetSamplerState( 0, D3DSAMP_MIPFILTER, D3DTEXF_LINEAR );
//纹理拉伸(不复制纹理,作边缘像素的拉伸);P140
m_pd3dDevice->SetSamplerState( 0, D3DSAMP_ADDRESSU, D3DTADDRESS_CLAMP );
m_pd3dDevice->SetSamplerState( 0, D3DSAMP_ADDRESSV, D3DTADDRESS_CLAMP );
用Direct
3D
设计
淡入淡出
的
效果
(演示程序)
以前写过一篇有关用Direct
3D
设计
淡入淡出
的
效果
的文章,现在看来那真是煞笔啊。一年多后,我自己又深入地了解了Direct
3D
的原理,再加上自己的一些实验,现在终于实现了淡入·淡出
效果
。 为了帮助速成,我就简单地说...
使用Direct
3D
实现如幻灯片的动态
图片
切换
效果
---SlideShowD
3D
支持3种图像切换特效(
淡入淡出
、水平扫描、百叶窗),利用Direct
3D
进行画图。
d3-graphviz:Graphviz DOT渲染和使用D3的动画过渡
进入和退出节点和边缘的淡入和淡出 进入边缘的动画式增长 平移和缩放生成的图形 Graphviz方法通常返回graphviz渲染器实例,从而允许通过方法链在给定的图形渲染器实例上简洁地应用多个操作。 要渲染图形,请选择一...
至尊音乐播放器 Pocket Player(PPC) 3[1].7
6.支持
淡入淡出
、歌曲之间无缝连接功能 7."本地媒体库"选项可以自动检测设备内存
中
所有的音频文件(包括自动监测记忆卡插入、拔出状态) 8.播放列表管理可以让你轻松定制个性化的文件播放顺序 9.支持设定书签,可以...
专业
3D
视频播放工具 Stereoscopic Player 2.5.1
中
文多语免费版.zip
6.支持
淡入淡出
、歌曲之间无缝连接功能 7.”Local Content”选项可以自动检测设备内存
中
所有的音频文件 (包括自动监测记忆卡插入、拔出状态)兼容Windows Media Center的红外线遥控器 8.播放列表管理可以让你轻松...
图形处理/算法
19,468
社区成员
50,698
社区内容
发帖
与我相关
我的任务
图形处理/算法
VC/MFC 图形处理/算法
复制链接
扫一扫
分享
社区描述
VC/MFC 图形处理/算法
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章