POV-Ray : Newsgroups : povray.general : Smooth Pipes that won't crush! (newbie question , just piped up)) : Re: Smooth Pipes that won't crush! (newbie question , just piped up)) Server Time
11 Aug 2024 03:32:29 EDT (-0400)
  Re: Smooth Pipes that won't crush! (newbie question , just piped up))  
From: Chris Colefax
Date: 17 Sep 1999 21:29:10
Message: <37e2eae6@news.povray.org>
Paul Brown <pau### [at] pabcomfreeservecouk> wrote:
> I am looking for a utility that will allow me to generate things like
pipes,
> cup/mug handles etc.
> An example of the sort of thing I am looking for is Piper by Mike Weber
> (http://www.geocities.com/SiliconValley/Pines/8625/piper/piper.html)
>
> This is an excellent utility which allows you to draw a path with Bsplines
> using a simple 3d editor and then allows you to "Pipe" the path. The
> resulting pipe is a raw triangle mesh. The pipe can be bent around quite
> sharp corners without the pipe cross section being "crushed" (the pipe
> radius remains fairly constant).
>
> All this is fine but I need SMOOTH pipes without the underlying triangle
> mesh showing though. Even converting the data from "raw" "raw smoothed"
did
> not help much.
>
> All this would seem to point to using Bezier patch type objects (say  a
> cylinder type patch in Moray or Spatch) and then bending and stretching
this
> into shape using rotations & translations etc.
>
> The problem with this is it's tricky to keep the "pipe" diameter constant
> after all that bending & stretching.
> It ends up looking more like ribbon then pipe!
>
> Any Ideas? Do I just have to "tough it out" with patch editors or has
> someone written something like Piper but for patch type cylinders?

Ken has already provided a link to my (thoroughly obsolete!) Spline include
file, although I would hardly recommend it for your purposes.  However, as I
describe on my Current Projects page the task that's monopolised my
attention of late is a completely rewritten Spline macro system.  Much of
the work has gone into spline design functions not generally available in
other programs, but the other focus has certainly been on automating the
creation of spline-based objects.

One thing I have tried to avoid is using triangle meshes: while these have
their place in raytracing, I really don't see them as the most suitable
option.  Instead, I've created macros for pipe splines (using joined
cylinders/cones/spheres) and blob splines (using stretched and orientated
spherical blob components).  In both cases the results are memory efficient
and faster to render than, say, similar sphere sweeps.  The blobs, being
particular suited to raytracing, give very good results for most path shapes
and are much faster in CSG operations than the standard cylinders and
spheres.

You can also create objects by joining links along the length of the spline
(suitable for many types of hoses, chains, tracks, etc).  In all cases, you
can apply vector scaling, rotation, and translation to the spline path
itself without affecting the cross section of the objects you create.
Before I release the file I want to add some extra spline object macros,
such as coiled splines (telephone cable, anyone?) and perhaps ribbon-type
splines (using optimised Bezier patches) and the ability to bend an existing
object along a spline...


Post a reply to this message

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