Introduction

While I hope this tutorial is helpful, I must admit, I never expected it to make it to the wiki, as it was originally just feedback on a project obijankenobi was working on after he asked for critique.

Regardless, I’ve been asked to migrate the discussion to the wiki, so hopefully somebody will find this information useful- particularly the portions that deal with foliage suitable for a top-down / orthographic environment.

The Original Screenshot

Obijankenobi’s original screenshot looked like this, when he asked for critique:

My Critique Response

My advice!

1) Starting with the ground: tone down or blur that bump texture a bit: right now it comes across very busy and noisy! Next, I would desaturate the ground just a bit, and give it a greener tint for an earthier feel. Honestly, I can’t tell for sure what style of environment you’re going for, but I like the way this subtle green tone looks.

Next, depending on how you’re handling your landscape’s textures, try to paint some darker greens in the places where your grass will eventually go, as well as some sandy browns in/around your water. Also, paint the areas that are going to be deeper underwater a dark greyish color: it’ll help make the water look deeper later on.

2) When you bring in your water, give it some more transparency, and you might also give is a bit of a greyish/greenish hue, too, depending on what sort of environment you’re looking for.

3) Your grass needs to be handled a little differently, for top-down games. Instead of billboarded fields, you need to find something that is easily seen from above. Something like this, maybe?

Spread those out in different sizes and at different angles, and you can get a much better view from above!

Your code might look like this:

dim gPos() as vector
dim gRot() as vector

'Load all the rotations/locations of the grass chunks from your level files, then when you're ready to render...

beginRender
   for a = 0 to iGrassCount-1
      grassMesh.setRotation(gRot(a).x,gRot(a).y,gRot(a).z)
      grassMesh.setPosition(gPos(a).x,gPos(a).y,gPos(a).z)
      grassMesh.render()
   next
endRender

4) The same applies to your trees. Make sure the most important parts are facing the camera:

These changes to your environment might help the scene look better as a whole. I hope my silly paintovers helped a little bit, and good luck to ye! :D

 
tutorialsarticlesandexamples/designing_foliage_for_orthographic_and_bird_s_eye_views.txt · Last modified: 2013/11/22 13:32