Talk:Constructive solid geometry

From Wikipedia, the free encyclopedia

There is something wrong in this statement, at least in the context of the article. Cold someone clarify in more detail in mind? Also, if these operations are different (which I strongly doubt) then both should be described.

<< Some software distinguishes the Union from a different operator, Merge, which does the union in such a way that the surfaces inside the merged region are not rendered. This would be desirable in cases where the objects are transparent, and the union should be treated as a single solid object. In particular, the POV-Ray graphics package implements this concept. >>

Mikkalai 02:45, 4 Jan 2004 (UTC)

POV-Ray is able to render transparent objects with non-zero refraction angles. The use of it's CSG union operator for such object has unexpected results sence the "interior serfaces" within the union will cause a second refeaction. The operation is significantly faster however so it has remained. a Merge operator eleminates these interior refractions at the cost of render speed.

--Jfmiller28 01:16, 26 July 2006 (UTC)

[edit] Quake uses CSG !?

The last paragraph says that Quake uses CSG in its engine. I very much doubt it. --81.57.79.249 09:36, 2 August 2005 (UTC)

The Quake tools always used a very primitive (and badly implemented) way of CSG to build levels. If you dont believe it, look into the map compiler or the source code, after all, it is freely avaible. 141.30.217.10 19:59, 16 May 2006 (UTC)
As far as I know, Quake does not even know CSG exists. The tools used CSG to build up the brushes but when compiled, they produced a BSP tree, which was a pre-digested data structure. As far as I know of it, it's very different from CSG. Note I cannot prove it (so I don't modify the page) but I'm quite sure it's like that.
MaxDZ8 talk 20:23, 16 May 2006 (UTC)

[edit] Implementation

I want to add a section about how CSG is implemented, especially in raytracers. Like this:

A way raytracers implement constructive solid geometry is by sending a ray through both objects that are being operated on, and depending on the operator, the closest intersection point is decided.

Intersection:
 Object 1's intersections with ray: -------
 Object 2's intersections with ray:     ------
 Intersection:                          ---
 Ray's closest intersection:            ^
Subtraction:
 Object's intersections with ray:             -------
 Subtraction area's intersections with ray: ------
 Subtraction:                                     ---
 Ray's closest intersection:                      ^
 

This is the best way I can think of to explain it. ForrestVoight 17:12, 13 October 2006 (UTC)