main: move projection scaling to CPU-side code

This commit is contained in:
Zack Buhman 2026-04-30 19:27:24 -05:00
parent 9137cba3b4
commit e1db1bc978
3 changed files with 3 additions and 3 deletions

View File

@ -94,7 +94,7 @@ float4 getView(float4x4 view, float4 position)
float4 getProjection(float4x4 projection, float4 viewPosition) float4 getProjection(float4x4 projection, float4 viewPosition)
{ {
return mul(projection, viewPosition) * float4(-1, -1, 1, 1); return mul(projection, viewPosition);
} }
float2 yf(float2 v) float2 yf(float2 v)

View File

@ -44,7 +44,7 @@ VSOutput VSMain(VSInput input)
{ {
VSOutput output = (VSOutput)0; VSOutput output = (VSOutput)0;
float4 Position = float4(input.Position.xyz + input.BlockPosition, 1.0); float4 Position = float4(input.Position.xyz + input.BlockPosition, 1.0);
output.Position = mul(Scene.Projection, mul(Scene.View, Position.xzyw)) * float4(-1, -1, 1, 1); output.Position = mul(Scene.Projection, mul(Scene.View, Position.xzyw));
float2 textureOffset = float2(input.TextureID % 8, input.TextureID / 8) * 16; float2 textureOffset = float2(input.TextureID % 8, input.TextureID / 8) * 16;
output.Texture = float4(yf(input.Texture.xy, 16), textureOffset); output.Texture = float4(yf(input.Texture.xy, 16), textureOffset);

View File

@ -79,7 +79,7 @@ XMMATRIX currentProjection()
float near_z = 0.1; float near_z = 0.1;
float far_z = 1000.0; float far_z = 1000.0;
XMMATRIX projection = XMMatrixPerspectiveFovLH(fov_angle_y, aspect_ratio, near_z, far_z); XMMATRIX projection = XMMatrixPerspectiveFovLH(fov_angle_y, aspect_ratio, near_z, far_z);
return projection; return projection * XMMatrixScaling(-1, -1, 1);
} }
XMMATRIX currentView(collada::instance_types::node const & camera_node, XMMATRIX currentView(collada::instance_types::node const & camera_node,