![Smile :)](./images/smilies/icon_smile.gif)
here for download:
http://gdlib.net/index.php?name=Downloa ... ails&id=64
grass is now generated from a bitmap
Code: Select all
424 CGrassPatchSceneNode.cpp [Warning] converting to `irr::u32' from `irr::f32'
439 CGrassPatchSceneNode.cpp [Warning] passing `float' for converting 2 of `irr::video::SColor::SColor(irr::s32, irr::s32, irr::s32, irr::s32)'
Code: Select all
CGrassPatchSceneNode.cpp [Warning] converting to `irr::u32' from `irr::f32'
Code: Select all
s32 x1 = (s32) xz.X;
s32 z1 = (s32) xz.Z;
Code: Select all
s32 x1 = floorf( xz.X );
s32 z1 = floorf( xz.Z );
Code: Select all
if ( x1 < 0 || z1 < 0 || x1 > TerrainHeightMap->getDimension().Width || z1 > TerrainHeightMap->getDimension().Height )
Code: Select all
if ( x1 < 0 || z1 < 0 || x1 > TerrainHeightMap->getDimension().Width - 1 || z1 > TerrainHeightMap->getDimension().Height - 1 )
Code: Select all
video::SColor c = TerrainHeightMap->getPixel(x1,z1);
height = c.getBlue()* Terrain->getScale().Y; // - ((rand() % 100) / 25.0f) + 2.0f;
Code: Select all
// do some bilinear interpolation to get the real height
f32 ay = TerrainHeightMap->getPixel(x1,z1).getBlue()* Terrain->getScale().Y;
f32 by = TerrainHeightMap->getPixel(x1+1,z1).getBlue()* Terrain->getScale().Y;
f32 cy = TerrainHeightMap->getPixel(x1,z1+1).getBlue()* Terrain->getScale().Y;
f32 dy = TerrainHeightMap->getPixel(x1+1,z1+1).getBlue()* Terrain->getScale().Y;
f32 u = xz.X - (f32)x1;
f32 v = xz.Z - (f32)z1;
height = ay*(1.0f-u)*(1.0f-v) + by*u*(1.0f-v) + cy*(1.0f-u)*v + dy*u*v;