找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
楼主: shawind

[分享]irrlicht已经升到1.2版

[复制链接]
发表于 2007-1-7 23:41:29 | 显示全部楼层
inline s32 CD3D8Texture::getTextureSizeFromImageSize(s32 size)
{
    s32 ts = 0x01;

    while(ts < size)
        ts <<= 1;

//    if (ts > size && ts > 64)
//        ts >>= 1;

    return ts;
}

inline s32 CD3D9Texture::getTextureSizeFromImageSize(s32 size)
{
    s32 ts = 0x01;

    while(ts < size)
        ts <<= 1;

//    if (ts > size && ts > 64)
//        ts >>= 1;

    return ts;
}

修改这两个东西就可以让DX贴图勉强能够看下去……ToT
发表于 2007-1-8 22:45:33 | 显示全部楼层
IImage* cpimg2d(video::IVideoDriver* driver,IImage* input,int x=1024,int y=1024)
{
    void* data=malloc(x*y*sizeof(s32));
    memset(data,0,x*y*sizeof(s32));
    IImage* img=driver->createImageFromData(ECF_A8R8G8B8,dimension2d<s32>(x,y),data,true);
    for(s32 i=0;i<input->getDimension().Height;i++)
    {
        for(s32 j=0;j<input->getDimension().Width;j++)
        {
            img->setPixel(j,i,input->getPixel(j,i));
        }
    }

    delete input;
    return img;
}

这个邪恶的东西……可以把2D图像补大到1024x1024……完美解决问题……
要求是把方法
    virtual void setPixel(s32 x, s32 y, const SColor &color );
加入到IImage的类定义……
 楼主| 发表于 2007-1-9 12:01:01 | 显示全部楼层
这么补一下,内存就多用了点。很麻烦啊。
发表于 2007-1-9 12:27:20 | 显示全部楼层
AVG本身图层就不是非常多,每个图层几MB的内存换取效果的飞跃性提升,我觉得还是值得的。
 楼主| 发表于 2007-1-9 19:29:09 | 显示全部楼层
哦,估计你是用avg做中间剧情介绍。
然后在载入3d的关卡之前,释放掉内存。

我原来还以为是在显示3D图像的同时显示2d图像
比如显示一个3D的城市,有N多的3D NPC在上面,
这时还要在画面的前面。用avg的形式显示主角和npc的对话,
这样内存的开销就需要注意一点了。

ps.我想起来了,你现在在做的这个游戏不是和〈galaxy angel〉很像么?
发表于 2007-1-9 21:38:28 | 显示全部楼层
Broccoli的银河天使系列?-v-一点也不像吧……
这个游戏的飞行模拟系统……按照设计目标最相似的应该是NAMCO的ACE COMBAT系列……-v-
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|幻想森林

GMT+8, 2026-10-31 00:13 , Processed in 0.009627 second(s), 13 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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