社区
图形处理/算法
帖子详情
D3D 中的图片的淡入淡出效果?
cytlyy
2009-03-09 11:58:20
首先说明一下,我是在windows mobile下用Direct3d mobile实现mobile下的3d效果的,现在我想问一下如何实现一幅图片的的淡入淡出效果(图片是先load到surface然后StretchRect到要渲染的TEXTURE上的 ),我知道最好的方法应该是用模板缓存技术。但对这个不太熟悉。希望达人指点,最好有些代码,这样容易理解,方便我一直到windows mobile上。谢谢!
...全文
111
1
打赏
收藏
D3D 中的图片的淡入淡出效果?
首先说明一下,我是在windows mobile下用Direct3d mobile实现mobile下的3d效果的,现在我想问一下如何实现一幅图片的的淡入淡出效果(图片是先load到surface然后StretchRect到要渲染的TEXTURE上的 ),我知道最好的方法应该是用模板缓存技术。但对这个不太熟悉。希望达人指点,最好有些代码,这样容易理解,方便我一直到windows mobile上。谢谢!
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用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
在本项目“SlideShowD
3D
”
中
,我们利用Direct
3D
来实现实时的
图片
切换
效果
,就像幻灯片展示一样,同时提供了三种独特的图像切换特效:
淡入淡出
、水平扫描和百叶窗。 1. **
淡入淡出
效果
**:这是一种常见的过渡
效果
,...
D
3D
11_ScreenFade
【D
3D
11_ScreenFade】项目是一个利用Direct
3D
11实现屏幕
淡入淡出
效果
的应用。在这个项目
中
,我们主要关注以下几个关键的知识点: 1. **Direct
3D
11**:Direct
3D
是Microsoft开发的图形应用程序接口(API),用于在...
高仿d3.js官网照片墙
- **动画
效果
**:D3可以通过控制属性的过渡来实现平滑的动画
效果
,例如,
图片
淡入淡出
或位置变化。 - **交互性增强**:添加提示框显示照片信息,或者通过缩放和拖动实现可探索的视图。 - **响应式设计**:使用CSS...
JS的100多个犀利
效果
(有
效果
图,有代码)
1. **动画
效果
**:JavaScript可以实现各种动画
效果
,如
淡入淡出
、滑动、旋转、缩放等。这些
效果
通过改变元素的CSS属性如透明度、位置和大小来实现,通常结合setTimeout或requestAnimationFrame函数进行时间控制。 2...
图形处理/算法
19,471
社区成员
50,678
社区内容
发帖
与我相关
我的任务
图形处理/算法
VC/MFC 图形处理/算法
复制链接
扫一扫
分享
社区描述
VC/MFC 图形处理/算法
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章