Page 1 of 2

Springs temperamental handling of sprites.

Posted: 17 Jun 2012, 23:09
by smoth
The following:
Image
renders as such:
Image

For some things it works, for others it doesn't, it is terribly temperamental, even when given an alpha layer strange things like this white effect happen if I don't do the black just right at the edges of the transparency.

So what am I doing wrong here? If there is nothing wrong with the png, why does spring do this?

Re: Springs temperamental handling of sprites.

Posted: 18 Jun 2012, 01:28
by rattle
use a black background and store the transparency in a separate channel and go with a different format that PS can actually store alpha channels in.

I think there was a program that you could attach alpha channels to PNGs properly. cant remember what it was called but the layer transparency thing is the issue here, I've had it often enough

Re: Springs temperamental handling of sprites.

Posted: 18 Jun 2012, 01:32
by smoth
Cool, if you think of it let me know. So it is an issue with png?

Re: Springs temperamental handling of sprites.

Posted: 18 Jun 2012, 09:36
by Beherith
Rattle is right, this is why I stay away from PNG. It doesnt offer anything, since the image will be compressed in sd7-sdz anyway, and png just adds another decompression step upon loading mod.

Re: Springs temperamental handling of sprites.

Posted: 18 Jun 2012, 11:25
by Pressure Line
dxtBMP is the program you are looking for

Re: Springs temperamental handling of sprites.

Posted: 18 Jun 2012, 18:46
by smoth
Beherith wrote:Rattle is right, this is why I stay away from PNG. It doesnt offer anything, since the image will be compressed in sd7-sdz anyway, and png just adds another decompression step upon loading mod.
It might seem silly but png is good for me because for things like CeG sprites I can see the thumbnail in windows and it speeds up my ceg development. which is important when generating sparkle cannons..
Image

Re: Springs temperamental handling of sprites.

Posted: 18 Jun 2012, 20:59
by KaiserJ
Pressure Line wrote:dxtBMP is the program you are looking for

thanks i needed this for something unrelated; i thought it was an unfixable problem that i had created

Re: Springs temperamental handling of sprites.

Posted: 18 Jun 2012, 22:04
by KDR_11k
Normal alpha is rendered with SRC_ALPHA, DEST_ONE_MINUS_ALPHA but Spring uses SRC_ONE, DEST_ONE_MINUS_ALPHA. Basically the color channels are drawn additive and the alpha channel is drawn multiplicative (i.e. the alpha darkens stuff while the color brightens). If you leave alpha completely black you get additive blending.

Also you're really making my fairy more fabulous.

Re: Springs temperamental handling of sprites.

Posted: 19 Jun 2012, 00:15
by smoth
KDR_11k wrote:Also you're really making my fairy more fabulous.
Yer welcome.

Re: Springs temperamental handling of sprites.

Posted: 19 Jun 2012, 00:32
by smoth
possibly related, I just found out spring READS psds... so my sprites being dorked up may have a LOT to do with this!

Re: Springs temperamental handling of sprites.

Posted: 19 Jun 2012, 21:41
by rattle
Pressure Line wrote:dxtBMP is the program you are looking for
that's what I just googled up.. does not support PNG though
http://www.mwgfx.co.uk/programs/dxtbmp.htm

http://en.wikipedia.org/wiki/Portable_Network_Graphics
PNG offers a variety of transparency options. With truecolor and grayscale images either a single pixel value can be declared as transparent or an alpha channel can be added (enabling any percentage of partial transparency to be used). For paletted images, alpha values can be added to palette entries. The number of such values stored may be less than the total number of palette entries, in which case the remaining entries are considered fully opaque.
Pretty sure that this is the reason for this issue.

http://www.fnordware.com/superpng/
SuperPNG fully supports the PNG format. It includes some additional options for saving PNGs:
  • Alpha channel control
    Variable Compression
    ICC profile embedding
    Meta Data saving
This is a Photoshop plugin

Re: Springs temperamental handling of sprites.

Posted: 20 Jun 2012, 19:49
by zwzsg
What's the point of variable compression in PNG?

Re: Springs temperamental handling of sprites.

Posted: 20 Jun 2012, 19:56
by SinbadEV
zwzsg wrote:What's the point of variable compression in PNG?
Decompression time VS File Size.

Re: Springs temperamental handling of sprites.

Posted: 21 Jun 2012, 17:11
by rattle
PNG was introduced as a format for lossless web graphics, either palletized or per pixel data in a time where bandwidth still mattered

Re: Springs temperamental handling of sprites.

Posted: 21 Jun 2012, 20:43
by zwzsg
It did not occur to me that decompression time could matter.

Re: Springs temperamental handling of sprites.

Posted: 24 Jun 2012, 12:15
by scifi
now i know why this was happening to me too

Re: Springs temperamental handling of sprites.

Posted: 08 Dec 2012, 04:46
by luckywaldo7
A minor thread-rez spell casted;

If anybody has tips or techniques on how to handle this in gimp, it would be much appreciated.

Re: Springs temperamental handling of sprites.

Posted: 08 Dec 2012, 04:50
by smoth
IIRC you had to do a plugin or something.

Re: Springs temperamental handling of sprites.

Posted: 08 Dec 2012, 22:04
by rattle
Try TGA instead. You will zip the game folder anyway so wether the image data is zipped in the file itself or afterwards does not make that much of a difference.

Re: Springs temperamental handling of sprites.

Posted: 03 Feb 2013, 16:50
by Anarchid
I've run some experiments trying to replace zk's default orange ball cannon projectile with something nicer. Here's what:

- TGA with no alpha channel: additive blending, with black (i.e, shaded darker; not fully transparent) mask for #000 pixels. Might be something card-specific, but the masking makes it pointless for me.
- TGA with an alpha channel: 1-bit transparency.
- TGA with an all-black alpha channel (i.e, zero opacity): nothing drawn.
- TGA with an all-white alpha channel (i.e. full opacity): additive blending as above, dark box around projectile as above.

Anybody has any other ideas?