Article View: comp.sys.next.programmer
Article #2069Re: _very_ basic RenderMan question
From: Shane G. Artis
Date: Tue, 15 Dec 1992 03:34
Date: Tue, 15 Dec 1992 03:34
72 lines
3280 bytes
3280 bytes
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
Technical Details
Message-ID:
<1992Dec15.033437.7339@athena.mit.edu>Path:
arc1-ca.pugleaf.net!sparky!uunet!enterpoop.mit.edu!bloom-picayune.mit.edu!athena.mit.edu!shanegaReferences:
<92346.164214U54876@uicvm.uic.edu> <1992Dec13.110209.5345@lilliput.fdn.org>Show Full Headers
Complete Article Headers
Newsgroups: comp.sys.next.programmer Path: arc1-ca.pugleaf.net!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