游戏开发论坛

 找回密码
 立即注册
搜索
查看: 2104|回复: 5

请教一个DX下动态纹理的问题。。

[复制链接]

24

主题

77

帖子

97

积分

注册会员

Rank: 2

积分
97
发表于 2006-3-30 10:07:00 | 显示全部楼层 |阅读模式
DX创建纹理有两种方式(汗,我只知道这两种)
D3DXCreateTextureFromFile
D3DXCreateTextureFromFileInMemory

现在我想在不改变纹理图像文件的基础上,修改读入到内存中的纹理的图像属性
不知道应该怎么办呢?

D3DXCreateTextureFromFileInMemory 的参数中的内存指针所指向的内存块是不是根据文件格式的不同而有不同的格式呢?

还是说DX读入各种文件后统一为一种格式。(如果是这样,就比较好处理了。)

如果DX没有一种统一的内存中的图像文件格式,自己转换为统一的文件格式,然后进行处理的工作量就太大了,有没有好的方法来解决呢?

谢谢!

24

主题

77

帖子

97

积分

注册会员

Rank: 2

积分
97
 楼主| 发表于 2006-3-31 09:51:00 | 显示全部楼层

Re:请教一个DX下动态纹理的问题。。

搞定了
^_^

7

主题

299

帖子

305

积分

中级会员

Rank: 3Rank: 3

积分
305
发表于 2006-3-31 10:19:00 | 显示全部楼层

Re:请教一个DX下动态纹理的问题。。

用lockRect

25

主题

134

帖子

134

积分

注册会员

Rank: 2

积分
134
发表于 2006-3-31 13:33:00 | 显示全部楼层

Re:请教一个DX下动态纹理的问题。。

楼主能解释一下么,谢了

24

主题

77

帖子

97

积分

注册会员

Rank: 2

积分
97
 楼主| 发表于 2006-4-6 09:57:00 | 显示全部楼层

Re:请教一个DX下动态纹理的问题。。

如 YoungSdikode 所说的 ^_^

直接操作 IDirect3DTexture9 接口就可以了

7

主题

299

帖子

305

积分

中级会员

Rank: 3Rank: 3

积分
305
发表于 2006-4-6 10:39:00 | 显示全部楼层

Re:请教一个DX下动态纹理的问题。。

        D3DLOCKED_RECT        LockRect;       
        (m_d3dTexture)->LockRect(0,&LockRect,NULL,0);
        DWORD* p;       
        p = (DWORD*)LockRect.pBits;

        int pitch4 = LockRect.Pitch/4;
        currentColor = colorBase;
        for(int i = 0 ; i < textureDesc.Height ; i++ )
        {
                for(int j = 0 ; j < textureDesc.Width ; j++ )
                {
                        //transform to D3DFMT_X8R8G8B8:
                        p[i*pitch4+j] = int(currentColor[0]<<24) + int(currentColor[1]<<16) +
                                int(currentColor[2]<<8) + currentColor[3];
                        currentColor+=4;
       
                }

        }

        m_d3dTexture->UnlockRect(0);
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2026-1-24 02:44

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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