ground plane zOffset feature

This commit is contained in:
Duion 2016-03-15 01:01:31 +01:00
parent 1ae043bc90
commit 3746093efd
2 changed files with 7 additions and 2 deletions

View file

@ -65,7 +65,8 @@ ConsoleDocClass( GroundPlane,
);
GroundPlane::GroundPlane()
: mSquareSize( 128.0f ),
: mZOffset (0.0f),
mSquareSize( 128.0f ),
mScaleU( 1.0f ),
mScaleV( 1.0f ),
mMaterial( NULL ),
@ -92,6 +93,7 @@ void GroundPlane::initPersistFields()
{
addGroup( "Plane" );
addField( "zOffset", TypeF32, Offset( mZOffset, GroundPlane ), "How high the ground plane should be" );
addField( "squareSize", TypeF32, Offset( mSquareSize, GroundPlane ), "Square size in meters to which %GroundPlane subdivides its geometry." );
addField( "scaleU", TypeF32, Offset( mScaleU, GroundPlane ), "Scale of texture repeat in the U direction." );
addField( "scaleV", TypeF32, Offset( mScaleV, GroundPlane ), "Scale of texture repeat in the V direction." );
@ -176,6 +178,7 @@ U32 GroundPlane::packUpdate( NetConnection* connection, U32 mask, BitStream* str
{
U32 retMask = Parent::packUpdate( connection, mask, stream );
stream->write( mZOffset );
stream->write( mSquareSize );
stream->write( mScaleU );
stream->write( mScaleV );
@ -188,6 +191,7 @@ void GroundPlane::unpackUpdate( NetConnection* connection, BitStream* stream )
{
Parent::unpackUpdate( connection, stream );
stream->read( &mZOffset );
stream->read( &mSquareSize );
stream->read( &mScaleU );
stream->read( &mScaleV );
@ -518,7 +522,7 @@ void GroundPlane::generateGrid( U32 width, U32 height, F32 squareSize,
{
vertices->point.x = x;
vertices->point.y = y;
vertices->point.z = 0.0;
vertices->point.z = ( mZOffset );
vertices->texCoord.x = ( x / squareSize ) * mScaleU;
vertices->texCoord.y = ( y / squareSize ) * -mScaleV;

View file

@ -97,6 +97,7 @@ private:
typedef GFXVertexBufferHandle< VertexType > VertexBuffer;
typedef GFXPrimitiveBufferHandle PrimitiveBuffer;
F32 mZOffset; ///< How high or low the ground plane should be.
F32 mSquareSize; ///< World units per grid cell edge.
F32 mScaleU; ///< Scale factor for U texture coordinates.
F32 mScaleV; ///< Scale factor for V texture coordinates.