Page 1 of 7

OpenGFX Extra Zoom

Posted: 12 Nov 2014 13:19
by Zephyris
Seven long years have passed since I made the first sprites for OpenGFX and they are looking a little bit small...

So here are some bigger ones!

Just the temperate normal ground tiles so far... but made to precisely match the OpenGFX ones in colour and texture. Good/bad?

Re: OpenGFX Extra Zoom

Posted: 12 Nov 2014 13:28
by supermop
Yep! They do look good!

Re: OpenGFX Extra Zoom

Posted: 12 Nov 2014 13:36
by 3iff
Yes, I like them.

Re: OpenGFX Extra Zoom

Posted: 12 Nov 2014 14:25
by Roslav
Very nice. Will you make gridless variant too?

Re: OpenGFX Extra Zoom

Posted: 12 Nov 2014 21:32
by TadeuszD
OpenGFX sprites contains gridlines. In zoom 2X gridlines are OK. But in 4X they can be smoother...
Are you really want to add zoom 4X sprites to OpenGFX? Why?

Re: OpenGFX Extra Zoom

Posted: 13 Nov 2014 09:13
by planetmaker
Zephyris wrote:Seven long years have passed since I made the first sprites for OpenGFX and they are looking a little bit small...

So here are some bigger ones!
I like it. I think the texture is much nicer for the bigger sprites (the 4x looks nicer than the 2x). However the tile borders look a bit fuzzy. I assume though that they are 8bpp sprites, are they? I (meanwhile) don't believe (anymore) that we should add 32bpp to OpenGFX. Those who want 32bpp should imho use zBase. However zBase might profit from a type of grass of this kind, too... this one is nicer than the rather plain one found there :)

The biggest "problem" I see is with rivers; at least I have no idea how to procedurally create nice ones. I replaced all original shores (river and sea) and created the currently existing ones by manual pixel-pushing, thus they're not easily created as zoomed-in sprites. However it's all nice in layers so that sprites with new grass and new zoom level are rather easily created as well. But sea and river shores will need hand-drawing, I believe.
http://dev.openttdcoop.org/projects/ogf ... errain.xcf

Re: OpenGFX Extra Zoom

Posted: 13 Nov 2014 10:39
by Zephyris
These are all 8bpp sprites. I agree that 32bpp in OpenGFX is not the way to go. To me, the obvious conclusion from zbase is that 32bpp graphics are either loved or hated, and many people (including me) are a big fan of the pixel art style. Logical conclusion: bigger 8bpp sprites!

Re: the rivers and coasts. I have already tried out drawing the coasts; I wrote a scaling method for 'natural' things (coasts, grass, trees) that I call pixel diffusion... It starts with a nearest neighbour scaling, then does random pixel swaps at a specified frequency and distance distribution. The concept is that this introduces a fractal-like new level of detail which maintains the large scale structure and colouration, while adding new random detail. I think this worked surprisingly well, take a look at the screenshot which is the raw output with no pixel tweaking...

Oh, and rocks and rough too!

Re: OpenGFX Extra Zoom

Posted: 13 Nov 2014 10:55
by Zephyris
... a pixel diffusion scaled tree; from 1x tp 4x with no pixel tweaking. Most trees will need manual fixing of trunks & branches though.

Re: OpenGFX Extra Zoom

Posted: 13 Nov 2014 12:41
by planetmaker
The coasts indeed don't look too bad. There are a few stray sandy pixels inside the water where they shouldn't be, but that's rather a minor task to fix that after this type of upscaling. The rocks have a nice 3D feeling to them in this form. The tree looks nice as well.

Any chance to see this upscaling script? What image processing do you use for this? ImageJ? Gimp? something else?

Re: OpenGFX Extra Zoom

Posted: 13 Nov 2014 12:56
by Zephyris
I used ImageJ (my favourite!). This is the script as used for the coasts, I made some crude changes to get it to handle blue transparent pixels correctly for the tree. NB. for the coasts I only used the scaling for the sand & water, then overlaid that onto my new 2x ground tiles.

Code: Select all

//Settings groups
//temperate_shoretile_water
probDiffuse=0.6;
diffuseRange=2;
anisotropic=true;

//Resize 2x using nearest neighbour
run("Size...", "width="+getWidth()*2+" height="+getHeight()*2+" constrain average interpolation=None");
//Loop through all the pixels for pixel diffusion
for (x=0; x<getWidth(); x++) {
	for (y=0; y<getHeight(); y++) {
		//Get the value of the current pixel
		v1=getPixel(x, y);
		//If not blue (0) or white (255) randomise whether to diffuse this pixel
		if (v1!=0 && v1!=255 && random()<probDiffuse) {
			//Set the xfactor for anisotropic diffusuion
			//Anisotropic diffusion promoting movement in x is good for many dimetric projections
			if (anisotropic==true) {
				xfac=1;
			} else {
				xfac=2;
			}
			//Find the random x/y offset to diffuse the pixel to
			rx=round(random()*diffuseRange*2*xfac-diffuseRange*xfac);
			ry=round(random()*diffuseRange*2-diffuseRange);
			//Only continue if the x/y offset is nonzero and within the image bounds
			if (rx!=0 && ry!=0) {
				if (x+rx>=0 && x+rx<getWidth() && y+ry>=0 && y+ry<getHeight()) {
					//Get the value of the pixel at the x/y offset
					v2=getPixel(x+rx, y+ry);
					//If it is not blue (0) or white (255) then swap values of the current pixel and the one at the x/y offset
					if (v2!=0 && v2!=255) {
						setPixel(x, y, v2);
						setPixel(x+rx, y+ry, v1);
					}
				}
			}
		}
	}
}
It assumes a paletted image with transparent at index 0 and white/background at index 255.

Re: OpenGFX Extra Zoom

Posted: 13 Nov 2014 16:18
by Pingaware
Zephyris, this is some seriously impressive basic work you're producing here. For initial crude tests, it's looking really good!

Re: OpenGFX Extra Zoom

Posted: 13 Nov 2014 18:47
by Brumi
This looks beautiful. :)

Are you planning to make an EZ version of the whole OpenGFX or only parts of it?

Re: OpenGFX Extra Zoom

Posted: 13 Nov 2014 20:35
by R-TEAM
Hi,

[quote="Zephyris"]These are all 8bpp sprites. I agree that 32bpp in OpenGFX is not the way to go. To me, the obvious conclusion from zbase is that 32bpp graphics are either loved or hated, and many people (including me) are a big fan of the pixel art style. Logical conclusion: bigger 8bpp sprites!
.......
[/quote]

this is (for me and maybe "many" others) not true, i like 32bpp ... maybe the "style" can be "pixel art" in 32bpp too ... but my main problem with the (very good looking) 32bpp gfx is simple ...
Not ONE of the big additions that are available support it ... a list of additional NewGRF that i use, and i dont will miss on OTTD :
ECS
TotalTown Replacement
(a couple of additional town house replacement sets)
NuTracks
2cc Trains
Pipe
Av8 Aviator Aircraft set
Squid
LongVehicles
Various Tram/road vhehicle sets (BATS/HEQS/eGRVTS..)
many,many stations sets
additional Object sets

With the mixed view you get, with 32bpp basic gfx, and the standard 8bpp from this NewGRF sets, its look bad ..
So i get better straight at 8bpp and it looks not so nice - but "consistent" ....

Regards
R-TEAM

Re: OpenGFX Extra Zoom

Posted: 14 Nov 2014 07:11
by Hyronymus
R-TEAM wrote:Hi,
Zephyris wrote:These are all 8bpp sprites. I agree that 32bpp in OpenGFX is not the way to go. To me, the obvious conclusion from zbase is that 32bpp graphics are either loved or hated, and many people (including me) are a big fan of the pixel art style. Logical conclusion: bigger 8bpp sprites!
.......
this is (for me and maybe "many" others) not true, i like 32bpp ... maybe the "style" can be "pixel art" in 32bpp too ... but my main problem with the (very good looking) 32bpp gfx is simple ...
Not ONE of the big additions that are available support it ... a list of additional NewGRF that i use, and i dont will miss on OTTD :
ECS
TotalTown Replacement
(a couple of additional town house replacement sets)
NuTracks
2cc Trains
Pipe
Av8 Aviator Aircraft set
Squid
LongVehicles
Various Tram/road vhehicle sets (BATS/HEQS/eGRVTS..)
many,many stations sets
additional Object sets

With the mixed view you get, with 32bpp basic gfx, and the standard 8bpp from this NewGRF sets, its look bad ..
So i get better straight at 8bpp and it looks not so nice - but "consistent" ....

Regards
R-TEAM
Neither of the sets you mentioned support EZ either. Still it looks astonishing compared to the original, but yes pixely (if that is a word even): each game has it's charms :).

Re: OpenGFX Extra Zoom

Posted: 14 Nov 2014 07:14
by V453000 :)
R-TEAM wrote:Hi,

this is (for me and maybe "many" others) not true, i like 32bpp ... maybe the "style" can be "pixel art" in 32bpp too ... but my main problem with the (very good looking) 32bpp gfx is simple ...
Not ONE of the big additions that are available support it ... a list of additional NewGRF that i use, and i dont will miss on OTTD :


With the mixed view you get, with 32bpp basic gfx, and the standard 8bpp from this NewGRF sets, its look bad ..
So i get better straight at 8bpp and it looks not so nice - but "consistent" ....

Regards
R-TEAM
That is just how it will be if 32bpp/EZ is to be available. When it was not, obviously 8bpp/x1 zoom set a clear standard which made everything consistent by force.

While there is nothing to do about that, I think good newGRFs fit together even if they have less pixels or less colours. If contrast / general visual appearance fits, it generally is fine.

For example, I think YETI fits the best with the original ttd graphics, simply because I consider them the best, and therefore YETI is callibrated to look similar. Now, even though there is a lot less pixels and a lot less colours, I still feel like it is alright together.

I personally believe that the 32bpp/EZ part of newGRFs will only continue to grow, to the point where there will be a good choice of newGRFs to use. Whether they will be able to replace 8bpp is in my opinion only a matter of quality.

What I think is good constructive conclusion to your post is that it is best to have newGRFs which can have both - for example I am not enhancing NUTS with 32bpp/EZ sprites - BUT it already has all of them hand-drawn pixel art 8bpp sprites, too - so if the player just switches the blitter from 32bpp to 8bpp, they can force 8bpp sprites and never see 32bpp if they dont want to. Consistency! :D ... YETI also has 8bpp/x1 sprites, but since they are just converted from 32bpp/x4, they look a lot different than hand-drawn pixel art :)

Re: OpenGFX Extra Zoom

Posted: 14 Nov 2014 21:18
by TadeuszD
I tested new 8bpp 2x and 4x sprites. Below are my conclusions:

1) New OGFX set should keep original 8bpp 1x sprites. Original sprites are better optimized for zooming out the map (see picture 1). New sprites, obtained by scaling down 4x sprites, generates unexpected effects (picture 2).
2) New sprites looks darker and more intensive (pic. 4). It should be corrected.
3) 'Bumps' (lighter and darker patches on the tiles) are too regular and too expressive in my opinion (pic. 4). Original sprites looks more 'fluent' and neutral (pic. 3). It would be nice to see 2x and 4x sprites more compatible with current sprites. ;)

Re: OpenGFX Extra Zoom

Posted: 15 Nov 2014 02:47
by Digitalfox
V453000 :) wrote:
R-TEAM wrote:Hi,

this is (for me and maybe "many" others) not true, i like 32bpp ... maybe the "style" can be "pixel art" in 32bpp too ... but my main problem with the (very good looking) 32bpp gfx is simple ...
Not ONE of the big additions that are available support it ... a list of additional NewGRF that i use, and i dont will miss on OTTD :


With the mixed view you get, with 32bpp basic gfx, and the standard 8bpp from this NewGRF sets, its look bad ..
So i get better straight at 8bpp and it looks not so nice - but "consistent" ....

Regards
R-TEAM
That is just how it will be if 32bpp/EZ is to be available. When it was not, obviously 8bpp/x1 zoom set a clear standard which made everything consistent by force.

While there is nothing to do about that, I think good newGRFs fit together even if they have less pixels or less colours. If contrast / general visual appearance fits, it generally is fine.

I personally believe that the 32bpp/EZ part of newGRFs will only continue to grow, to the point where there will be a good choice of newGRFs to use. Whether they will be able to replace 8bpp is in my opinion only a matter of quality.
Couldn't agree more, great answer V453000 :))

Re: OpenGFX Extra Zoom

Posted: 16 Nov 2014 00:43
by doxlulzem
Nice. Since you said zBase was just to get the graphics out there so you could improve them later, is this like zBase 2.0?
Either way it's fab!

Re: OpenGFX Extra Zoom

Posted: 16 Nov 2014 21:23
by Zephyris
An update: Now includes all temperate, arctic and tropical terrain tiles, including snow, desert, and farmland.

Re. A few questions:
No, this isn't "the new zBase", because the zBase graphics are drawn in a fundamentally different way, and these match the OpenGFX graphics in style.
There is no real "why" as to why I made these, apart from the fact that I personally thought it was the best way to improve the appearance of extra zoom levels while playing with OpenGFX.
The difference in the low zoom level temperate tiles to original OpenGFX is because I am using a different dithering method to going to the final 8bpp graphics. I think that may also be the source of the bumpy mid zoom temperate tiles. A related challenge is optimising all terrain tile sprites scale elegantly to small sizes, I hope to look into it!
Finally, please don't think I am anti 32bpp, or anti low zoom level graphics, I just thought making these would be cool!

Re: OpenGFX Extra Zoom

Posted: 17 Nov 2014 19:06
by Fanda666
Looks great! Whether these tiles are drawn? and water tiles?
Image
And in general, what are your plans?