So couldn’t I just get a vector between the camera and the object and see if the angle is less than the field of view?
That’s essentially culling the object’s bounding sphere to the frustum’s bounding cone. Note that the “field of view” has to be for the diagonal, i.e. the angle between an edge of the frustum (a corner of the viewport) and the forward direction. If you use the horizontal or vertical field of view, you’ll end up culling objects which are in fact visible.
Given that the frustum’s bounding cone is typically much larger (in terms of solid angle) than the frustum itself, particularly for wide-screen aspect ratios, this approach will still include a significant proportion of objects which aren’t visible (primarily those immediately above or below the view frustum).
Culling the object’s bounding sphere against the frustum itself isn’t significantly more expensive and has fewer false negatives (i.e. objects which aren’t culled are more likely to actually be visible).
So I could do this if I calculate these two equations:
sin(fov / 2) * 2 = ((sin(wa / 2) * 2) ^ 2 + (sin(ha / 2) * 2) ^ 2) ^ .5 aspect = (2 * sin(wa / 2)) / (2 * sin(ha / 2))
I’m sure I can solve this.