Thread View: comp.sys.next.programmer
2 messages
2 total messages
Started by J. G. Gregory
Mon, 27 Jul 1992 01:31
lines, arcs, curves in RenderMan?
Author: J. G. Gregory
Date: Mon, 27 Jul 1992 01:31
Date: Mon, 27 Jul 1992 01:31
19 lines
1167 bytes
1167 bytes
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? I thought RenderMan would have a standard way to get "zero thickness" objects like the way PostScript has strokes of 0 width -- It does the finest line possible on the device. But the "RenderMan Companion" doesn't act like people draw lines, and I am confused. Do I just do PostScript, pumping my own points through the 3DCamera's transform? Use small cylinders? Polygons? Please no news on The Theory of Renderman, etc. I understand the high-end goals. But I was under the impression that the 3Dkit would do a lot of the 3D transforms for me. People even said, "Think of it as 3D PostScript". I hope I'm missing something. --J Gregory
Re: lines, arcs, curves in RenderMan?
Author: Daryll Strauss
Date: Mon, 27 Jul 1992 17:38
Date: Mon, 27 Jul 1992 17:38
43 lines
2864 bytes
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.
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads