fix(demo): el dive movia només la posició de la càmera i s'invertia el forward; ara mou posició i target alhora
This commit is contained in:
@@ -497,8 +497,13 @@ void TitleScene::updateDemoDiveState(float delta_time) {
|
|||||||
|
|
||||||
// Càmera 3D real cap a +Z: starfield i naus es projecten amb la càmera, així
|
// Càmera 3D real cap a +Z: starfield i naus es projecten amb la càmera, així
|
||||||
// que les estrelles es rasguen i les naus creixen i s'escapen pels costats.
|
// que les estrelles es rasguen i les naus creixen i s'escapen pels costats.
|
||||||
|
// IMPORTANT: cal moure posició I target alhora; si només es mou la posició,
|
||||||
|
// forward = (target - position) s'inverteix en passar el target i la càmera
|
||||||
|
// gira cap enrere (tot apareix invertit i mirant a l'espectador).
|
||||||
if (camera_ != nullptr) {
|
if (camera_ != nullptr) {
|
||||||
camera_->setPosition(Vec3{.x = 0.0F, .y = 0.0F, .z = EASED * D::CAMERA_DISTANCE});
|
const float Z = EASED * D::CAMERA_DISTANCE;
|
||||||
|
camera_->setPosition(Vec3{.x = 0.0F, .y = 0.0F, .z = Z});
|
||||||
|
camera_->setTarget(Vec3{.x = 0.0F, .y = 0.0F, .z = Z + 1.0F});
|
||||||
}
|
}
|
||||||
// Logo i peu són 2D: els fakegem el dive amb un zoom des del centre.
|
// Logo i peu són 2D: els fakegem el dive amb un zoom des del centre.
|
||||||
dive_zoom_ = std::lerp(1.0F, D::ZOOM_MAX, EASED);
|
dive_zoom_ = std::lerp(1.0F, D::ZOOM_MAX, EASED);
|
||||||
|
|||||||
Reference in New Issue
Block a user