3d场景下摄影机如何摆放和设置才能把场景显示到屏幕上,研究了很久摸不着头脑,希望能讲解下createPerspective 和lookAt ,虽然自己乱碰也能正常显示,但是视角很奇怪,如何根据场景做定量的摄影机设置,各位大神讲解一下啊。
自己试验的代码,能显示但是不知道如何控制位置把场景显示到屏幕窗口的下方,希望给指导下
std::string fileName = “models/changing.c3b”;
auto sprite3 = Sprite3D::create(fileName);
auto s = Director::getInstance()->getWinSize();
sprite3->setPosition3D(Vertex3F(0, 0,s.height));
this->addChild(sprite3);
auto camera =Camera::createPerspective(60, (GLfloat)s.width/s.height, 100, -200);
camera->setCameraFlag(CameraFlag::USER1);
camera->setPosition3D(Vec3(0, 500, 600) + sprite3->getPosition3D());
camera->lookAt(Vec3(0, 300, 100)+sprite3->getPosition3D(), Vec3(0,1,0));
this->addChild(camera);
this->setCameraMask((unsigned short )CameraFlag::USER1);
代码中用到的模型是FantasyWarrior3D 例子里面的,https://github.com/chukong/FantasyWarrior3D 可以下载到