游戏开发论坛

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

mdl纹理的问题

[复制链接]

7

主题

299

帖子

305

积分

中级会员

Rank: 3Rank: 3

积分
305
发表于 2006-1-12 20:38:00 | 显示全部楼层 |阅读模式
小弟我在做mdl文件的查看器,现在要实现纹理,而纹理存放在文件的某一区域

请问如何在d3d下面把内存中的数据拷过去LPDIRECT3DTEXTURE9接口成为纹理???

我现在只会d3dcreatetexturefromfile这一初级的函数,

大虾们请指点一下。。。。。不胜感激

7

主题

299

帖子

305

积分

中级会员

Rank: 3Rank: 3

积分
305
 楼主| 发表于 2006-1-13 11:24:00 | 显示全部楼层

Re:mdl纹理的问题

帮帮忙啊

36

主题

1047

帖子

1147

积分

金牌会员

Rank: 6Rank: 6

积分
1147
发表于 2006-1-13 14:22:00 | 显示全部楼层

Re:mdl纹理的问题

D3DXCreateTextureFromFileInMemory

7

主题

299

帖子

305

积分

中级会员

Rank: 3Rank: 3

积分
305
 楼主| 发表于 2006-1-13 14:34:00 | 显示全部楼层

Re:mdl纹理的问题

回楼上

这个涵数是把内存中的类似BMP文件读进纹理中,但我的数据是存放在一个数组中

7

主题

299

帖子

305

积分

中级会员

Rank: 3Rank: 3

积分
305
 楼主| 发表于 2006-1-16 15:17:00 | 显示全部楼层

Re:mdl纹理的问题

现在弄懂了,看来还得看自己:

if( FAILED (D3DXCreateTexture(m_pDevice,outwidth,outheight,1,0,mode.Format,
                D3DPOOL_MANAGED,pTexture )))
                return        0;
       
RECT        rect;
rect.left = 0;
rect.top = 0;
rect.bottom = outheight;
rect.right = outwidth;
       
D3DLOCKED_RECT        LockRect;       
(*pTexture)->LockRect(0,&LockRect,&rect,D3DLOCK_DISCARD);
p = (DWORD*)LockRect.pBits;
out = tex;
for( i = 0 ; i < outwidth ; i++)
{
        for( j = 0 ; j < outheight ; j++ , out += 4)
        {
          //transform to D3DFMT_X8R8G8B8:
          *(p+i*outwidth+j) = int(out[3]<<24) + int(out[0]<<16) + int(out[1]<<8) + out[2];
        }

}
(*pTexture)->UnlockRect(0);

//out是存放颜色的数组
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2026-1-23 06:51

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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