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

Method renderObject

Engine/source/environment/cloudLayer.cpp:329–386  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

327}
328
329void CloudLayer::renderObject( ObjectRenderInst *ri, SceneRenderState *state, BaseMatInstance *mi )
330{
331 GFXTransformSaver saver;
332
333 const Point3F &camPos = state->getCameraPosition();
334 MatrixF xfm(true);
335 xfm.setPosition(camPos);
336 GFX->multWorld(xfm);
337
338 if ( state->isReflectPass() )
339 GFX->setProjectionMatrix( state->getSceneManager()->getNonClipProjection() );
340
341 GFX->setShader( mShader );
342 GFX->setShaderConstBuffer( mShaderConsts );
343 GFX->setStateBlock( mStateblock );
344
345 // Set all the shader consts...
346
347 MatrixF xform(GFX->getProjectionMatrix());
348 xform *= GFX->getViewMatrix();
349 xform *= GFX->getWorldMatrix();
350
351 mShaderConsts->setSafe( mModelViewProjSC, xform );
352
353 mShaderConsts->setSafe( mEyePosWorldSC, camPos );
354
355 LightInfo *lightinfo = LIGHTMGR->getSpecialLight(LightManager::slSunLightType);
356 const ColorF &sunlight = state->getAmbientLightColor();
357
358 Point3F ambientColor( sunlight.red, sunlight.green, sunlight.blue );
359 mShaderConsts->setSafe( mAmbientColorSC, ambientColor );
360
361 const ColorF &sunColor = lightinfo->getColor();
362 Point3F data( sunColor.red, sunColor.green, sunColor.blue );
363 mShaderConsts->setSafe( mSunColorSC, data );
364
365 mShaderConsts->setSafe( mSunVecSC, lightinfo->getDirection() );
366
367 for ( U32 i = 0; i < TEX_COUNT; i++ )
368 mShaderConsts->setSafe( mTexOffsetSC[i], mTexOffset[i] );
369
370 Point3F scale( mTexScale[0], mTexScale[1], mTexScale[2] );
371 mShaderConsts->setSafe( mTexScaleSC, scale );
372
373 Point3F color;
374 color.set( mBaseColor.red, mBaseColor.green, mBaseColor.blue );
375 mShaderConsts->setSafe( mBaseColorSC, color );
376
377 mShaderConsts->setSafe( mCoverageSC, mCoverage );
378
379 mShaderConsts->setSafe( mExposureSC, mExposure );
380
381 GFX->setTexture( mNormalHeightMapSC->getSamplerRegister(), mTexture );
382 GFX->setVertexBuffer( mVB );
383 GFX->setPrimitiveBuffer( mPB );
384
385 GFX->drawIndexedPrimitive( GFXTriangleList, 0, 0, smVertCount, 0, smTriangleCount );
386}

Callers

nothing calls this directly

Calls 15

multWorldMethod · 0.80
isReflectPassMethod · 0.80
setProjectionMatrixMethod · 0.80
setShaderConstBufferMethod · 0.80
setStateBlockMethod · 0.80
getProjectionMatrixMethod · 0.80
getSpecialLightMethod · 0.80
setVertexBufferMethod · 0.80
setPrimitiveBufferMethod · 0.80
setPositionMethod · 0.45
getSceneManagerMethod · 0.45
setShaderMethod · 0.45

Tested by

no test coverage detected