Render.ru

ARman

Narvi

Активный участник
Рейтинг
11
#1
Ну вот я и стал счастливым обладателем сабжа. И сразу встал вопрос. Там в конце находятся исходники RayServer DSO который собственно и отсутствует в НТвой поставке РАТ, что собственно не дает возможность использовать рейсервер. Внимание, вопрос. Что мне может помешать вбить эти исходники и скомпилировать? Почему никто этого не сделал? Или все равно Самая Главная Библиотека Необходимая Чтобы Это Скомпилировать опять же тоже не включена?
 
#2
Насколько я помню, там какая-то проблема с pipes - под виндами (или в библиотеках VC++) их либо вообще нет, либо они не хотят пересылать данные между процессами. Сам не копал... Вполне возможно, что это можно как-то обойти..
 
#3
Насколько я помню, сам Ларри неоднократно говорил, что это принципиальная проблема в Виндах, которые никогда не поддерживали (и вряд ли будут) юниксовую реализацию fork. Обойти можно переписав саму операционку ;-)
 
#4
Это не совсем так, Alex более близок к истине.

Дело в том, что у функции pipe, которая вовсю используется в этом самом DSO, есть 2 варианта - с одним параметром (файлом) и с двумя. Так вот вторая в поставке VC не идёт (несмотря на всю пропаганду MS о том, что VC и NT - Posix-совместимы) и её реализация представляет из себя нетривиальную задачу. Вот Ларри и не стал её писать.

Более того, когда я нарыл реализацию второго пайпа и отослал её Ларри, он аж прослезился и пообещал as soon as possible. А потом на них подали в суд и купили - и усё заглохло.

Тем не менее, поскольку в RDC и AIR этот DSO реализован и работает, это означает, что принципиальных трудностей для реализации задача не представляет и если уметь - то можно. Вот только ни у кого нет ни времени, ни желания поуметь :))

<moderator>
Кстати, Нарви, это вопрос из ФАКа :)
</moderator>
 
#6
Сорри за непреднамеренное заблуждение.
Помню, что читал объяснения Ларри по этому поводу, но видимо давно.
Причем был уверен, что это писалось в каких-то доках идущих с BMRT,
но сейчас стал рыть и не нашел. Похоже этот ответ где-то в архивах c.g.r.r.
Если его откопать, то хорошо бы вставить дословно в FAQ.
 
#7
In article <38CCE027.44616417@iris.seed.net.tw>,
Michael Marine Leeson. <marine28@iris.seed.net.tw> wrote:
>
>Is it true that frankenrender is still
>not available in IntelNT's port?

Correct. frankenrender is not yet running for NT.

Actually, if anybody is interested in lending a hand... The problem
is that I have no idea how to write the equivalent of the popen2
function, which is listed on p. 503 of the "Advanced RenderMan" book.
It takes the name of a command, opens a pipe to it, and returns int
file descriptors to the stdin and stdout of that process.

If anybody has an equivalent routine for Win32 that they don't mind
giving me, I'll happily fold it into BMRT and release the ray server
capabilities.

-- lg
--
Larry Gritz Pixar Animation Studios
lg@pixar.com Richmond, CA

От:Andrew Bromage (bromage@goaway.cc.monash.edu.au)
Заголовок:Re: rayserver in BMRT2.5 NT?

[snip]

This might help:

http://sourceware.cygnus.com/cygwin/

In particular, look at the winsup directory which provides equivalents
for standard Unix calls like fork() and pipe() on top of Win32.

Cheers,
Andrew Bromage

От:Gregory Ecker (gxe@panix.com)
Заголовок:Re: rayserver in BMRT2.5 NT?


Larry Gritz wrote:

> [snip]
> Actually, if anybody is interested in lending a hand... The problem
> is that I have no idea how to write the equivalent of the popen2
> function, which is listed on p. 503 of the "Advanced RenderMan" book.
> It takes the name of a command, opens a pipe to it, and returns int
> file descriptors to the stdin and stdout of that process.
> If anybody has an equivalent routine for Win32 that they don't mind
> giving me, I'll happily fold it into BMRT and release the ray server
> capabilities.
>

this command is called "_pipe". I've included the documentation below.


Greg Ecker
Programmer
Manhattan Transfer

_pipe
Creates a pipe for reading and writing.

int _pipe( int *phandles, unsigned int psize, int textmode );

Routine Required Header Optional Headers Compatibility
_pipe <io.h> <fcntl.h>,1 <errno.h>2 Win 95, Win NT


1 For _O_BINARY and _O_TEXT definitions.

2 errno definitions.

For additional compatibility information, see Compatibility in the
Introduction.

Libraries
 

Narvi

Активный участник
Рейтинг
11
#8
Фака... Юношескую мечту убили.. В Факе написано что ДСО не реализован.. А тут - открыва книжку - а там сишные исходники рейсервера! Я то думал...
 

Narvi

Активный участник
Рейтинг
11
#9
А кстати, есть сырцы в нете чтобы не забивать их в комп вручную?
 

Narvi

Активный участник
Рейтинг
11
#10
Эээх... Когда же крякнут ПРман под линукс... Хочу туда.. А еще лучше под СГИ... там РейСервер... Не тормозит наверное ничего... Все клево работает...
 
#12
RAT 5.5 в стадии rc2....немного осталось...я думаю - не больше двух недель...
На кой вам этот rayserver, когда в PRMan11 будет родной трэйс?

PS: Я пробовал когда-то устроить rayserver под линухом - нифига не вышло....может руки кривые, а может и ещё чего.....
 
Сверху