MCPcopy Create free account
hub / github.com/GarageGames/Torque3D / setShaderParams

Method setShaderParams

Engine/source/environment/waterObject.cpp:918–1050  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

916}
917
918void WaterObject::setShaderParams( SceneRenderState *state, BaseMatInstance *mat, const WaterMatParams &paramHandles )
919{
920 MaterialParameters* matParams = mat->getMaterialParameters();
921
922 matParams->setSafe( paramHandles.mElapsedTimeSC, (F32)Sim::getCurrentTime() / 1000.0f );
923
924 // set vertex shader constants
925 //-----------------------------------
926
927 Point2F reflectTexSize( mPlaneReflector.reflectTex.getWidth(), mPlaneReflector.reflectTex.getHeight() );
928 matParams->setSafe( paramHandles.mReflectTexSizeSC, reflectTexSize );
929
930 static AlignedArray<Point2F> mConstArray( MAX_WAVES, sizeof( Point4F ) );
931
932 // Ripples...
933
934 for ( U32 i = 0; i < MAX_WAVES; i++ )
935 mConstArray[i].set( -mRippleDir[i].x, -mRippleDir[i].y );
936 matParams->setSafe( paramHandles.mRippleDirSC, mConstArray );
937
938 Point3F rippleSpeed( mRippleSpeed[0], mRippleSpeed[1], mRippleSpeed[2] );
939 matParams->setSafe( paramHandles.mRippleSpeedSC, rippleSpeed );
940
941 Point4F rippleMagnitude( mRippleMagnitude[0],
942 mRippleMagnitude[1],
943 mRippleMagnitude[2],
944 mOverallRippleMagnitude );
945 matParams->setSafe( paramHandles.mRippleMagnitudeSC, rippleMagnitude );
946
947 for ( U32 i = 0; i < MAX_WAVES; i++ )
948 {
949 Point2F texScale = mRippleTexScale[i];
950 if ( texScale.x > 0.0 )
951 texScale.x = 1.0 / texScale.x;
952 if ( texScale.y > 0.0 )
953 texScale.y = 1.0 / texScale.y;
954
955 mConstArray[i].set( texScale.x, texScale.y );
956 }
957 matParams->setSafe(paramHandles.mRippleTexScaleSC, mConstArray);
958
959 static AlignedArray<Point4F> mConstArray4F( 3, sizeof( Point4F ) );
960
961 F32 angle, cosine, sine;
962
963 for ( U32 i = 0; i < MAX_WAVES; i++ )
964 {
965 angle = mAtan2( mRippleDir[i].x, -mRippleDir[i].y );
966 cosine = mCos( angle );
967 sine = mSin( angle );
968
969 mConstArray4F[i].set( cosine, sine, -sine, cosine );
970 matParams->setSafe( paramHandles.mRippleMatSC, mConstArray4F );
971 }
972
973 // Waves...
974
975 for ( U32 i = 0; i < MAX_WAVES; i++ )

Callers

nothing calls this directly

Calls 15

mAtan2Function · 0.85
mCosFunction · 0.85
mSinFunction · 0.85
getFarPlaneMethod · 0.80
getSpecialLightMethod · 0.80
getBrightnessMethod · 0.80
getCurrentTimeFunction · 0.50
getMaterialParametersMethod · 0.45
setSafeMethod · 0.45
getWidthMethod · 0.45
getHeightMethod · 0.45
setMethod · 0.45

Tested by

no test coverage detected