POV-Ray : Newsgroups : povray.binaries.images : Playing with CSG (44 KB) : Re: Playing with CSG (2 images: 46 KB and 14KB) Server Time
13 Oct 2026 22:21:33 EDT (-0400)
  Re: Playing with CSG (2 images: 46 KB and 14KB)  
From: Tor Olav Kristensen
Date: 16 Apr 2000 21:49:58
Message: <38FA6DB9.3AD7D0E5@hotmail.com>
David Wilkinson wrote:
> 
> This is very impressive.  

Thank you!


> The creation of internal fillet radii and rounding of
> external sharp edges is a real problem when trying to model real world objects
> with CSG.
> There are, however,  a very large number of combinations of different objects
> possible in creating a composite CSG object. 

Yes, to my big frustration I am aware of the many possible 
combinations.

I have only chosen to attack a small subset of them.


> Does your macro attack the general
> problem? 

I'm afraid not...

I think that would require some pre-processing of the POV-file.

Or I would have to make macros that did some "intelligent" 
scaling of the objects before the CSG was applied. 
The macro(s) would also have to figure out if it's possible 
to do the "smoothing" with POV-Rays object primitives. 
(There are some "missing") And then at last it would have 
to select and "custom cut" the chosen object primitives before
applying them to the final CSG operations...

...And I do not have time now to even try figuring out all this.


> Or, if not,  what cases does it apply to?

To combinations of these object primitives:

Plane
Cylinder
Cone
Sphere
Torus

(But there will be restrictions on how they are aligned 
and positioned relative to each other.)

Macro so far:

Sphere meets Sphere
Torus  meets Sphere
Torus  meets Torus
(Cylinder meets Cylinder)

Next to do:

Sphere   meets Cone
Torus    meets Cone
Sphere   meets Cylinder
Torus    meets Cylinder
Cylinder meets Cone
Cone     meets Cone

And finally:

Sphere   meets Plane
Torus    meets Plane
Cylinder meets Plane
Cone     meets Plane
Plane    meets Plane

I have enclosed to images with this posting.

The first one shows how the CSG would have looked if the 
"smoothing" had not been applied (upper part of picture) 
and also the different objects that my macro returned for 
"CSG-ing" (lower part of picture).

The second picture shows in detail a cut of the right part 
of my "wheel". 

The grey area again shows how the CSG-object would have 
looked without "smoothing".

The green parts shows the parts (objects) that my macro 
returned which I chose to "add" to the final object.

And the red parts shows the parts (objects) that my macro 
returned which I chose to "subtract" from the final object.

My macro(s) needs numerical information about the two 
objects that are to be "smoothed" together (radii, centres, 
endpoints, etc.)

Then one has to select from different types of "smoothing"
("internal"/"external" fillet radii or "internal"/"external" 
rounding-radii).

In addition to returning parts that can be directly included
in the final CSG operation my macro(s) will also return some
useful numerical information about these parts.

> (Whatever the answer your macro/macros will be a welcome addition to the CSG
> toolbox!)

If there is any interest for my macros then I will release 
them so that other POV-ers can use them.

(But I think that I should finish them first. ;-)

Tor Olav
--
mailto:tor### [at] hotmailcom
http://www.crosswinds.net/~tok/tokrays.html


Post a reply to this message


Attachments:
Download 'tt01.jpg' (46 KB) Download 'tt02.jpg' (14 KB)

Preview of image 'tt01.jpg'
tt01.jpg

Preview of image 'tt02.jpg'
tt02.jpg


 

Copyright 2003-2023 Persistence of Vision Raytracer Pty. Ltd.