@@ -293,12 +293,14 @@ int main(int argc, char** argv)
293293 std::cout << " \t Sensor Type is not valid" << std::endl;
294294 return false ;
295295 }
296-
296+
297297 outSensorData.samplesNeeded = sensor.sampler .sampleCount ;
298298 outSensorData.staticCamera = smgr->addCameraSceneNode (nullptr );
299299 outSensorData.interactiveCamera = smgr->addCameraSceneNodeModifiedMaya (nullptr , -400 .0f , 20 .0f , 200 .0f , -1 , 2 .0f , 1 .0f , false , true );
300300 auto & staticCamera = outSensorData.staticCamera ;
301301 auto & interactiveCamera = outSensorData.interactiveCamera ;
302+
303+ std::cout << " \t SamplesPerPixelNeeded = " << outSensorData.samplesNeeded << std::endl;
302304
303305 // need to extract individual components
304306 {
@@ -416,9 +418,17 @@ int main(int argc, char** argv)
416418 std::cout << " New Injected Sensors[0] = " << std::endl;
417419 SensorData newSensor = {};
418420 extractSensorData (newSensor, globalMeta->m_global .m_sensors [0 ]);
419- newSensor.staticCamera ->setPosition (core::vector3df (0 .0f ,0 .0f ,0 .0f ));
421+ newSensor.staticCamera ->setPosition (core::vector3df (0 .0f ,2 .0f ,0 .0f ));
422+ newSensor.staticCamera ->setTarget (core::vector3df (-0 .900177f , 2 .0f , -0 .435524f ));
423+ core::vectorSIMDf UpVector (0 .0f , 1 .0f , 0 .0f );
424+ newSensor.staticCamera ->setUpVector (UpVector);
425+ newSensor.staticCamera ->render (); // It's not actually "render" :| It's basically recomputeViewMatrix ;
426+
420427 newSensor.resetInteractiveCamera ();
421428 sensors.push_back (newSensor);
429+
430+ sensors[0 ].samplesNeeded = 4u ;
431+ sensors[1 ].samplesNeeded = 4u ;
422432#endif
423433
424434 auto driver = device->getVideoDriver ();
@@ -482,6 +492,7 @@ int main(int argc, char** argv)
482492 bool needsReinit = (activeSensor == -1 ) || (sensors[activeSensor].width != sensors[index].width ) || (sensors[activeSensor].height != sensors[index].height ); // should be >= or != ?
483493 activeSensor = index;
484494
495+ renderer->resetSampleAndFrameCounters ();
485496 if (needsReinit)
486497 {
487498 renderer->deinitScreenSizedResources ();
@@ -521,7 +532,7 @@ int main(int argc, char** argv)
521532 }
522533
523534 driver->beginScene (false , false );
524-
535+
525536 renderer->render (device->getTimer ());
526537
527538 auto oldVP = driver->getViewPort ();
@@ -556,18 +567,20 @@ int main(int argc, char** argv)
556567 {
557568 const auto & sensorData = sensors[s];
558569
559- std::cout << " -- Rendering " << filePath << " (Sensor=" << s << " ) to file..." << std::endl;
560- smgr->setActiveCamera (sensorData.staticCamera );
570+ std::cout << " -- Rendering " << filePath << " , Sensor = " << s << " to file." << std::endl;
561571
562572 bool needsReinit = (prevWidth != sensorData.width ) || (prevHeight != sensorData.height ); // >= or !=
563573 prevWidth = sensorData.width ;
564574 prevHeight = sensorData.height ;
565-
575+
576+ renderer->resetSampleAndFrameCounters (); // so that renderer->getTotalSamplesPerPixelComputed is 0 at the very beginning
566577 if (needsReinit)
567578 {
568579 renderer->deinitScreenSizedResources ();
569580 renderer->initScreenSizedResources (sensorData.width , sensorData.height , std::move (sampleSequence));
570581 }
582+
583+ smgr->setActiveCamera (sensorData.staticCamera );
571584
572585 const uint32_t samplesPerPixelPerDispatch = renderer->getSamplesPerPixelPerDispatch ();
573586 const uint32_t maxNeededIterations = (sensorData.samplesNeeded + samplesPerPixelPerDispatch - 1 ) / samplesPerPixelPerDispatch;
0 commit comments