This might be a little dirty but it works for me, you stack them one around the other float3 rotateVectorAboutX(float angle, float3 vec){ angle = radians(angle); float3x3 rotationMatrix ={float3(1.0,0.0,0.0), float3(0.0,cos(angle),-sin(angle)), float3(0.0,sin(angle),cos(angle))}; return mul(vec, rotationMatrix);}float3…