home *** CD-ROM | disk | FTP | other *** search
- Newsgroups: comp.sys.next.programmer
- Path: sparky!uunet!enterpoop.mit.edu!bloom-picayune.mit.edu!athena.mit.edu!shanega
- From: shanega@athena.mit.edu (Shane G. Artis)
- Subject: Re: _very_ basic RenderMan question
- Message-ID: <1992Dec15.033437.7339@athena.mit.edu>
- Keywords: renderman
- Sender: news@athena.mit.edu (News system)
- Nntp-Posting-Host: e40-008-10.mit.edu
- Organization: Massachusetts Institute of Technology
- References: <92346.164214U54876@uicvm.uic.edu> <1992Dec13.110209.5345@lilliput.fdn.org>
- Date: Tue, 15 Dec 1992 03:34:37 GMT
- Lines: 74
-
- In article <1992Dec13.110209.5345@lilliput.fdn.org> joseph@lilliput.fdn.org (Joseph Goldstone) writes:
- ><U54876@uicvm.uic.edu> writes
- >> Hello -
- >>
- >> To all you experienced NeXT programmers out there, a very basic question
- >> about RenderMan from someone who has just started programming.
- >> I have copied, verbatim, the "minimal program using RenderMan" from page 18
- >> of The RenderMan Companion, saved it as test.c, and tried to compile it
- >using:
- >> cc -lMedia_s test.c -o test
- >>
- >> I get:
- >>
- >> /bin/ld: Undefined symbols:
- >> _RiBegin
- >> _RiWorldBegin
- >> _RiSurface
- >> _RI_P
- >> _RiPolygon
- >> _RiWorldEnd
- >> _RiEnd
- >>
- >...
- >
- >You can't get there from here.
- >
- >To compile the programs in the Companion you would need to be able to either
- >directly link in the renderer, or link in the RIB client library routines that
- >emit the RIB eaten by the renderer (which in this case is the renderer in
- >/usr/prman/prman)..
-
- <edited>
-
- Actually, I disagree, up to a point. I have successfully written and
- compiled and executed most of the basic examples in The RenderMan
- Companion. The functions RiBegin(), RiSurface(), etc. exist quite
- nicely in libMedia_s.a, and /usr/include/3DKit/ri.h handles things
- quite nicely. I think this person's basic problem is that to compile
- you need to use the command:
-
- cc -g -O RIfile.c -o RIfile -lMedia_s -lNeXT_s
-
- i.e. the libraries need to be at the END of the command line. The
- developers RenderMan is probably basically the same as the NeXT
- version, but better documented, more tutorials, a linkable renderer
- (for adding new capabilities, like trace(), and a RIB library). Note
- that the big feature here is the linkable renderer.
-
- I think NeXT doesn't want to support the standard Ri() commands
- themselves, at the expense of their nice Objective-C environment, but
- they still work just fine if you want to use them.
-
- This reasoning may break down when using more sophisticated examples
- that I haven't tried yet, but so far I've been able to link in every
- Ri function that I've needed to use, and that includes some pretty
- sophisticated ones.
-
- By the way, I haven't yet gotten one of the standard RenderMan programs
- from the RenderMan Companion to output the picture to the screen - that
- process is not documented. What I do is add lines like :
-
- RiBegin(RI_NULL, RI_RENDERER, &archive,
- RI_FILEPATH, &outputfile, RI_NULL);
- RiOption(RI_ARCHIVE, "outputversion", &v31, RI_NULL);
- RiDisplay("/me/Renderman/src/foo.tiff",RI_FILE,RI_RGBA,RI_NULL);
-
- to my file. This dumps the rest of the file to a .RIB file, which I
- then pass to prman.
-
- Regards,
-
- Shane
-
-
-