Jump to content
  • Advertisement
Improved tall grass using the new generic random map.
© Caveman (C) 2000-2014 Rockland Software Productions
Image Tools

Improved tall grass using the new generic random map.

Norman Barrows
Sign in to follow this  

Improved tall grass using the new generic random map.


I tweaked the hue of the two grass textures used to make it a bit more bluegrass in color.


The basic spacing is still the same, at one grass plant every 5 feet (5 d3d units).


The grass plant meshes are unchanged: 8 quads, 4 in the center tilted out, and 4 tilted way out very near to the ground.


Everything else is controlled by the new "generic random map" in the game. I found a repeating need for 2d arrays of random values for things like what ground texture tile to draw, what scale a plant should be, etc. So i created a "generic random map", a 100x100 2d array of random integer values from 0 through 100. this map is generated once at game start. Functions / methods are then written that access the random map to return values. For example, the x,z location of a grass plant is modded by 100 to map to the 2d 100x100 array and return a value 0-100. this is then multiplied by a scaling factor (such as 0.02f) and then added to a base scaling value (such as 1.5f) to determine the final size of the plant at that location.


The generic random map is used by various functions to determine:
* grass plant scale
* grass plant texture
* grass plant jitter (offset from base location every 5 feet)
* grass plant rotation


The generic random map is also used for other parts of the game, such as the basis for a double interpolated heightmap for canyons.


But most of the game (rocks, trees, scrub plants, fruit trees, berry bushes, ground textures, etc) still uses the original four random "plant maps" in the game.


© Caveman (C) 2000-2014 Rockland Software Productions
Sign in to follow this  
From the album:


  • 68 images
  • 2 image comments

Recommended Comments

There are no comments to display.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Advertisement

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

GameDev.net is your game development community. Create an account for your GameDev Portfolio and participate in the largest developer community in the games industry.

Sign me up!