![]() ![]() Thus efficient and simpler technics for 3D modeling are possible with DF objects and ArtMatic Engine provides hundreds of functions designed for DF modeling.ĪrtMatic trees need certain properties to work as DF objects: Any 2D or 3D scalar function can be interpreted as a distance field as long as the field value provides a good distance approximation to the function zero crossing (the surface). That makes morphing and combination of very different types of objects quite easy. This representation is non-local and independent of a particular topology. Animating these transformations can create fascinating object morphs that would be very difficult to create with more traditional 3D tools.ĭF fields provides an unified representation for very different types of objects, a tree, a fractal, a building, a sphere. DF fields can be used as the input coordinates for another DF field calculation.ĭFRM is useful not just because of its computational efficiency, but because very simple operations can be used to create complex and interesting shapes. DF fields can be combined using boolean operators DF fields can be distorted by space distortion functions DF fields can be blended or morphed together This property is quite interesting as a simple offset of the field value will expand or shrink the object.ĭF fields can be manipulated in many ways impossible (or very difficult) with polygonal descriptions: This non-locality (field exist everywhere in space) makes the object information expand way beyond its boundaries. Scalar fields are non-directional (unlike vector fields) and non-local. One can see a distance field as a special kind of 'scalar field'. The field exist everywhere in space which makes DF objects non-local unlike with classical polygonal description. With the sphere the convergence can be done in a single step as the DF field R-length(x,y,z) gives you the exact distance to the solution. The minus sign is needed to adjust the field values so that the field is negative outside the sphere and positive inside. The field is described by this equation: R - sqrt( x^2 + y^2 + z^2) ( or R-length(x,y,z), 'length' being the euclidian distance) which comes from the sphere equation: x2 + y2 + z2 = R with R being the radius of the sphere. What is remarkable (and unique) is that the sphere equation is its own distance field equation. The simplest 3D distance field is a sphere. ![]() Thus you can directly use - y for example to create a DF infinite flat ground where y0 defines a flat ground plane. A 1D distance field is simply x or y or z provided they are unscaled. ArtMatic's Geographic Clut color shader is useful for visualizing distance fields as its colors indicate distances.Ī distance field can be 2D or even 1D. A value less than zero indicates a point outside of the object. A value greater than 0 indicates a point inside the object with the field value indicating the distance from the surface. The object surface is those places where the distance is 0, that is the 'zero crossing' of the field. Underestimation won't impair the ability to converge to the correct solution but the convergence will be slower.Ī distance field function takes a space or plane coordinates and calculates an estimate of the distance from that point to the object surface. If the distance estimate deviates too much from the true distance the ray will miss the object (overshoot) if it overestimates that distance. The distance field does not have to be mathematically exact to allow proper convergence, but the more exact the distance estimate is, the faster the convergence will be. ![]() This is because the DF (read Distance Field) itself gives some information about the distance to the surface which allows the sampling to be much more efficient by converging quickly to the surface.Ī distance field is just a scalar field where the value of the field gives a good (or exact) approximation of the distance to the surface. Ray Marching is needed when the mathematics that describe the object are too complex to find intersections analytically, typically when the object is an entire procedural planet or generative infinite City like in Voyager case.īy using distance fields Voyager can find the intersection of the ray with the surface of 3D object much more quickly than using the brute force technic of ray marching. It is a slow process as the object or terrain have to be sampled many times to know where the ray intersects the object. Ray marching essentially calculates the intersection of the possible light rays between the observer and the scene by sampling along the ray. ![]()
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |