14
14
#include " nbl/ext/MitsubaLoader/CMitsubaLoader.h"
15
15
#include " CommandLineHandler.hpp"
16
16
17
+ #include " CSceneNodeAnimatorCameraModifiedMaya.h"
17
18
#include " Renderer.h"
18
19
19
20
@@ -204,7 +205,7 @@ int main(int argc, char** argv)
204
205
auto up = tpose.rows [1 ];
205
206
core::vectorSIMDf view = tpose.rows [2 ];
206
207
auto target = view+pos;
207
-
208
+
208
209
camera->setTarget (target.getAsVector3df ());
209
210
if (core::dot (core::normalize (core::cross (camera->getUpVector (),view)),core::cross (up,view)).x <0 .99f )
210
211
camera->setUpVector (up);
@@ -278,11 +279,14 @@ int main(int argc, char** argv)
278
279
camera->setNearValue (20 .f );
279
280
camera->setFarValue (5000 .f );
280
281
}
281
-
282
+
283
+ auto modifiedMayaAnim = reinterpret_cast <scene::CSceneNodeAnimatorCameraModifiedMaya*>(camera->getAnimators ()[0 ]);
284
+ core::vectorSIMDf cameraPos; cameraPos.set (camera->getPosition ());
285
+ core::vectorSIMDf cameraTarget; cameraTarget.set (camera->getTarget ());
286
+ modifiedMayaAnim->setZoomAndRotationBasedOnTargetAndPosition (cameraPos, cameraTarget);
282
287
283
288
auto driver = device->getVideoDriver ();
284
289
285
-
286
290
core::smart_refctd_ptr<Renderer> renderer = core::make_smart_refctd_ptr<Renderer>(driver,device->getAssetManager (),smgr);
287
291
constexpr uint32_t MaxSamples = MAX_ACCUMULATED_SAMPLES;
288
292
auto sampleSequence = core::make_smart_refctd_ptr<asset::ICPUBuffer>(sizeof (uint32_t )*MaxSamples*Renderer::MaxDimensions);
@@ -330,12 +334,10 @@ int main(int argc, char** argv)
330
334
331
335
renderer->init (meshes, std::move (sampleSequence));
332
336
meshes = {}; // free memory
333
-
334
337
335
338
auto extent = renderer->getSceneBound ().getExtent ();
336
339
smgr->setActiveCamera (camera);
337
340
338
-
339
341
QToQuitEventReceiver receiver;
340
342
device->setEventReceiver (&receiver);
341
343
@@ -345,7 +347,11 @@ int main(int argc, char** argv)
345
347
{
346
348
driver->beginScene (false , false );
347
349
350
+ std::cout << " Camera Position Before Render: (" << camera->getPosition ().X << " ," << camera->getPosition ().Y << " ," << camera->getPosition ().Z << " )" << std::endl;
351
+ std::cout << " Target Before Render: (" << camera->getTarget ().X << " ," << camera->getTarget ().Y << " ," << camera->getTarget ().Z << " )" << std::endl;
348
352
renderer->render (device->getTimer ());
353
+ std::cout << " Camera Position After Render: (" << camera->getPosition ().X << " ," << camera->getPosition ().Y << " ," << camera->getPosition ().Z << " )" << std::endl;
354
+ std::cout << " Target After Render: (" << camera->getTarget ().X << " ," << camera->getTarget ().Y << " ," << camera->getTarget ().Z << " )" << std::endl;
349
355
350
356
auto oldVP = driver->getViewPort ();
351
357
driver->blitRenderTargets (renderer->getColorBuffer (),nullptr ,false ,false ,{},{},true );
0 commit comments