Beispiel #1
0
RenderPassManager::RenderPassManager()
{   
   mSceneManager = NULL;
   VECTOR_SET_ASSOCIATION( mRenderBins );

   mMatrixSet = reinterpret_cast<MatrixSet *>(dMalloc_aligned(sizeof(MatrixSet), 16));
   constructInPlace(mMatrixSet);
}
Beispiel #2
0
SkyBox::SkyBox()
{
   mTypeMask |= EnvironmentObjectType | StaticObjectType;
   mNetFlags.set(Ghostable | ScopeAlways);

   mMatName = "";
   mMatInstance = NULL;

   mIsVBDirty = false;
   mDrawBottom = true;
   mPrimCount = 0;
   mFogBandHeight = 0;

   mMatrixSet = reinterpret_cast<MatrixSet *>(dMalloc_aligned(sizeof(MatrixSet), 16));
   constructInPlace(mMatrixSet);

   mFogBandMat = NULL;
   mFogBandMatInst = NULL;
}
Beispiel #3
0
Sun::Sun()
{
   mNetFlags.set(Ghostable | ScopeAlways);
   mTypeMask = EnvironmentObjectType | LightObjectType | StaticObjectType;

   mLightColor.set(0.7f, 0.7f, 0.7f);
   mLightAmbient.set(0.3f, 0.3f, 0.3f);
   mBrightness = 1.0f;
   mSunAzimuth = 0.0f;
   mSunElevation = 35.0f;
   mCastShadows = true;
   mStaticRefreshFreq = 250;
   mDynamicRefreshFreq = 8;

   mAnimateSun = false;
   mTotalTime = 0.0f;
   mCurrTime = 0.0f;
   mStartAzimuth = 0.0f;
   mEndAzimuth = 0.0f;
   mStartElevation = 0.0f;
   mEndElevation = 0.0f;

   mLight = LightManager::createLightInfo();
   mLight->setType( LightInfo::Vector );

   mFlareData = NULL;
   mFlareState.clear();
   mFlareScale = 1.0f;

   mCoronaEnabled = true;
   mCoronaScale = 0.5f;
   mCoronaTint.set( 1.0f, 1.0f, 1.0f, 1.0f );
   mCoronaUseLightColor = true;
   mCoronaMatInst = NULL;

   mMatrixSet = reinterpret_cast<MatrixSet *>(dMalloc_aligned(sizeof(MatrixSet), 16));
   constructInPlace(mMatrixSet);

   mCoronaWorldRadius = 0.0f;
   mLightWorldPos = Point3F::Zero;
}
Beispiel #4
0
ScatterSky::ScatterSky()
{
   mPrimCount = 0;
   mVertCount = 0;


   // Rayleigh scattering constant.
   mRayleighScattering = 0.0035f;
   mRayleighScattering4PI = mRayleighScattering * 4.0f * M_PI_F;

   // Mie scattering constant.
   mMieScattering = 0.0045f;
   mMieScattering4PI = mMieScattering * 4.0f * M_PI_F;

   // Overall scatter scalar.
   mSkyBrightness = 25.0f;

   // The Mie phase asymmetry factor.
   mMiePhaseAssymetry = -0.75f;

   mSphereInnerRadius = 1.0f;
   mSphereOuterRadius = 1.0f * 1.025f;
   mScale = 1.0f / (mSphereOuterRadius - mSphereInnerRadius);

   // 650 nm for red
   // 570 nm for green
   // 475 nm for blue
   mWavelength.set( 0.650f, 0.570f, 0.475f, 0 );

   mWavelength4[0] = mPow(mWavelength[0], 4.0f);
   mWavelength4[1] = mPow(mWavelength[1], 4.0f);
   mWavelength4[2] = mPow(mWavelength[2], 4.0f);

   mRayleighScaleDepth = 0.25f;
   mMieScaleDepth = 0.1f;

   mAmbientColor.set( 0, 0, 0, 1.0f );
   mAmbientScale.set( 1.0f, 1.0f, 1.0f, 1.0f );

   mSunColor.set( 0, 0, 0, 1.0f );
   mSunScale = ColorF::WHITE;

   mFogColor.set( 0, 0, 0, 1.0f );
   mFogScale = ColorF::WHITE;

   mExposure = 1.0f;
   mNightInterpolant = 0;

   mShader = NULL;

   mTimeOfDay = 0;

   mSunAzimuth = 0.0f;
   mSunElevation = 35.0f;

   mMoonAzimuth = 0.0f;
   mMoonElevation = 45.0f;

   mBrightness = 1.0f;

   mCastShadows = true;
   mDirty = true;

   mLight = LightManager::createLightInfo();
   mLight->setType( LightInfo::Vector );

   mFlareData = NULL;
   mFlareState.clear();
   mFlareScale = 1.0f;

   mMoonEnabled = true;
   mMoonScale = 0.2f;
   mMoonTint.set( 0.192157f, 0.192157f, 0.192157f, 1.0f );
   MathUtils::getVectorFromAngles( mMoonLightDir, 0.0f, 45.0f );
   mMoonLightDir.normalize();
   mMoonLightDir = -mMoonLightDir;
   mNightCubemap = NULL;
   mNightColor.set( 0.0196078f, 0.0117647f, 0.109804f, 1.0f );
   mNightFogColor = mNightColor;
   mUseNightCubemap = false;
   mSunSize = 1.0f;

   mMoonMatInst = NULL;

   mNetFlags.set( Ghostable | ScopeAlways );
   mTypeMask |= EnvironmentObjectType | LightObjectType | StaticObjectType;

   _generateSkyPoints();

   mMatrixSet = reinterpret_cast<MatrixSet *>(dMalloc_aligned(sizeof(MatrixSet), 16));
   constructInPlace(mMatrixSet);

   mColorizeAmt = 0;
   mColorize.set(0,0,0);
}
Beispiel #5
0
WaterObject::WaterObject()
 : mViscosity( 1.0f ),
   mDensity( 1.0f ),
   mReflectivity( 0.5f ),
   mReflectNormalUp( true ),   
   mDistortStartDist( 0.1f ),
   mDistortEndDist( 20.0f ),
   mDistortFullDepth( 3.5f ),
   mUndulateMaxDist(50.0f),
   mOverallFoamOpacity( 1.0f ),
   mFoamMaxDepth( 2.0f ),
   mFoamAmbientLerp( 0.5f ),
   mFoamRippleInfluence( 0.05f ),
   mUnderwaterPostFx( NULL ),
   mLiquidType( "Water" ),
   mFresnelBias( 0.3f ),
   mFresnelPower( 6.0f ),
   mClarity( 0.5f ),
   mBasicLighting( false ),
   mMiscParamW( 0.0f ),
   mOverallWaveMagnitude( 1.0f ),
   mOverallRippleMagnitude( 0.1f ),
   mCubemap( NULL ),
   mSoundAmbience( NULL ),
   mSpecularPower( 48.0f ),
   mSpecularColor( 1.0f, 1.0f, 1.0f, 1.0f ),
   mDepthGradientMax( 50.0f ),
   mEmissive( false ),
   mUnderwaterColor(9, 6, 5, 240)
{
   mTypeMask = WaterObjectType | StaticObjectType;

   for( U32 i=0; i < MAX_WAVES; i++ )
   {
      mRippleDir[i].set( 0.0f, 0.0f );
      mRippleSpeed[i] = 0.0f;
      mRippleTexScale[i].set( 0.0f, 0.0f );

      mWaveDir[i].set( 0.0f, 0.0f );
      mWaveSpeed[i] = 0.0f;      
      mWaveMagnitude[i] = 0.0f;
   }

   for ( U32 i = 0; i < MAX_FOAM; i++ )
   {
      mFoamDir[i].set( 0.0f, 0.0f );
      mFoamSpeed[i] = 0.0f;
      mFoamTexScale[i].set( 0.0f, 0.0f );
      mFoamOpacity[i] = 0.0f;
   }   

   mFoamDir[0].set( 1, 0 );
   mFoamDir[1].set( 0, 1 );
   mFoamTexScale[0].set( 1, 1 );
   mFoamTexScale[1].set( 3, 3 );

   mRippleMagnitude[0] = 1.0f;
   mRippleMagnitude[1] = 1.0f;
   mRippleMagnitude[2] = 0.3f;

   mWaterFogData.density = 0.1f;
   mWaterFogData.densityOffset = 1.0f;     
   mWaterFogData.wetDepth = 1.5f;
   mWaterFogData.wetDarkening = 0.2f;
   mWaterFogData.color = ColorI::BLUE;

   mSurfMatName[WaterMat] = "WaterMat";
   mSurfMatName[UnderWaterMat] = "UnderWaterMat";
   mSurfMatName[BasicWaterMat] = "WaterBasicMat";   
   mSurfMatName[BasicUnderWaterMat] = "UnderWaterBasicMat";

   dMemset( mMatInstances, 0, sizeof(mMatInstances) );

   mWaterPos.set( 0,0,0 );
   mWaterPlane.set( mWaterPos, Point3F(0,0,1) );

   mGenerateVB = true;

   mMatrixSet = reinterpret_cast<MatrixSet *>(dMalloc_aligned(sizeof(MatrixSet), 16));
   constructInPlace(mMatrixSet);
}