Yesterday, I started looking into ray-tracing, and it seems that there are many algorithms for redering spheres and other common shapes. However, I want to be able to render an arbitrary 3D shape defined by an arbitrary multivariate function.
The problem seems to be in the ray intersection algorithm: if the equation of a shape is known, then the equation to solve for the intersection points of the shape and the ray can in a sense be "pre-computed" and then solved for at run time. If the equation of the shape is not known at compile-time, then the equation to solve for the intersections will have to be constructed at run-time. Thus, it appears that a symbolic algebra system must be in place for this to actually work, which seems a little overkill.
I know that I can just find the polygonal representation of the shape, but I don't want to do this; at that point I might as well do rasterization instead of ray-tracing. Is it at all possible to do ray-tracing with arbitary multivariate functions?
This question may be trivial, but I haven't found too much when researching this question, nor do I know enough about ray tracing yet to answer my own question. Thank you to all that answer.