I love a good texture atlas. This is MORPH's. It has a rhyme and reason to it mathematically but I think it also turned out quite pretty to look at.
seen from United States
seen from Russia
seen from United States
seen from United States
seen from Austria

seen from Iran

seen from Malaysia

seen from Indonesia
seen from Canada
seen from Belarus
seen from United States
seen from Malaysia

seen from Malaysia
seen from Iran
seen from China
seen from China
seen from United States
seen from United States
seen from Yemen

seen from China
I love a good texture atlas. This is MORPH's. It has a rhyme and reason to it mathematically but I think it also turned out quite pretty to look at.
Free Texture Packer
“...is an open source tool that allows you to pack multiple images into one atlas for you games or sites.“
Texture Atlas
Texture Atlas
Ok so a little progress over last time but still need to improve a lot of stuff and get a lot of other items working in OpenGL. So I have the orthographic mode set up properly now as well as a basic camera (though lookat seems to be broken) and have the model view matrix. The next step is to get a texture onto the quad and sort a few little things out. After that I will move on to doing a few tests with the geometry shader and look into instancing and reducing the amount of draw calls within the renderer. I've been looking around at different ways to optimise and try and modernise the way im using OpenGL. Though as per usual with most communities there are people saying one thing and others saying another. From the sounds of it if I wish to reduce the amount of draw calls I may have to look into texture atlasing however that doesn't sound like a great idea for multiple sprites of different types. I can see it being very useful for particle effects and static levels. I will have to ask around a bit I think and also experiment with different techniques.
Texture Arrays vs. Texture Atlas
Texture Atlas SUCKS! I switched over to DX11/10 and finally got Texture Arrays working. As you can see:
no more seams. Anisotropic filtering works like a charm. Recap on why there are seams in the first place--I generate texture coordinates from the world position by using fract(). Fract over worldposition is a discontinous function, leading to problems when selecting LOD hence the seams. Computing LOD levels manually doesn't do the trick because it doesn't resolve the discontinuity which I believe either a) has some hardware limitation or b) one still need to emulate texture "wrapping". I tried (a) which didn't resolve the seam. I did not have time to try out (b).
With texture array the discontinuity is solved by using hardware texture wrap which is possible with texture arrays. This way I can use world position as the texture coordinate directly without fract().
Texture Arrays also resolves most issues with Texture Atlas without a bunch of hacks (like reducing texture dimension by half and shifting).
*Some Implementation Details*
I applied a patch, which you can find in the DX11 thread just google TextureAtlas on that post.
Also the example doesn't load mip maps. I ended up loading a uncompressed dds with mip maps and load each individual mips into the texture. Works for now. But we're going to need the ability to load compressed dds later on.
light pre-pass
Update on implementing deferred lighting in Ogre. In the previous few post where I mentioned how I was going to implement Deferred Lighting, I was actually thinking of Light Pre-pass rendering. Except, I recall reading somewhere that you can render a full G buffer in order to skip 2nd pass opaque scene rendering. The approach is not the traditional deferred shading due to some subtle differences. It's between light pre-pass and traditional deferred shading.
Anyways, I decided to not worry about that and just go with light pre-pass.
This blog post has a lot more details on this:
http://liquidrockgames.blogspot.com/2010/02/light-deferred-approach.html
Basically that's what I will do also, so I won't bore you with the details :)
Transparency
Perhaps when I get to handling transparency, I will just handle that using a forward renderer. I planned to try a different approach to rendering my terrain, which is to group the "cubes" by material, instead of relying on the texture atlas technique. Doing so will makes my life easier when doing forward rendering of transparent objects since these objects will be a single batch.
When I started my adventure into Minecraft clone, I had initially thought about doing it this way. It just using Texture Atlas was easier for me at the point.
fast light volume generation
I was thinking maybe I can use instancing to generate the light volumes. When I extract the lights from my Volume, they will be in a buffer of sorts, so it's just a matter of how to efficiently getting this buffer to the GPU. Of course for static lighting I don't have to update this buffer often, once I upload it to the GPU.