Talk:Hidden-surface determination

Page contents not supported in other languages.
From Wikipedia, the free encyclopedia

Missing Info[edit]

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!

More information[edit]

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)[reply]

Rewrite[edit]

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)

restructure?[edit]

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)[reply]

commented out piece moved out of article[edit]

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)[reply]

<-- 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)[reply]


New structure proposal[edit]

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)[reply]

Low quality.[edit]

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).[reply]

"Hall of mirrors effect"[edit]

Hall of mirrors effect redirects here. But there is no mention in this article as to what this effect is (not with those words at least).

--Naoki (talk) 12:38, 9 November 2009 (UTC)[reply]