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

Method bakeProbe

Engine/source/renderInstance/renderProbeMgr.cpp:516–655  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

514 AdvancedLightBinManager::smUseLightFade = mRenderUseLightFade;
515}
516void RenderProbeMgr::bakeProbe(ReflectionProbe* probe)
517{
518 GFXDEBUGEVENT_SCOPE(RenderProbeMgr_Bake, ColorI::WHITE);
519
520 Con::warnf("RenderProbeMgr::bakeProbe() - Beginning bake!");
521 U32 startMSTime = Platform::getRealMilliseconds();
522
523 preBake();
524
525 String path = Con::getVariable("$pref::ReflectionProbes::CurrentLevelPath", "levels/");
526 U32 resolution = Con::getIntVariable("$pref::ReflectionProbes::BakeResolution", 64);
527 U32 prefilterMipLevels = mLog2(F32(resolution)) + 1;
528 bool renderWithProbes = Con::getIntVariable("$pref::ReflectionProbes::RenderWithProbes", false);
529
530 ReflectionProbe* clientProbe = nullptr;
531
532 if (probe->isServerObject())
533 clientProbe = static_cast<ReflectionProbe*>(probe->getClientObject());
534 else
535 return;
536
537 if (clientProbe == nullptr)
538 return;
539
540 String probePrefilterPath = clientProbe->getPrefilterMapPath();
541 String probeIrradPath = clientProbe->getIrradianceMapPath();
542
543 if (clientProbe->mReflectionModeType != ReflectionProbe::DynamicCubemap)
544 {
545 //Prep our bake path
546 if (probePrefilterPath.isEmpty() || probeIrradPath.isEmpty())
547 {
548 Con::errorf("RenderProbeMgr::bake() - Unable to bake our captures because probe doesn't have a path set");
549 return;
550 }
551 }
552
553 // Save the current transforms so we can restore
554 // it for child control rendering below.
555 GFXTransformSaver saver;
556
557 bool probeRenderState = RenderProbeMgr::smRenderReflectionProbes;
558
559 F32 farPlane = 1000.0f;
560
561 ReflectorDesc reflDesc;
562 reflDesc.texSize = resolution;
563 reflDesc.farDist = farPlane;
564 reflDesc.detailAdjust = (F32)resolution;
565 reflDesc.objectTypeMask = probe->mCaptureMask;
566
567 CubeReflector cubeRefl;
568 cubeRefl.registerReflector(probe, &reflDesc);
569
570 ReflectParams reflParams;
571
572 //need to get the query somehow. Likely do some sort of get function to fetch from the guiTSControl that's active
573 CameraQuery query; //need to get the last cameraQuery

Callers 2

bakeMethod · 0.80
renderProbeMgr.cppFile · 0.80

Calls 15

getVariableFunction · 0.85
getIntVariableFunction · 0.85
mLog2Function · 0.85
GenerateIrradianceMapFunction · 0.85
GeneratePrefilterMapFunction · 0.85
SaveCubeMapFunction · 0.85
isServerObjectMethod · 0.80
getClientObjectMethod · 0.80
getPrefilterMapPathMethod · 0.80
getIrradianceMapPathMethod · 0.80
getReflectFormatMethod · 0.80

Tested by

no test coverage detected