|
|
Yeah, I was thinking like that (using transparent pixels). But I'm afraid
it will take up more memory. FYI, I usually load all the surfaces needed
for the entire game so that the game doesn't need a loading time overhead
beside when the game was first called. And currently there's 170+ megs of
BMP files for the game and all of them are loaded at once. If I use
transparent pixels to make the surface a power of 2, it will take a lot
more than 170 megs. Also it will require the 2D artist to remake all those
assets. I think I won't implement it to the current game after all. Thanks
anyway.
Kuon said:
>
> On 17 Jul 2007, at 5:31 PM, Sean Middleditch wrote:
>
>>
>> On Mon, 2007-07-16 at 22:08 -0700, Mike Powell wrote:
>>> benang@xxxxxxxxxxxx wrote:
>>>> 4. AFAIK, to add a texture, the width & height of the image
>>>> should be a
>>>> power of 2. So how do I make a sprite with width and/or height
>>>> not of
>>>> power of 2?
>
>>>
>>> This was true in the old versions of OpenGL, but I know it's been
>>> fixed by OpenGL 2.0. Not sure, offhand, exactly which version made
>>> the
>>> shift, but if your version is up to date, you should be able to use
>>> any texture size. Provided, of course, it's not larger then your
>>> implementation's maximum texture size. These days, that's usually
>>> either 512 or 1024, so you probably won't have a problem there.
>
> I think 2048 is common.
>
> In our game, we use only power of two textures to be more compatible
> and we also noticed a speed boost on some platforms/card.
>
> We simply fill the texture with transparent pixels and we adjust the
> coordinates to display the image correctly.
>
>
>
>>
>> I think OpenGl 1.5 also has this restriction removed, and it's quite
>> possible the driver supports 1.5 but not 2.0. (2.0 makes GLSL
>> required.)
>>
>> There are various things you can do to alleviate the texture
>> limitations, though. One trick is to pack multiple
>> tiles/images/textures into a single OpenGL texture, which if done
>> carefully, will let you use a max sized texture with little wasted
>> space. You then just have to remember the texture ID, width, height,
>> x/s offset, and y/t offset of your image in the texture, and pass
>> those
>> various parameters in when rendering your quads. It can also help to
>> just design your graphics around powers of two dimensions if at all
>> possible. Especially if you're making a tile-based game and not some
>> other kind of app, splitting up your tiles into smaller 16x16 or 32x32
>> bits would be a good idea. (Few people realize this, but the tiles in
>> old 2D Nintendo games were actually very very small - most of the tile
>> "rips" you find online don't actually rip the tiles, but larger
>> squares
>> made of multiple tiles, so a lot of people think they're bigger than
>> they really are.)
>>
>
> Also, for animations (sprites), having one texture is faster, as you
> can keep it and only change the coordinates.
>
> For tiles, I once worked on one engine, and we used one texture for a
> couple of reasons:
> - A bit faster
> - Able to create bigger tiles, or pre-joined tiles (like a mountain
> with a forest around, let's say its 5 tiles, you would be able to
> draw this in one pass)
> - Code is easier to manager, for example, let's take the night
> filter, you apply it once to the texture and you are done.
>
> Regards
> --
> Kuon
>
> "Don't press that button."
> http://goyman.com/
> Blog: http://kuon.goyman.com/
>
>
>
> _______________________________________________
> SDL mailing list
> SDL@xxxxxxxxxxxxxxxx
> http://lists.libsdl.org/listinfo.cgi/sdl-libsdl.org
>
Fare thee well,
Bawenang R. P. P.
----------------
ERROR: Brain not found. Please insert a new brain!
?Do nothing which is of no use.? - Miyamoto Musashi.
"I live for my dream. And my dream is to live my life to the fullest."
_______________________________________________
SDL mailing list
SDL@xxxxxxxxxxxxxxxx
http://lists.libsdl.org/listinfo.cgi/sdl-libsdl.org
|
|