Files
cell/shaders/ps1.vert.hlsl
2025-01-09 23:20:18 -06:00

49 lines
1.3 KiB
HLSL

#include "common/vertex.hlsl"
struct VSInput
{
float3 position : POSITION;
float2 texcoord : TEXCOORD0;
};
struct VSOutput
{
float4 position : SV_POSITION;
float2 texcoord : TEXCOORD0;
};
output vertex(output i)
{
return i;
}
/*
VSOutput mainVS(VSInput input)
{
VSOutput output;
// Standard transform
float4 worldPos = mul(float4(input.position, 1.0), gWorldViewProj);
// Simulate wobble by snapping coordinates to a lower precision grid.
// For a PS1-style effect, we can quantize the projected coordinates.
// For instance, if wobbleIntensity is something small like 1.0 or 0.5,
// multiply, floor, and divide back:
float factor = 1.0 / wobbleIntensity;
worldPos.x = floor(worldPos.x * factor) / factor;
worldPos.y = floor(worldPos.y * factor) / factor;
worldPos.z = floor(worldPos.z * factor) / factor;
worldPos.w = floor(worldPos.w * factor) / factor;
// Output position
output.position = worldPos;
// Pass through texture coordinate as-is.
// We do not do perspective correction here intentionally (PS1 didn't).
// PS1 essentially did affine mapping in screen space. To simulate this,
// we can just pass the original texcoords and let the pixel shader
// treat them linearly.
output.texcoord = input.texcoord;
return output;
}
*/