Update
This commit is contained in:
parent
8db8b687bf
commit
9cfc9e6d64
4 changed files with 7 additions and 4 deletions
|
@ -10,6 +10,8 @@ There are many methods and [algorithms](algorithm.md) for doing so differing in
|
|||
|
||||
As most existing 3D "frameworks" are harmful, a [LRS](lrs.md) programmer is likely to write his own 3D rendering system that suits his program best, therefore we should list some common methods of achieving 3D. Besides that, it's just pretty interesting to see what there is in the store.
|
||||
|
||||
**Rendering spectrum**: The book *Real-Time Rendering* mentions that methods for 3D rendering can be seen as lying on a spectrum, one extreme of which is *appearance reproduction* and the other *physics simulation*. Methods closer to trying to imitate the appearance try to simply create the same look of an object on the monitor that the actual 3D object would have -- these may e.g. use image data such as photographs; these methods may rely on lightfields, [textures](texture.md) etc. The physics simulation methods try to replicate the behavior of light in real life and so come to the same results: these methods rely on creating 3D geometry (e.g. that made of triangles or voxels), computing light reflections and [global illumination](global_illumination.md). Most methods lie somewhere in between these two extremes: for example [billboards](billboard.md) and [particle systems](particle_system.md) may use a texture to represent an object while at the same time using 3D quads (very simple 3D models) to correctly deform the textures by perspective and solve their visibility.
|
||||
|
||||
A table of some common 3D rendering methods follows, including the most simple, most advanced and some unconventional ones. Note that here we talk about methods and techniques rather than algorithms, i.e. general approaches that are often modified and combined into a specific rendering algorithm. For example the traditional triangle rasterization is sometimes combined with raytracing to add e.g. realistic reflections. The methods may also be further enriched with features such as [texturing](texture.md), [antialiasing](antialiasing.md) and so on. The table below should help you choose the base 3D rendering method for your specific program.
|
||||
|
||||
The methods may be tagged with the following:
|
||||
|
@ -31,7 +33,8 @@ The methods may be tagged with the following:
|
|||
|ellipsoid rasterization |*OO*, e.g. Ecstatica |
|
||||
|flat-shaded 1 point perspective |*OO 2.5D*, e.g. Skyroads |
|
||||
|reverse raytracing (photon tracing) |*OO off*, inefficient |
|
||||
|[image based rendering](ibr.md) |generating inbetween views |
|
||||
|[image based rendering](ibr.md) | generally using images as 3D data |
|
||||
|[light fields](light_field.md) |image-based, similar to holography |
|
||||
|[mode 7](mode7.md) |*IO 2.5D*, e.g. F-Zero |
|
||||
|[parallax scrolling](parallax.md) |*2.5D*, very primitive |
|
||||
|[pathtracing](pathtracing.md) |*IO off*, Monte Carlo, high realism |
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue