Talk:Hidden surface determination
From Wikipedia, the free encyclopedia
Contents |
[edit] Missing Info
I would like to see the history. When did this first come into play? There is no mention of this. Raytracing: Simlation a nuclear reactor. Very old. (1960?) Google throug wiki!
[edit] More information
I found this article to be pointless without the algorithms that explains the process. As a beginner 3D programmer who want to make use of the article to find out the basics so I could start coding this article is useless... Hence I will now commit myself to write a 3D programming series of article. Lord Metroid 12:57, 7 November 2006 (UTC)
[edit] Rewrite
I rewrote this article so it was more encylopedic. I removed the explanations of the algorithms since most of what was there could be found in other articles (for example, viewing frustum culling and z-buffering). – flamuraiTM 09:12, Jan 29, 2005 (UTC)
[edit] restructure?
I've tried to split this into the broad stages of a rendering pipeline; and remove the stuff about different HSR embedded there. I wanted one clear place listing the various HSR algorithms, with a mind to later including more detail on the comparison issues. (i thought this after sticking 'scanline vs zbuffer' in the scanline article)
Walter bz 12:17, 31 January 2007 (UTC)
[edit] commented out piece moved out of article
Please don't do this again: such texts must be seen, for re-use. BTW, who was sorry here? Signature, please. `'mikka 20:31, 5 February 2007 (UTC)
<-- Sorry: I think this article flows better if this heirachical Z/BVH stuff mentioned bellow is moved to a seperate section on that specific algorithm
- Occlusion culling
- Occlusion culling is the process of determining which portions of objects are hidden by other objects from a given viewpoint. This is one of the fundamental problems in computer graphics, and many different occlusion culling algorithms have been developed. The simplest is painter's algorithm, in which polygons are sorted, then drawn back to front. The most common in real-time computer graphics is z-buffering, in which the depth value at each pixel is stored as each polygon is rendered. The pixel is only overwritten if the depth value of the current point is less than the depth value stored in the z-buffer. Both of these methods operate on polygon meshes. Bounding Volume Hierarchies (BVHs) can be used to traverse complex scenes front to back and a hierarchical z-buffer can be used to reject large nodes of the BVH. To reduce fillrate in this case, large nodes are rendered adaptively at lower resolution so that they cover about 8 pixels (in their level of the hierarchy). Parallelism for multiple GPUs (possible on multiple graphic cards) is achieved by traversing the tree at different parts of the screen (needs some managing algorithms) at the same time. The latency of the lookup in the z-buffer and BVH and the deep pipelining architecture of modern computers still leads to some overdraw: The GPU traverses the BVH without waiting for the z-buffer comparison and sometimes needs to cancel large subtrees. Coherence between consecutive frames can be used to cache different parts of the scene on different graphic cards and to reorder the BVH in memory in the way it was accessed in the last frame. Shadow casting is achieved by repeating this process for every light source. Aborting BVH traversal when the box gets smaller then one pixel leads to level of detail, but this has to be synced between the rendering and the shadow casting to avoid jaggy shadows.
- Contribution culling
- Often, objects are so far away that they do not contribute significantly to the final image. These objects are thrown away if their screen projection is too small.
-->
Portal_rendering got its own article Arnero 17:18, 7 February 2007 (UTC)
[edit] New structure proposal
distinguish part of surface complete surface = culling LOD limiting viewing distance => viewing frustrum (not pyramid) contribution culling visibility problem the rest complete solution ray-tracer ( [[Wolfenstein 3d]] ) rounding errors lead to wobble of individual pixels + view pyramid clipping note that or with a pyramid at least two planes must be culled in 3d after clipping all objects end up on the sceen, no overflow is possible but the tip of the pyramid leads to division by zero Solutution ignore surface where the camera sticks in clip in screen space and additionally clip z-range to cull objects behind the camera => viewing frustrum one of these z-buffer ([[strike commander]]) (outer loop: triangle, inner loop: pixel) scanline algo (outer loop: triangle, inner loop: pixel) rounding errors lead to wobbling of the vertices of triangles especially visible if textured optimization cheap backface culling or using a different texture for both sides trading speed for acuracy painter ([[Playstation]]) for high detail, soft surface in conjuction with backface culling zbuffer agressive rounding, before writing the values into the buffer delete objects close to the viewer note that this allow one to clip all other objects in screen space for indoor scenes regular grid ([[Wolfenstein3d]]) portal-renderer ([[Duke Nukem 3d]],[[Descent]]) reuse viewing frustrum code for scenes with more than 100 triangles sophisticated datastructures goal like in [[sort]] " n*log(n) " is possible examples hirachical bounding volumes BSP ([[DOOM]]) bounding boxes bounding spheres in screen space active edge list c-buffer hirachical z-buffer ( [[ATI]] ) parallel processing rendering pipeline CPU GPU Outlook rendering equation Comparison complex shaders much more expensive defered rendering
Arnero 20:43, 24 March 2007 (UTC)
[edit] Low quality.
I think this article needs to be cleaned up to use proper English grammar. Major portions of it were pretty obviously written by a non-native English speaker. This is not a personal attack, just a suggestion. -DT —The preceding unsigned comment was added by 64.20.237.230 (talk) 22:32, 30 April 2007 (UTC).