Shader error: incorrect number of arguments to numeric-type constructor

Here’s the line with the error:

float3 normalDirection = normalize(float3(
               mul(float4(input.normal, 0.0), modelMatrixInverse)));

I have no clue about anything shader related, I’m just trying to fix a broken asset from the asset store. If you guys could fix this one line for me or explain what’s wrong that’d be awesome. Thanks.

mul(float4(input.normal, 0.0), modelMatrixInverse)

Assuming ModelMatrixInverse is a 4x4 matrix, the result of this operation is a float4. You cannot pass a float4 as a parameter to a float3() function.

Normals are direction vectors, you don’t want to apply translation to them. Using a 3x3 matrix is also faster
Try this:
float3 normalDirection = normalize( mul(input.normal, (float3x3) modelMatrixInverse));