master
Miloslav Ciz 9 months ago
parent 8db8b687bf
commit 9cfc9e6d64

@ -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 |

@ -5,7 +5,7 @@ In [3D](3d.md) [computer graphics](graphics.md) billboard is a flat image placed
There are two main types of billboards:
- Ones **rotating only about vertical axis**, i.e. billboards that change only their [yaw](yaw.md), they only face the camera in a top-down view of the scene. Such sprite may deform on the screen (when the camera is at different height level) just like 3D models do and when viewed completely from above will disappear completely. This may in some situations look better than other options (e.g. in [games](game.md) enemies won't appear lying on their back when seen from above).
- **Freely rotating** ones, i.e. ones that change all three [Euler angles](euler_angle.md) so that they ALWAYS face the camera from any possible angle. There may further be other two subtypes: billboards that align themselves with the camera's projection plane (they simply rotate themselves in the same way as the camera) which always end up on the screen as an undeformed and unrotated image, and billboards that face themselves towards the camera's position and copy the camera's [roll](roll.md) (though these may seem like two same things, they are not, for the latter we need to know the camera and billboard's positions, for the former we only need the camera's rotation). The former is simpler to implement and may also look better, so we normally don't even consider the latter.
- **Freely rotating** ones, i.e. ones that change all three [Euler angles](euler_angle.md) so that they ALWAYS face the camera from any possible angle. There may further be other two subtypes: billboards that align themselves with the camera's projection plane (they simply rotate themselves in the same way as the camera) which always end up on the screen as an undeformed and unrotated image, and billboards that face themselves towards the camera's position and copy the camera's [roll](roll.md) (though these may seem like two same things, they are not, for the latter we need to know the camera and billboard's positions, for the former we only need the camera's rotation). For simplicity we usually choose to implement the former, though the latter may result in look closer to that which would be produced by an actual 3D model of the object (e.g. a sphere projected to an ellipse by perspective).
Some billboards also choose their image based on from what angle they're viewed (e.g. an enemy in a game viewed from the front will use a different image than when viewed from the side, as seen e.g. in [Doom](doom.md)). Also some billboards intentionally don't scale and keep the same size on the screen, for example health bars in some games.

@ -2,7 +2,7 @@
*[Love](love.md) everyone, help [selflessly](selflessness.md).*
Welcome to [Less Retarded Wiki](lrs_wiki.md), an [encyclopedia](encyclopedia.md) only I can edit. But you can [fork](fork.md) it, it is [public domain](public_domain.md) under [CC0](cc0.md) (see [wiki rights](wiki_rights.md)) :) Holy [shit](shit.md), I'm gonna get [cancelled](cancel_culture.md) hard as soon as [SJWs](sjw.md) find out about this. Until then, let's enjoy the ride. THERE IS NO [MODERATION](moderation.md), I can do whatever I want here lol. I love this. INB4 "[hate speech](hate_speech.md)" website { [LMAO](lmao.md) [codeberg](codeberg.md) has already banned it. [Wikipedia](wikipedia.md) also banned me for "opinions expressed on my website". ~drummyfish } CONGRATULATIONS, you have discovered the one true, undistorted and unbiased view of the world -- this is not a [joke](jokes.md), this wiki contains pure [truth](truth.md) and the solution to most of the issues that plague our current society. Do you have what it takes to [unretard](unretard.md) yourself? We wish you a nice journey :)
Welcome to [Less Retarded Wiki](lrs_wiki.md), an [encyclopedia](encyclopedia.md) only I can edit. But you can [fork](fork.md) it, it is [public domain](public_domain.md) under [CC0](cc0.md) (see [wiki rights](wiki_rights.md)) :) Holy [shit](shit.md), I'm gonna get [cancelled](cancel_culture.md) hard as soon as [SJWs](sjw.md) find out about this. Until then, let's enjoy the ride. THERE IS NO [MODERATION](moderation.md), I can do whatever I want here lol. I love this. INB4 "[hate speech](hate_speech.md)" website { [LMAO](lmao.md) [codeberg](codeberg.md) has already banned it. [Wikipedia](wikipedia.md) also banned me globally for "opinions expressed on my website". ~drummyfish } CONGRATULATIONS, you have discovered the one true, undistorted and unbiased view of the world -- this is not a [joke](jokes.md), this wiki contains pure [truth](truth.md) and the solution to most of the issues that plague our current society. Do you have what it takes to [unretard](unretard.md) yourself? We wish you a nice journey :)
DISCLAIMER: All opinions expressed here are facts.

@ -4,7 +4,7 @@ Wikipedia is a non-commercial, [free/open](free_culture.md) censored [pseudoleft
WARNING: **DO NOT DONATE TO WIKIPEDIA** as the donations aren't used so much for running the servers but rather for their political activities (which are furthermore [unethical](pseudoleft.md)). See https://lunduke.locals.com/post/4458111/the-wiki-piggy-bank.
{ Lol I'm blocked at Wikipedia now, reason being I linked to my personal website from my userpage where I expressed unpopular opinions :D ~drummyfish }
{ Lol I'm blocked at Wikipedia now (UPDATE: blocked globally on all their sites now, can't even log in and defend on my talk page), reason being I expressed unpopular opinions on my personal website OUTSIDE Wikipedia :D ~drummyfish }
Shortly after the project started in 2001, Wikipedia used to be a great project -- it was very similar to how [LRS wiki](lrs_wiki.md) looks right now; it was relatively unbiased, objective, well readable and used plain [HTML](html.md) and [ASCII art](ascii_art.md) (see it as https://nostalgia.wikipedia.org/wiki/HomePage), however over the years it got corrupt and by 2020s it has become a political battleground and kind of a [politically correct](political_correctness.md) [joke](jokes.md). A tragic and dangerous joke at that. It's still useful in many ways but it just hardcore censors facts and even edits direct quotes to push a [pseudoleftist](pseudoleft.md) propaganda. **Do not trust Wikipedia, especially on anything even remotely touching politics**, always check facts elsewhere, e.g. in old paper books, on Metapedia, Infogalactic etc. As old Wikipedia is still accessible, you may also browse the older, less censored version, to see how it deranged from a project seeking truth to one abusing its popularity for propaganda.

Loading…
Cancel
Save