float zoom = ...; // ズーム倍率
float2 camera_pos = ...; // カメラ位置(左上)
float2 camera_target = ...; // カメラ注視点
const float2 camera_center = camera_target - camera_pos;
const float2 camera_offset = camera_center - (camera_center * zoom); // スケーリングの中心を注視点に持って行ったときのオフセット
const float2 zoomed_camera_pos = camera_pos + camera_offset; // ズーム後のカメラ位置- 拡大縮小は左上を中心にして行われるが、ズームは注視点を中心に行う
- 合ってる?