游戏开发论坛

 找回密码
 立即注册
搜索
查看: 1296|回复: 1

想做一个拉动的背景,求助

[复制链接]

24

主题

94

帖子

96

积分

注册会员

Rank: 2

积分
96
发表于 2005-10-21 23:22:00 | 显示全部楼层 |阅读模式
比如天空,结果在渲染的时候发现了问题:

我目前打算使用纹理坐标移动的方式,但是结果出人意料……
// 纹理渲染
g_pd3dDevice->SetTexture( 0, m_pTexture0 );
g_pd3dDevice->SetTextureStageState( 0, D3DTSS_COLOROP,   D3DTOP_MODULATE );
g_pd3dDevice->SetTextureStageState( 0, D3DTSS_COLORARG1, D3DTA_TEXTURE );
g_pd3dDevice->SetTextureStageState( 0, D3DTSS_COLORARG2, D3DTA_DIFFUSE );
g_pd3dDevice->SetTextureStageState( 0, D3DTSS_ALPHAOP,   D3DTOP_DISABLE );

// 镜像纹理
if (mirror){
//g_pd3dDevice->SetTextureStageState( 0, D3DTSS_ADDRESSU, D3DTADDRESS_MIRROR ) ;
//g_pd3dDevice->SetTextureStageState( 0, D3DTSS_ADDRESSV, D3DTADDRESS_MIRROR ) ;
g_pd3dDevice->SetTextureStageState( 0, D3DTSS_TEXCOORDINDEX, D3DTSS_TCI_CAMERASPACEPOSITION );
g_pd3dDevice->SetTextureStageState( 0, D3DTSS_TEXTURETRANSFORMFLAGS, D3DTTFF_COUNT2 );
}

即使我用注释去掉了ADDRESSU两行,图像一定会变小!
结果发现可能是因为使用了
g_pd3dDevice->SetTextureStageState( 0, D3DTSS_TEXCOORDINDEX, D3DTSS_TCI_CAMERASPACEPOSITION );
g_pd3dDevice->SetTextureStageState( 0, D3DTSS_TEXTURETRANSFORMFLAGS, D3DTTFF_COUNT2 );
缘故,不得已,在平移纹理的时候使用了放大处理……然后不需要mirror的纹理使用一个开关关掉,而在需要的时候,打开开关,但是这样一来,如果我要使一张纹理而又要平移,且不缩小……那怎么办?

PS:除了整个以上的方法还有别的方法做卷动背景吗?以前用过多个QUAD作为卷动的方法……不过不是很好

24

主题

94

帖子

96

积分

注册会员

Rank: 2

积分
96
 楼主| 发表于 2005-10-23 23:59:00 | 显示全部楼层

Re:想做一个拉动的背景,求助

这个……是我没有说清楚吗?还是觉得很无聊……?> <。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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