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:
2026-05-29 10:13:30 +02:00
parent 2f6d6c405f
commit 30bbb37bff
+6 -1
View File
@@ -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í
// 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) {
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.
dive_zoom_ = std::lerp(1.0F, D::ZOOM_MAX, EASED);