MCPcopy Create free account
hub / github.com/TorqueGameEngines/Torque3D / _render

Method _render

Engine/source/environment/scatterSky.cpp:1013–1097  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1011}
1012
1013void ScatterSky::_render( ObjectRenderInst *ri, SceneRenderState *state, BaseMatInstance *overrideMat )
1014{
1015 if ( overrideMat || (!mShader && !_initShader()) )
1016 return;
1017
1018 GFXTransformSaver saver;
1019
1020 if ( mVB.isNull() || mPrimBuffer.isNull() )
1021 _initVBIB();
1022
1023 GFX->setShader( mShader );
1024 GFX->setShaderConstBuffer( mShaderConsts );
1025
1026 Point4F sphereRadii( mSphereOuterRadius, mSphereOuterRadius * mSphereOuterRadius,
1027 mSphereInnerRadius, mSphereInnerRadius * mSphereInnerRadius );
1028
1029 Point4F scatteringCoeffs( mRayleighScattering * mSkyBrightness, mRayleighScattering4PI,
1030 mMieScattering * mSkyBrightness, mMieScattering4PI );
1031
1032 Point4F invWavelength( 1.0f / mWavelength4[0],
1033 1.0f / mWavelength4[1],
1034 1.0f / mWavelength4[2], 1.0f );
1035
1036 Point3F camPos( 0, 0, smViewerHeight );
1037 Point4F miscParams( camPos.z, camPos.z * camPos.z, mScale, mScale / mRayleighScaleDepth );
1038
1039 Frustum frust = state->getCameraFrustum();
1040 frust.setFarDist( smEarthRadius + smAtmosphereRadius );
1041 MatrixF proj( true );
1042 frust.getProjectionMatrix( &proj );
1043
1044 Point3F camPos2 = state->getCameraPosition();
1045 MatrixF xfm(true);
1046 xfm.setPosition(Point3F(
1047 camPos2.x,
1048 camPos2.y,
1049 mZOffset) );
1050
1051 GFX->multWorld(xfm);
1052
1053 MatrixF xform(proj);//GFX->getProjectionMatrix());
1054 xform *= GFX->getViewMatrix();
1055 xform *= GFX->getWorldMatrix();
1056
1057 mShaderConsts->setSafe( mModelViewProjSC, xform );
1058 mShaderConsts->setSafe( mMiscSC, miscParams );
1059 mShaderConsts->setSafe( mSphereRadiiSC, sphereRadii );
1060 mShaderConsts->setSafe( mScatteringCoefficientsSC, scatteringCoeffs );
1061 mShaderConsts->setSafe( mCamPosSC, camPos );
1062 mShaderConsts->setSafe( mLightDirSC, mLightDir );
1063 mShaderConsts->setSafe( mSunDirSC, mSunDir );
1064 mShaderConsts->setSafe( mNightColorSC, mNightColor );
1065 mShaderConsts->setSafe( mInverseWavelengthSC, invWavelength );
1066 mShaderConsts->setSafe( mNightInterpolantAndExposureSC, Point2F( mExposure, mNightInterpolant ) );
1067 mShaderConsts->setSafe( mColorizeSC, mColorize*mColorizeAmt );
1068
1069 if ( GFXDevice::getWireframe() )
1070 {

Callers

nothing calls this directly

Calls 15

setShaderConstBufferMethod · 0.80
setFarDistMethod · 0.80
getProjectionMatrixMethod · 0.80
multWorldMethod · 0.80
getDescMethod · 0.80
setFillModeWireframeMethod · 0.80
setStateBlockByDescMethod · 0.80
createMapMethod · 0.80
setCubeTextureMethod · 0.80
setPrimitiveBufferMethod · 0.80
setVertexBufferMethod · 0.80
Point3FClass · 0.50

Tested by

no test coverage detected