View: the INI viewangle is the HORIZONTAL field -- authentic 60x47 frustum (task #55)
Community reports said the camera looked too far back and the cockpit frames were never this revealed; the user's hypothesis (our projection widens the view) was exactly right. The original Tesla projection call, preserved in a comment at DPLRenderer::SetView, is dpl_SetViewProjection(view, -1, -aspect, +1, +aspect, 1/tan(viewangle/2)) i.e. BTDPL.INI's viewangle=60.0 is the HORIZONTAL field of view with the vertical derived by aspect: the pod's frustum was 60 x 46.8 deg at 4:3. The port fed the 60 to D3DXMatrixPerspectiveFovRH as the VERTICAL fov -> 75 x 60 at 4:3 (worse on widescreen): the world rendered ~25% farther away and far more canopy was visible than the pod ever showed. Fix: BTFovYFromHorizontal(viewangle, aspect) at all five projection sites (main, per-frame resize, sky pass, WM_SIZE rebuild, fallback) -- the horizontal field stays the authentic 60 deg at any window shape. The aim boresight reads the live projection (gBTAimP22) and adapts; combat re-verified (kill chain, no NaN). Cockpits now show the frames at the pod's framing: viewports dominant, frames at the periphery. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Fable 5
parent
96b8892e7c
commit
27959990ea
@@ -147,6 +147,19 @@ Raptor / Firestarter / Blackjack have `_COP` meshes, SKLs and gauge configs but
|
||||
names: `avatar bhk1 loki madcat owens sunder thor vulture` (+ variants ava1/lok1/lok2/mad1/mad2/
|
||||
own1/snd1/thr1/vul1/blkhawk).
|
||||
|
||||
## The authentic view field (FOV) — viewangle is HORIZONTAL [T1]
|
||||
|
||||
`BTDPL.INI [dpl_defaults] viewangle=60.0` is the **horizontal** field of view: the original Tesla
|
||||
call (preserved in the DPLRenderer::SetView comment, L4VIDEO.cpp) is
|
||||
`dpl_SetViewProjection(view, -1, -aspect, +1, +aspect, 1/tan(viewangle/2))` — horizontal
|
||||
half-extent 1.0, vertical scaled by aspect. Authentic frustum at 4:3 = **60° × 46.8°**. The
|
||||
port had fed the 60 to D3DX as the VERTICAL fov (75° × 60° at 4:3, worse on widescreen) — the
|
||||
world read ~25% farther away ("camera too far back" reports) and the canopy frames were
|
||||
massively over-revealed. Fixed (`BTFovYFromHorizontal`, all 5 projection sites incl. sky +
|
||||
resize): the horizontal field stays 60° at any window shape. The aim/pick feed reads the live
|
||||
projection (`gBTAimP22`) so targeting adapts automatically (combat re-verified). Credit: a
|
||||
user-community report ("frames were never this revealed") + the resolution/FOV hypothesis.
|
||||
|
||||
## Diagnostics / env gates
|
||||
|
||||
`BT_FORCE_MODEL=<name>` (force the player mech: madcat/owens/sunder/…; btl4mssn.cpp),
|
||||
|
||||
Reference in New Issue
Block a user