🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: comp.sys.next.programmer
Article #259

Re: lines, arcs, curves in RenderMan?

#259
From: Daryll Strauss
Date: Mon, 27 Jul 1992 17:38
43 lines
2864 bytes
In article <1992Jul27.013112.1645@proforma.com>, jgg@proforma.com (J. G. Gregory) writes:
|> I am sure I am missing something, but I open myself to abuse by asking a  
|> potentially stupid question:
|> 
|> How do you draw lines, arcs, or other curves in the 3Dkit?

The short answer is that 2D primitives don't exist in RenderMan. 

3D kit gives you the ability to mix PostScript and RenderMan, but only
in limited ways. You can place the PostScript underneath or above the
RenderMan output. For example, you can place a TIFF file as the
background with a 3D object in front of it, or you can create a 3D
object and annotate it with the PostScript on top. You can't have
PostScript that both occludes and is occluded by the 3D object.

In a purely theoretical sense, the problem is that 2D objects are
invisible in a 3D world. A line, being infinitesimally thin, doesn't
render as any pixels no matter where you place the camera. PostScript
has the same problem with its lines. The PostScript solution is to make
zero with lines be a device dependent thickness such that they image as
one pixel thick.

I suppose that RenderMan could do a similar thing by defining a bunch of
2D (lines, arcs, etc) primitives map them into curved cylinders with a
device dependent thickness that would render to one pixel wide. The
appropriate thickness would have to change depending on the distance the
2D object is from the camera. That might make things easier, but Pixar
would essentially end up implementing all of PostScript in RenderMan. I
also suspect it would really mess up your sense of depth, because your
line would change size within the scene. So, I don't think it makes
sense.

RenderMan is a scene description language. You provide it with the real
data for the scene and it provides a rendering of that scene. You're
asking for a way to mix non real objects into the scene. RenderMan
doesn't support that. You could create the objects (cylinders) yourself,
but that varying width would make life difficult. You could query the
camera in the cylinders renderSelf method to perform a mapping from
screen coordinates to world coordinate over the pixels where the
cylinder will be, and then use that to set the width of the cylinder,
but that's a really ugly hack. I'd suggest that if the
foreground/background PostScript doesn't do what you want, then you need
to rethink what you are trying to do in RenderMan.
Technical Details
Message-ID: <1992Jul27.173858.5324@aero.org>
Path: arc1-ca.pugleaf.net!sparky!uunet!usc!aero.org!Aero.org!strauss
References: <1992Jul27.013112.1645@proforma.com>

Show Full Headers
Complete Article Headers
Newsgroups: comp.sys.next.programmer
Path: arc1-ca.pugleaf.net!sparky!uunet!usc!aero.org!Aero.org!strauss
From: strauss@Aero.org (Daryll Strauss)
Subject: Re: lines, arcs, curves in RenderMan?
Message-ID: <1992Jul27.173858.5324@aero.org>
Keywords: renderman
Sender: news@aero.org
Organization: The Aerospace Corporation
References:  <1992Jul27.013112.1645@proforma.com>
Date: Mon, 27 Jul 1992 17:38:58 GMT
Lines: 51