<< 15/15

Guile RMan #10 くりかえし処理その3

guileで乱数を発生させた。毎回変化させるには、
(set! *random-state* (random-state-from-platform))
を記述しておいた。
(RiColor (Color (random 1.0) (random 1.0) (random 1.0)))
たぶん、0から1までの乱数と思われる。
sphere7r.jpg
sphere7r2.jpg

#!/usr/bin/guile -s
!#

(use-modules (rman rispec))
(use-modules (rman utilities))

(RiBegin "test7.rib")
(RiDisplay "sphere7.tif" "file" "rgb")
(RiFormat 640 480 1)
(RiProjection "perspective" '("fov" 40.0))
(RiTranslate 0 0 6)
(RiPixelFilter RiBoxFilter 1 1)
(RiWorldBegin)
(RiLightSource "ambientlight" (list "intensity" 0.2))
(RiLightSource "distantlight" (list "intensity" 1.2
"uniform point from" (Point 3 3 -3)))

(define (test x)
(define posx -3)
(set! *random-state* (random-state-from-platform))
(let ((n 0))
(while (< n x)
(RiTransformBegin)
(set! posx (+ posx 1 ))
(RiTranslate posx 0 0 )
(RiColor (Color (random 1.0) (random 1.0) (random 1.0)))
(RiSurface "plastic")
(RiSphere 0.5 -0.5 0.5 360)
(set! n (+ n 1))
(RiTransformEnd)
)))

(test 5)

(RiWorldEnd)
(RiEnd)

  • -
  • -

Guile RMan #11 くりかえし処理その4

sin、cosを利用した。半径1の円周上に球体を12個、配置した。
色は乱数を発生させた。
sphere8.jpg
sphere8r.jpg

#!/usr/bin/guile -s
!#

(use-modules (rman rispec))
(use-modules (rman utilities))

(RiBegin "test8.rib")
(RiDisplay "sphere8.tif" "file" "rgb")
(RiFormat 640 480 1)
(RiProjection "perspective" '("fov" 40.0))
(RiTranslate 0 0 4)
(RiPixelFilter RiBoxFilter 1 1)
(RiWorldBegin)
(RiLightSource "ambientlight" (list "intensity" 0.2))
(RiLightSource "distantlight" (list "intensity" 1.2
"uniform point from" (Point 3 3 -3)))

(define (test x)
(define N1 12)
(define PI 3.141592)
(set! *random-state* (random-state-from-platform))
(let ((n 0))
(while (< n x)
(RiTransformBegin)
(RiTranslate (sin (* 2 (/ PI N1) n)) (cos (* 2 (/ PI N1) n)) 0 )
(RiColor (Color (random 1.0) (random 1.0) (random 1.0)))
(RiSurface "plastic")
(RiSphere 0.25 -0.25 0.25 360)
(set! n (+ n 1))
(RiTransformEnd)
)))

(test 12)

(RiWorldEnd)
(RiEnd)
  • -
  • -

Guile RMan #12 RiReadArchive

Aqsis1.6とguile-rmanでのスクリプトの書き方、ReadArchiveの書式がわかりました。

(RiReadArchive "cone.rib" (list ))

パラメータ部分をlistにしときます。
simple4.jpg
以下は、Nupatchのcone.ribを保存します。


NuPatch 11 4 [-2 -2 -1
0 1 2 3 4 5 6 7 8 9 10 10] 0 8 4 4 [0 0 0 0 2.23607 2.23607 2.23607 2.23607] 0 2.23607 "Pw" [0.783612 -1 -0.783612 1 1.10819 -1 6.51994e-017 1
0.783612 -1 0.783612 1 3.21127e-016 -1 1.10819 1 -0.783612 -1 0.783612 1
-1.10819 -1 2.72688e-016 1 -0.783612 -1 -0.783612 1 -5.95213e-016 -1 -1.10819 1
0.783612 -1 -0.783612 1 1.10819 -1 6.51994e-017 1 0.783612 -1 0.783612 1
0.522408 -0.333333 -0.522408 1 0.738796 -0.333333 6.3877e-017 1 0.522408 -0.333333 0.522408 1
2.14085e-016 -0.333333 0.738796 1 -0.522408 -0.333333 0.522408 1 -0.738796 -0.333333 2.02203e-016 1
-0.522408 -0.333333 -0.522408 1 -3.96809e-016 -0.333333 -0.738796 1 0.522408 -0.333333 -0.522408 1
0.738796 -0.333333 6.3877e-017 1 0.522408 -0.333333 0.522408 1 0.261204 0.333333 -0.261204 1
0.369398 0.333333 6.25547e-017 1 0.261204 0.333333 0.261204 1 1.07042e-016 0.333333 0.369398 1
-0.261204 0.333333 0.261204 1 -0.369398 0.333333 1.31718e-016 1 -0.261204 0.333333 -0.261204 1
-1.98404e-016 0.333333 -0.369398 1 0.261204 0.333333 -0.261204 1 0.369398 0.333333 6.25547e-017 1
0.261204 0.333333 0.261204 1 0 1 6.12323e-017 1 0 1 6.12323e-017 1
0 1 6.12323e-017 1 0 1 6.12323e-017 1 0 1 6.12323e-017 1
0 1 6.12323e-017 1 0 1 6.12323e-017 1 0 1 6.12323e-017 1
0 1 6.12323e-017 1 0 1 6.12323e-017 1 0 1 6.12323e-017 1]

NuPatch 11 4 [-2 -2 -1
0 1 2 3 4 5 6 7 8 9 10 10] 0 8 4 4 [0 0 0 0 2.23607 2.23607 2.23607 2.23607] 0 2.23607 "Pw" [0.783612 -1 -0.783612 1 1.10819 -1 6.51994e-017 1
0.783612 -1 0.783612 1 3.21127e-016 -1 1.10819 1 -0.783612 -1 0.783612 1
-1.10819 -1 2.72688e-016 1 -0.783612 -1 -0.783612 1 -5.95213e-016 -1 -1.10819 1
0.783612 -1 -0.783612 1 1.10819 -1 6.51994e-017 1 0.783612 -1 0.783612 1
0.522408 -0.333333 -0.522408 1 0.738796 -0.333333 6.3877e-017 1 0.522408 -0.333333 0.522408 1
2.14085e-016 -0.333333 0.738796 1 -0.522408 -0.333333 0.522408 1 -0.738796 -0.333333 2.02203e-016 1
-0.522408 -0.333333 -0.522408 1 -3.96809e-016 -0.333333 -0.738796 1 0.522408 -0.333333 -0.522408 1
0.738796 -0.333333 6.3877e-017 1 0.522408 -0.333333 0.522408 1 0.261204 0.333333 -0.261204 1
0.369398 0.333333 6.25547e-017 1 0.261204 0.333333 0.261204 1 1.07042e-016 0.333333 0.369398 1
-0.261204 0.333333 0.261204 1 -0.369398 0.333333 1.31718e-016 1 -0.261204 0.333333 -0.261204 1
-1.98404e-016 0.333333 -0.369398 1 0.261204 0.333333 -0.261204 1 0.369398 0.333333 6.25547e-017 1
0.261204 0.333333 0.261204 1 0 1 6.12323e-017 1 0 1 6.12323e-017 1
0 1 6.12323e-017 1 0 1 6.12323e-017 1 0 1 6.12323e-017 1
0 1 6.12323e-017 1 0 1 6.12323e-017 1 0 1 6.12323e-017 1
0 1 6.12323e-017 1 0 1 6.12323e-017 1 0 1 6.12323e-017 1]

NuPatch 11 4 [-2 -2 -1
0 1 2 3 4 5 6 7 8 9 10 10] 0 8 4 4 [0 0 0 0 1 1 1 1] 0 1 "Pw" [0 -1 0 1 0 -1 0 1
0 -1 0 1 0 -1 0 1 0 -1 0 1
0 -1 0 1 0 -1 0 1 0 -1 0 1
0 -1 0 1 0 -1 0 1 0 -1 0 1
0.261204 -1 -0.261204 1 0.369398 -1 -9.12038e-018 1 0.261204 -1 0.261204 1
1.58307e-016 -1 0.369398 1 -0.261204 -1 0.261204 1 -0.369398 -1 1.62571e-016 1
-0.261204 -1 -0.261204 1 -2.49669e-016 -1 -0.369398 1 0.261204 -1 -0.261204 1
0.369398 -1 -9.12038e-018 1 0.261204 -1 0.261204 1 0.522408 -1 -0.522408 1
0.738796 -1 -1.82408e-017 1 0.522408 -1 0.522408 1 3.16613e-016 -1 0.738796 1
-0.522408 -1 0.522408 1 -0.738796 -1 3.25142e-016 1 -0.522408 -1 -0.522408 1
-4.99337e-016 -1 -0.738796 1 0.522408 -1 -0.522408 1 0.738796 -1 -1.82408e-017 1
0.522408 -1 0.522408 1 0.783612 -1 -0.783612 1 1.10819 -1 -2.73611e-017 1
0.783612 -1 0.783612 1 4.7492e-016 -1 1.10819 1 -0.783612 -1 0.783612 1
-1.10819 -1 4.87713e-016 1 -0.783612 -1 -0.783612 1 -7.49006e-016 -1 -1.10819 1
0.783612 -1 -0.783612 1 1.10819 -1 -2.73611e-017 1 0.783612 -1 0.783612 1]

NuPatch 11 4 [-2 -2 -1
0 1 2 3 4 5 6 7 8 9 10 10] 0 8 4 4 [0 0 0 0 1 1 1 1] 0 1 "Pw" [0 -1 0 1 0 -1 0 1
0 -1 0 1 0 -1 0 1 0 -1 0 1
0 -1 0 1 0 -1 0 1 0 -1 0 1
0 -1 0 1 0 -1 0 1 0 -1 0 1
0.261204 -1 -0.261204 1 0.369398 -1 -9.12038e-018 1 0.261204 -1 0.261204 1
1.58307e-016 -1 0.369398 1 -0.261204 -1 0.261204 1 -0.369398 -1 1.62571e-016 1
-0.261204 -1 -0.261204 1 -2.49669e-016 -1 -0.369398 1 0.261204 -1 -0.261204 1
0.369398 -1 -9.12038e-018 1 0.261204 -1 0.261204 1 0.522408 -1 -0.522408 1
0.738796 -1 -1.82408e-017 1 0.522408 -1 0.522408 1 3.16613e-016 -1 0.738796 1
-0.522408 -1 0.522408 1 -0.738796 -1 3.25142e-016 1 -0.522408 -1 -0.522408 1
-4.99337e-016 -1 -0.738796 1 0.522408 -1 -0.522408 1 0.738796 -1 -1.82408e-017 1
0.522408 -1 0.522408 1 0.783612 -1 -0.783612 1 1.10819 -1 -2.73611e-017 1
0.783612 -1 0.783612 1 4.7492e-016 -1 1.10819 1 -0.783612 -1 0.783612 1
-1.10819 -1 4.87713e-016 1 -0.783612 -1 -0.783612 1 -7.49006e-016 -1 -1.10819 1]



続いて、次のスクリプトをguileで実行します。
simple4.scmで保存します。


#!/usr/bin/guile -s
!#

(use-modules (rman rispec))
(use-modules (rman utilities))

(RiBegin "")
(RiOption "Render" (list "integer multipass" 1))
(RiHider "hidden" (list "depthfilter" "midpoint"))
(RiDisplay "simple4.tif" "file" "rgb")
(RiFormat 512 384 1)
(RiProjection "perspective" '("fov" 30))
(RiTranslate 0 0 3)
(RiRotate -40 1 0 0)
(RiRotate -20 0 1 0)
(RiPixelFilter RiGaussianFilter 2 2)
(RiWorldBegin)
(RiLightSource "ambientlight" (list "intensity" 0.3))
(RiAttributeBegin)
(RiAttribute "autoshadows" (list "string shadowmapname" "autoshadow.shad" "integer res" 1024))
(RiTranslate 5 5 -5)
(RiRotate -45 0.0 1.0 0.0)
(RiRotate 35 1.0 0.0 0.0)
(define light1 (RiLightSource "shadowspot" (list "intensity" 300
"coneangle" 0.5
"string shadowname" "autoshadow.shad"
"float blur" 0.008 )))
(RiAttributeEnd)
(RiIlluminate light1 1 )
(RiAttributeBegin)
(RiTransformBegin)
(RiColor (Color 0.8 0.8 0.8))
(RiSurface "plastic")
(RiPolygon 4 (list "P" #f32(-1 -0.5 -1 -1 -0.5 1 1 -0.5 1 1 -0.5 -1)))
(RiTransformEnd)
(RiTransformBegin)
(RiColor (Color 0.8 0.4 0.2))
(RiSurface "plastic")
;;(RiRotate -90 1 0 0)
(RiScale 0.5 0.5 0.5)
(RiTranslate 0 0.2 0)
(RiReadArchive "cone.rib" (list ))
(RiTransformEnd)
(RiAttributeEnd)
(RiWorldEnd)
(RiEnd)

  • -
  • -

Guile RMan #13 サンプルテスト

Aqsis1.6とguile-rmanでのサンプルが動くように調整しました。
sphere_two.jpg
以下、test0.scmを実行します。
Some deprecated features have been used. Set the environment variable GUILE_WARN_DEPRECATED to "detailed" and rerun the program to get more information. Set it to "no" to suppress this message.

export GUILE_WARN_DEPRECATED="detailed"
を.bashrcに書き加えた方が良いです。



#!/usr/bin/guile -s
!#

(use-modules (rman rispec))
(use-modules (rman utilities))

(define (progress percent frame)
(display "Percent: ")
(display percent)
(display " Frame: ")
(display frame)
(newline))

(define (subdiv ptr lod)
(display "Ptr: ")
(display ptr)
(display " Lod: ")
(display lod)
(newline))

(define (free ptr)
(display "Ptr: ")
(display ptr)
(newline))

(define bound #f32(0.0 0.0 0.0 10.0 10.0 10.0))

(define data '(some data))

(RiBegin "test0.rib")
(RiDisplay "sphere_two.tif" "file" "rgb")
(RiFormat 320 240 1)
(RiProjection "perspective" '("fov" 45.0))
(RiTranslate 0 0 6)
(RiProgressHandler progress)
(RiWorldBegin)
(let ((o1 (Object (RiSphere 1 -1 1 360))))
(RiLightSource "ambientlight" '("intensity" 0.2))
(RiLightSource "distantlight" '("intensity" 1.2
"from" #f32(0 0 -6)
"to" #f32(0 0 0)))
(RiColor #f32(1.0 0.0 0.0))
(RiSurface "plastic")
(RiTranslate -2.0 0 0)
(RiObjectInstance o1)
(RiColor #f32(0.0 1.0 0.0))
(RiSurface "plastic")
(RiTranslate 4.0 0 0)
(RiObjectInstance o1)
(RiProcedural data bound subdiv free))
(RiWorldEnd)
(RiEnd)


一歩一歩ですね。ありがとうございます。
RIB出力するようになれば完璧です。
以下は課題?。
configure:11571: checking for RiBegin in -laqsis_core
configure:11606: gcc -o conftest -g -O2 conftest.c -laqsis_core >&5
/usr/lib64/libaqsis_ribparse.so.1: undefined reference to `boost::iostreams::detail::zlib_base::inflate(int)'
collect2: ld returned 1 exit status
  • -
  • -

Bodhi Linux and Pixie Renderer install under gnome boxes

Ubuntu系のLinux 64bitでPixie Rendererを動かしました。
RIBが使える唯一のRenderMan互換rendererになるかもしれません。
Dispersion.jpg
Fedora28のgnome boxesにBodhi Linux5.0 64bitをインストールしました。
ダウンロードしたのは、bodhi-5.0.0-apppack-64.iso (1.5GB)
Pixie Rendererをビルドしました。
Pixie Rendererをダウンロードしてきます。
https://sourceforge.net/projects/pixie/

解凍します。
$ tar xvf Pixie-src-2.2.6.tgz
$ cd Pixie/
$ ./configure
...
ellipsis (省略)
...
errorが出ますので、以下、いくつかインストールします。
管理者権限で、
$ sudo -i

~# apt install update

~# apt install bison
~# apt install flex
~# apt install build-essential

~# apt install libtiff-dev
~# apt install libpng-dev
~# apt install libopenexr-dev
~# apt install fluid
~# apt install libcairo2-dev libxft-dev libxinerama-dev

*****************************************
次に、以下のpatchをあてます。https://sourceforge.net/projects/pixie/のticketにあります。
ファイル名pixie-2.2.6-gcc6.patchをダウンロードします。
https://sourceforge.net/p/pixie/patches/23/
上記から入手してください。
上のパッチを解凍したPixie/src/commonに保存します。
以下を実行します。

$ cd src/common
$ patch < pixie-2.2.6-gcc6.patch
patching file global.h

パッチをあてないでmakeすると以下のようなエラーが出ます。

In file included from ../common/algebra.h:188,
from file.cpp:33:
../common/mathSpec.h: 関数 ‘void fresnel(const float*, const float*, float, float&, float&, float*, float*)’ 内:
../common/mathSpec.h:548:30: エラー: ‘max’ was not declared in this scope
const SCALAR_TYPE g = SQRT(max(t,0));
^~~
../common/mathSpec.h:548:30: 備考: suggested alternative: ‘fmax’
const SCALAR_TYPE g = SQRT(max(t,0));
^~~
fmax
../common/mathSpec.h:553:9: エラー: ‘min’ was not declared in this scope
Kr = min(Kr,1);
^~~
../common/mathSpec.h:553:9: 備考: suggested alternative: ‘sin’
Kr = min(Kr,1);
^~~
sin
In file included from ../common/algebra.h:199,
from file.cpp:33:
../common/mathSpec.h: 関数 ‘void fresnel(const double*, const double*, double, double&, double&, double*, double*)’ 内:
../common/mathSpec.h:548:30: エラー: ‘max’ was not declared in this scope
const SCALAR_TYPE g = SQRT(max(t,0));
^~~
../common/mathSpec.h:548:30: 備考: suggested alternative: ‘fmax’
const SCALAR_TYPE g = SQRT(max(t,0));
^~~
fmax
../common/mathSpec.h:553:9: エラー: ‘min’ was not declared in this scope
Kr = min(Kr,1);
^~~
../common/mathSpec.h:553:9: 備考: suggested alternative: ‘sin’
Kr = min(Kr,1);
^~~
sin
make[3]: *** [Makefile:317: file.lo] エラー 1


*************************************************
$ cd ../../ でPixieフォルダに戻ります。
$ ./configure を実行します。
------------------------------------------------
---> FLTK not found.
---> You can download it from www.fltk.org
---> show will not be built.
------------------------------------------------
Installation info:
PIXIEHOME: /opt/pixie
Documentation: /opt/pixie/doc
Shaders: /opt/pixie/shaders
RIBs: /opt/pixie/ribs
Textures: /opt/pixie/textures
Displays: /opt/pixie/displays
Procedurals: /opt/pixie/procedurals
Modules: /opt/pixie/modules
------------------------------------------------
To build Pixie:
>make
>make install
Terminus Est

FLTK not found.は無視します。他にエラーがなければいよいよmakeです。

$ make

エラーがいくつか出てきます。テキストエディタで(gzFile)を記入していきます。

In file included from rendererContext.cpp:77:0:
ribOut.h: In member function ‘void CRibOut::vout(const char*, __va_list_tag*)’:
ribOut.h:240:61: error: cannot convert ‘FILE* {aka _IO_FILE*}’ to ‘gzFile {aka gzFile_s*}’ for argument ‘1’ to ‘int gzwrite(gzFile, voidpc, unsigned int)’
if (outputCompressed) gzwrite(outFile,scratch,l);
^
ribOut.h: In member function ‘void CRibOut::out(const char*, ...)’:
ribOut.h:261:61: error: cannot convert ‘FILE* {aka _IO_FILE*}’ to ‘gzFile {aka gzFile_s*}’ for argument ‘1’ to ‘int gzwrite(gzFile, voidpc, unsigned int)’
if (outputCompressed) gzwrite(outFile,scratch,l);
^
rendererContext.cpp: In member function ‘virtual void CRendererContext::RiError(int, int, const char*)’:
rendererContext.cpp:4706:20: warning: format not a string literal and no format arguments [-Wformat-security]
fprintf(out,tmp);
^
Makefile:485: recipe for target 'rendererContext.lo' failed
make[4]: *** [rendererContext.lo] Error 1
make[4]: Leaving directory '/home/yokamak/Download/Pixie/src/ri'


ファイルribOut.h
240行目
if (outputCompressed) gzwrite((gzFile)outFile,scratch,l);240
261行目
if (outputCompressed) gzwrite((gzFile)outFile,scratch,l);261
(gzFile)を追記します。

$ makeします。


rib.l: In function ‘int riblex(YYSTYPE*)’:
rib.l:211:5: error: ‘riblval’ was not declared in this scope
\"[^\"]*\" { riblval->string = rstrdup(ribtext+1,CRenderer::globalMemory); riblval->string[strlen(riblval->string)-1] = '\0'; return RIB_TEXT;}
^~~~~~~
rib.l:211:5: note: suggested alternative: ‘ribval’
\"[^\"]*\" { riblval->string = rstrdup(ribtext+1,CRenderer::globalMemory); riblval->string[strlen(riblval->string)-1] = '\0'; return RIB_TEXT;}
^~~~~~~
ribval
In file included from rib.y:2835:0:
rib.l:212:44: error: ‘riblval’ was not declared in this scope
[+-]?([0-9]+|([0-9]*(\.[0-9]+)?)([eE][+-]?[0-9]+)?) { /*sscanf(ribtext,"%f",&riblval->real);*/ riblval->real = (float) atof(ribtext); return RIB_FLOAT; }
^~~~~~~
rib.l:212:44: note: suggested alternative: ‘ribval’
[+-]?([0-9]+|([0-9]*(\.[0-9]+)?)([eE][+-]?[0-9]+)?) { /*sscanf(ribtext,"%f",&riblval->real);*/ riblval->real = (float) atof(ribtext); return RIB_FLOAT; }
^~~~~~~
ribval
In file included from rib.y:2835:0:
rib.l:213:44: error: ‘riblval’ was not declared in this scope
[+-]?([0-9]+|([0-9]+(\.[0-9]*)?)([eE][+-]?[0-9]+)?) { /*sscanf(ribtext,"%f",&riblval->real);*/ riblval->real = (float) atof(ribtext); return RIB_FLOAT; }
^~~~~~~
rib.l:213:44: note: suggested alternative: ‘ribval’
[+-]?([0-9]+|([0-9]+(\.[0-9]*)?)([eE][+-]?[0-9]+)?) { /*sscanf(ribtext,"%f",&riblval->real);*/ riblval->real = (float) atof(ribtext); return RIB_FLOAT; }
^~~~~~~
ribval
In file included from rib.y:2835:0:
rib.l:216:3: error: ‘riblval’ was not declared in this scope
#\!.* { riblval->string = rstrdup(ribtext+2,CRenderer::globalMemory); return RIB_STRUCTURE_COMMENT; }
^~~~~~~
rib.l:216:3: note: suggested alternative: ‘ribval’
#\!.* { riblval->string = rstrdup(ribtext+2,CRenderer::globalMemory); return RIB_STRUCTURE_COMMENT; }
^~~~~~~
ribval
In file included from rib.y:2835:0:
rib.l:226:29: error: cannot convert ‘FILE* {aka _IO_FILE*}’ to ‘gzFile {aka gzFile_s*}’ for argument ‘1’ to ‘int gzclose(gzFile)’
gzclose(ribin);
^
In file included from rib.y:2835:0:
rib.l:246:29: error: cannot convert ‘FILE* {aka _IO_FILE*}’ to ‘gzFile {aka gzFile_s*}’ for argument ‘1’ to ‘int gzclose(gzFile)’
gzclose(ribin);
^
In file included from rib.y:2835:0:
lex.rib.cpp: In function ‘int yy_get_next_buffer()’:
rib.l:20:77: error: cannot convert ‘FILE* {aka _IO_FILE*}’ to ‘gzFile {aka gzFile_s*}’ for argument ‘1’ to ‘int gzread(gzFile, voidp, unsigned int)’
YY_INPUT(buf, retval, maxlen) if ( (retval = gzread(ribin,buf,maxlen)) < 0) \
^
lex.rib.cpp:2636:3: note: in expansion of macro ‘YY_INPUT’
YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
^~~~~~~~
rib.y: In function ‘void ribParse(const char*, void (*)(const char*, ...))’:
rib.y:2943:17: error: cannot convert ‘FILE* {aka _IO_FILE*}’ to ‘gzFile {aka gzFile_s*}’ for argument ‘1’ to ‘int gzclose(gzFile)’
gzclose(ribin);
^
Makefile:485: recipe for target 'rib.lo' failed
make[4]: *** [rib.lo] Error 1

上記のエラーは、https://sourceforge.net/projects/pixie/のticketに書いてあります。

--- gentoo/media-gfx/pixie/pixie-2.2.6-r1.ebuild 2012-03-10 10:19:20.000000000 +0100
+++ myrep/media-gfx/pixie/pixie-2.2.6-r1.ebuild 2015-01-26 04:47:00.000000000 +0100
@@ -55,6 +55,9 @@
# parallelism can break the regeneration process, with resulting
# missing shaders.
rm "${S}"/shaders/*.sdr
+
+ # FIX: flex does not translate variable name in custom YY_DECL
+ sed -i -e '/define YY_DECL/ s/yylval/riblval/' src/ri/rib.l
}

src_configure() {


以下を実行します。
$ sed -i -e '/define YY_DECL/ s/yylval/riblval/' src/ri/rib.l


続けて
$ makeします。

In file included from rib.y:2835:0:
rib.l: In function ‘int riblex(YYSTYPE*)’:
rib.l:226:29: error: cannot convert ‘FILE* {aka _IO_FILE*}’ to ‘gzFile {aka gzFile_s*}’ for argument ‘1’ to ‘int gzclose(gzFile)’
gzclose(ribin);
^
In file included from rib.y:2835:0:
rib.l:246:29: error: cannot convert ‘FILE* {aka _IO_FILE*}’ to ‘gzFile {aka gzFile_s*}’ for argument ‘1’ to ‘int gzclose(gzFile)’
gzclose(ribin);
^
In file included from rib.y:2835:0:
lex.rib.cpp: In function ‘int yy_get_next_buffer()’:
rib.l:20:77: error: cannot convert ‘FILE* {aka _IO_FILE*}’ to ‘gzFile {aka gzFile_s*}’ for argument ‘1’ to ‘int gzread(gzFile, voidp, unsigned int)’
YY_INPUT(buf, retval, maxlen) if ( (retval = gzread(ribin,buf,maxlen)) < 0) \
^
lex.rib.cpp:2636:3: note: in expansion of macro ‘YY_INPUT’
YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
^~~~~~~~
rib.y: In function ‘void ribParse(const char*, void (*)(const char*, ...))’:
rib.y:2943:17: error: cannot convert ‘FILE* {aka _IO_FILE*}’ to ‘gzFile {aka gzFile_s*}’ for argument ‘1’ to ‘int gzclose(gzFile)’
gzclose(ribin);
^
Makefile:485: recipe for target 'rib.lo' failed
make[4]: *** [rib.lo] Error 1
make[4]: Leaving directory '/home/yokamak/Download/Pixie/src/ri'
Makefile:328: recipe for target 'all' failed
make[3]: *** [all] Error 2


ファイルrib.l :20行目
#define YY_INPUT(buf, retval, maxlen) if ( (retval = gzread((gzFile)ribin,buf,maxlen)) < 0)

:226行目と :246行目
gzclose((gzFile)ribin);

続けて
$ makeします。

rib.y: In function ‘void ribParse(const char*, void (*)(const char*, ...))’:
rib.y:2943:17: error: cannot convert ‘FILE* {aka _IO_FILE*}’ to ‘gzFile {aka gzFile_s*}’ for argument ‘1’ to ‘int gzclose(gzFile)’
gzclose(ribin);
^
Makefile:485: recipe for target 'rib.lo' failed
make[4]: *** [rib.lo] Error 1

ファイルrib.y
:2943行目
#ifdef HAVE_ZLIB
gzclose((gzFile)ribin);
#else

続けて
$ makeします。

ribOut.cpp: In destructor ‘virtual CRibOut::~CRibOut()’:
ribOut.cpp:165:20: error: cannot convert ‘FILE* {aka _IO_FILE*}’ to ‘gzFile {aka gzFile_s*}’ for argument ‘1’ to ‘int gzclose(gzFile)’
gzclose(outFile);
^
Makefile:485: recipe for target 'ribOut.lo' failed

ファイルribOut.cpp
:165行目
gzclose((gzFile)outFile);

続けて
$ makeします。

make[3]: Leaving directory '/home/yokamak/Download/Pixie/src/sdrinfo'
Making all in show
make[3]: Entering directory '/home/yokamak/Download/Pixie/src/show'
make[3]: Nothing to be done for 'all'.
make[3]: Leaving directory '/home/yokamak/Download/Pixie/src/show'
make[3]: Entering directory '/home/yokamak/Download/Pixie/src'
make[3]: Nothing to be done for 'all-am'.
make[3]: Leaving directory '/home/yokamak/Download/Pixie/src'
make[2]: Leaving directory '/home/yokamak/Download/Pixie/src'
Making all in doc
make[2]: Entering directory '/home/yokamak/Download/Pixie/doc'
make[2]: Nothing to be done for 'all'.
make[2]: Leaving directory '/home/yokamak/Download/Pixie/doc'
make[2]: Entering directory '/home/yokamak/Download/Pixie'
make[2]: Leaving directory '/home/yokamak/Download/Pixie'
make[1]: Leaving directory '/home/yokamak/Download/Pixie'

make完了!!!
管理者権限で、
$ sudo -i
# make install

これで/opt/pixie/にインストールされました。shaderをコンパイルしなおします。

root@bodhi:/home/yokamak/Download/Pixie# cd /opt/pixie/shaders/
root@bodhi:/opt/pixie/shaders# /opt/pixie/bin/sdrc *.sl
Compiling ambientindirect.sl
Compiling ambientlight.sl
Compiling ambientocclusion.sl
Compiling arealight.sl
Compiling constant.sl
Compiling distantlight.sl
Compiling fog.sl
Compiling glass.sl
Compiling matte.sl
Compiling metal.sl
Compiling mirror.sl
Compiling mtorDirectionalLight.sl
Compiling mtorLambert.sl
Compiling mtorPhong.sl
Compiling normdir.sl
Compiling paintedmatte.sl
Compiling paintedplastic.sl
Compiling plastic.sl
Compiling pointlight.sl
Compiling rayarea.sl
Compiling raydistant.sl
Compiling raypoint.sl
Compiling shadowarea.sl
Compiling shadowdistant.sl
Compiling shadowpoint.sl
Compiling shadowspot.sl
Compiling spotlight.sl
root@bodhi:/opt/pixie/shaders# logout (ctrl+dで)

最後にPixie RendererのPATHを編集します。
yokamak@bodhi:~/Download/Pixie$ cd ~
yokamak@bodhi:~$ nano .profile
以下を記入
export PIXIEHOME=/opt/pixie/
export PATH=$PATH:$PIXIEHOME/bin
export SHADERS=$PIXIEHOME/shaders

$ source .profileを実行。
以下のaqsis rendererのsimple.ribを実行してみます。
$ rndr -d simple.rib
##RenderMan RIB-Structure 1.0
FrameBegin 1
Display "simple.tif" "framebuffer" "rgba"
Format 640 480 -1
ShadingRate 1
Projection "perspective" "fov" [30]
FrameAspectRatio 1.33
Identity
# Default distant headlight
LightSource "distantlight" 1
# Camera transformation
Translate 0 0 5
WorldBegin
Identity
AttributeBegin
Color [1.0 0.6 0.0] # A nice orange color
Surface "plastic" "Ka" [1] "Kd" [0.5] "Ks" 1 "roughness" 0.1
TransformBegin
Rotate 90 1 0 0 # Rotate +z to +y. "Up" in default camera coordinates is +y,
Sphere 1 -1 1 360 # but the Sphere primitive has its poles on the z axis.
TransformEnd
AttributeEnd
WorldEnd
FrameEnd

simple.jpg
  • -
  • -

Structure Synth

オープンソースのStructure SynthからRenderMan RIBを出せるようにちょっとやってみた。
http://structuresynth.sourceforge.net/

市松模様づくり参考に試してみました。
http://kyle-in-jp.blogspot.com/2009/07/structure-synth_10.html
RenderMan RIBも出力できるようにテンプレート調整してみた。
structuresynth_.jpg

こちらの記事も参考にしてみた。
http://shin-ishimaru.cocolog-nifty.com/blog/2009/03/structure-syn-1.html
structuresynth2.jpg
地面のレンダリングがずれてしまうので、RIBのTransformをいじってみた。
TransformBegin
Translate 0 -1 0
Scale 300 1 300
#ConcatTransform[ 300 0 0 0 0 1 0 0 0 0 300 0 -149.5 -1 -149.5 1]
ObjectInstance "box"
TransformEnd

RenderMan24.4でレンダリングしました。
ライトは4つ。
Light "PxrRectLight" "light4" "color lightColor" [1 1 1] "float intensity" [3] "float exposure" [0.5] "int traceLightPaths" [1]
ishimaru2.jpg


デフォルトのデータは、こんな感じ
structuresynth.jpg

ということで、カメラ周りは逆行列を求めないといけないので、
python cgkitを使って、ConcatTransformを求めてみました。
以下は、テンプレート抜粋

#placecam.py {CamPosX} {CamPosY} {CamPosZ} {CamTargetX} {CamTargetY} {CamTargetZ}
#up {CamUpX} {CamUpY} {CamUpZ}
# cgkit commandline
# V=mat4(1).lookAt(pos=({CamPosX}, {CamPosY}, {CamPosZ}),target=({CamTargetX}, {CamTargetY}, {CamTargetZ}),up=({CamUpX}, {CamUpY}, {CamUpZ}))
# vt=(V.inverse()).transpose()
# fov {fov}
Scale -1 1 1
ConcatTransform [{CamColumnMatrix}]


ConcatTransform [{CamColumnMatrix}]部分は逆行列にしないとダメなんで、Structure SynthからExportした後、
以下python2.7のインタラクティブモードで、

from cgkit.all import *
V=mat4(1).lookAt(pos=(7.83552, 12.4411, 18.2554),target=(7.92488, -46.149, -34.0976),up=(-0.170831, 0.656364, -0.734849))
vt=V.inverse()
print("ConcatTransform ["+'{:.6f}'.format(vt[0][0])+' '+'{:.6f}'.format(vt[1][0])+' '+'{:.6f}'.format(vt[2][0])+' '+'{:.6f}'.format(vt[3][0])+' '+'{:.6f}'.format(vt[0][1])+' '+'{:.6f}'.format(vt[1][1])+' '+'{:.6f}'.format(vt[2][1])+' '+'{:.6f}'.format(vt[3][1])+' '+'{:.6f}'.format(vt[0][2])+' '+'{:.6f}'.format(vt[1][2])+' '+'{:.6f}'.format(vt[2][2])+' '+'{:.6f}'.format(vt[3][2])+' '+'{:.6f}'.format(vt[0][3])+' '+'{:.6f}'.format(vt[1][3])+' '+'{:.6f}'.format(vt[2][3])+' '+'{:.6f}'.format(vt[3][3])+' '+"]")

求めてみた。
以前、出力の順番を間違えていたので修正しました。ありがとうございます。
structuresynth0.jpg
  • -
  • -

Structure Synthのtriangle

Structure Synthのtriangleは、templateでの出力には、対応していない。

triangleを使って、pyramidを作る。x軸周りに-90回転、y軸方向に8倍したruleを定義。



// Write EisenScript code here...
rule pyramid {
triangle[0,0,0;1,0,0;0.5,0.5,0.5]
triangle[1,0,0;1,1,0;0.5,0.5,0.5]
triangle[1,1,0;0,1,0;0.5,0.5,0.5]
triangle[0,1,0;0,0,0;0.5,0.5,0.5]
}


rule p2 { { y 4 s 3 8 3 rx -90 color green} pyramid
}
p2
5 * { x 5 }p2

{y -1 s 100 1 100 color white }box

pyramid.png
template出力した。RIBを編集する。
いろいろ、工夫次第です。

ObjectBegin "bbox"
Polygon "P" [0 0 0 1 0 0 0.5 0.5 0.5]
Polygon "P" [1 0 0 1 1 0 0.5 0.5 0.5]
Polygon "P" [1 1 0 0 1 0 0.5 0.5 0.5]
Polygon "P" [0 1 0 0 0 0 0.5 0.5 0.5]
ObjectEnd

Bxdf "PxrDisney" "obj1_mat1" "color baseColor" [0.1 0.4 0.6]
TransformBegin
ConcatTransform[ 3 0 0 0 0 0 -3 0 0 8 0 0 19 0.5 18 1]
ObjectInstance "bbox"
TransformEnd

ありがとうございます。
prmanからの出力、4つのPxrRectLight使用。
structuresynth06.jpg

Structure Synth and RenderMan24.3
structuresynth04.jpg
  • -
  • -

XRT Renderer2.5 動きました。

Windows only.
it works under Windows11.
Thank you.

C:\xrt-2.5.0>set PYTHONPATH=;C:\xrt-2.5.0\\bin
C:\xrt-2.5.0>set OIIO_LIBRARY_PATH=C:\xrt-2.5.0\\plugins
C:\xrt-2.5.0>set RENDERER=xrt
C:\xrt-2.5.0>set COMPILER=oslc
C:\xrt-2.5.0>set TEXER=maketx
C:\xrt-2.5.0>set LIB=;C:\xrt-2.5.0\\lib
C:\xrt-2.5.0>set LIBRI=libri
C:\xrt-2.5.0>set INCLUDE=;C:\xrt-2.5.0\\include
C:\xrt-2.5.0>set SHADEREXT=osl
C:\xrt-2.5.0>set COMPILEEXT=oso
C:\xrt-2.5.0>set IMAGEEXT=png
C:\xrt-2.5.0>if AMD64 == x86 (call "C:\Program Files\Microsoft Visual Studio 10.0\VC\bin"\vcvars32.bat ) else (call "C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\bin"\vcvars32.bat )
C:\xrt-2.5.0>"C:\Program Files (x86)\Microsoft Visual Studio 9.0\Common7\Tools\vsvars32.bat"
Setting environment for using Microsoft Visual Studio 2008 x86 tools.

Illum2.png
サイトにはつながりにくい。
pygとpythonは、32bitかな?
ImportError: DLL load failed while importing _ribclient: %1 は有効な Win32 アプリケーションではありません。
エラー解決。Python2.7.16の32bitをインストールし、pythonpathを
xrt.batを書き換えたら、python周りは動きました。
set XRT_HOME=%~dp0
set PATH=%XRT_HOME%\bin;c:\python27_32;%PATH%
set PYTHONPATH=c:\python27_32;%XRT_HOME%\bin



以下、過去記事
■2011年3月5日の記事
Structure Synthについて検索していたら、
レイトレーシング・レンダラのXRT Rendererを見つけた。
ダウンロードサイトはこちら
http://xrt.wikidot.com/
Windows Only
インストールに必要なものは、解凍ソフトの7-zip
解凍したら、C:\xrt1.0を環境変数のPathに追加しておく。
次に、Microsoft Visual Studio 10.0 Visual C++ Expressをダウンロードし、インストールしてしまう。
xrt1.0フォルダにある。xrt.bat内の最後の行を以下に書き換える。
call "C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin"\vcvars32.bat

Python2.6.6をインストールしておく。Python2.5との共存はちょっとわからないので、2.5はアンインストールした。

XRT rendererのサイトからexampleもダウンロードしてxrt1.0フォルダに入れておく。

さて、実行方法は、コマンドプロンプトから、
C:\xrt1.0>xrt.bat
C:\xrt1.0>set RENDERER=xrt
C:\xrt1.0>set COMPILER=slc
C:\xrt1.0>set TEXER=maketx
C:\xrt1.0>set LIB=;C:\xrt1.0\\lib
C:\xrt1.0>set LIBRI=libri
C:\xrt1.0>set INCLUDE=;C:\xrt1.0\\include
C:\xrt1.0>set COMPILEEXT=shader.dll
C:\xrt1.0>set IMAGEEXT=png
C:\xrt1.0>call "C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin"\vcva
rs32.bat
Setting environment for using Microsoft Visual Studio 2010 x86 tools.

続いてexampleフォルダに行き、
C:\xrt1.0\examples\quadrics>make.bat compile
metal01.cpp
ライブラリ .\metal01.shader.lib とオブジェクト .\metal01.shader.exp を作成中
コード生成しています。
コード生成が終了しました。
.\metal01.shader.dll generated !
シェーダを再コンパイルします。
レンダリングは、
C:\xrt1.0\examples\quadrics>make.bat render
フォルダ内のRIBはすべてレンダリングします。
make.bat cleanでフォルダ内の中間ファイルやレンダリング画像を削除してくれます。要は全部バッチファイル内に記述されています。

nVidia GelatoのPygファイルは、QuadroFXなどのカードがなくても、
XRT Rendererがレンダリングしてくれます。
RenderMan RIBでは、Aqsis,BMRT,jrManのサンプルファイルをレンダリングします。
そのほか、Standard Procedural Databases のNeutral File Format (NFF) もレンダリングします。

あと、Structure Synthでつくったモデルをpygで出力するエクスポータが付属しています。Structure Synthのmiscフォルダに入れておくとよいですが、Lookatモジュールが見当たらないということで、動いていません。
要検討です。

簡単なpygファイルもレンダリングしました。
spotlightシェーダも影を出すスクリプトをコンパイルしてからレンダリングしたら、きちんと影がでます。
今のところレンダリングは遅いです。マルチスレッド対応してません。
今後に期待したいところです。
シーン記述言語を学ぶ学習ツールとしてはまったりと最適かな、と思います。
ありがとうございます。
  • -
  • -

Pixar RenderMan24.4 install under Linux lite4.2

sudo apt-get -y install alien

sudo alien -cv RenderMan-InstallerNCR-24.4.0_2226589-linuxRHEL7_gcc63icc190.x86_64.rpm

sudo dpkg -i renderman-installerncr_24.4.02226589-1_amd64.deb

sudo alien -cv libicu-50.2-4.el7_7.x86_64.rpm
https://rpmfind.net/linux/rpm2html/search.php?query=libicui18n.so.50()(64bit)

sudo dpkg -i libicu_50.2-5_amd64.deb

cd /etc/ld.so.conf.d

sudo nano hoge.conf

sudo ldconfig

sudo ldconfig -p | grep libicui18n
libicui18n.so.66 (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libicui18n.so.66
libicui18n.so.60 (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libicui18n.so.60
libicui18n.so.55 (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libicui18n.so.55
libicui18n.so.50 (libc6,x86-64) => /usr/lib64/libicui18n.so.50


sudo ./RenderManInstaller

export RMANTREE=/opt/pixar/RenderManProServer-24.4/

export PYTHONPATH=$PYTHONPATH:$RMANTREE/bin
export PYTHONPATH=$PYTHONPATH:$RMANTREE/bin/pythonbindings

Thank you
001.png
002.png
003.png
  • -
  • -

RenderMan24.4をFedora Linux 37にinstall

■RenderMan24.4をFedora Linux 37にインストール際に、出たエラー解決確認方法
インストーラは古いバージョンで動いているので、古いrpmをインストーラにコピーし、
ライブラリは、シンボリックリンクをつくってあげます。
libssl.so.1.0
libcrypto.so.1.0
libtinfo.so.5

-----------------------------------------------------------------------------------------------
sudo ./RenderManInstaller
./RenderManInstaller: error while loading shared libraries: libicui18n.so.50: cannot open shared object file: No such file or directory
-----------------------------------------------------------------------------------------------
■Fedora Linux 37にlibicui18n.so.50がない。
]$locate libicui18n.so
/usr/lib/libicui18n.so
/usr/lib/libicui18n.so.71
/usr/lib/libicui18n.so.71.1
/usr/lib64/libicui18n.so
/usr/lib64/libicui18n.so.71
/usr/lib64/libicui18n.so.71.1


■error01
-----------------------------------------------------------------------------------------------
/opt/pixar/RenderMan-Installer-ncr-24.4/bin/RenderManInstaller: error while loading shared libraries: libicui18n.so.50: cannot open shared object file: No such file or directory
-----------------------------------------------------------------------------------------------
Visit libicu-50.2-4.el7_7.x86_64.rpm package page

Download the Binary Package with given URL

libicu-50.2-4.el7_7.x86_64.rpmをダウンロードしてくる。
■Downloadsフォルダの中で解凍
In ~/Downloads/, unpack the package with

]$ rpm2cpio libicu-50.2-4.el7_7.x86_64.rpm | cpio -idmv

■コピーする。
Copy the files into RenderMan installer folder
sudo cp ~/Downloads/usr/lib64/* /opt/pixar/RenderMan-Installer-ncr-24.4/lib/3rdparty/Qt-5.12.6/lib/

■中身確認
RenderMan-Installer-ncr-24.4]$ cd lib/3rdparty/Qt-5.12.6/lib/
lib]$ ls
libQt5Core.so libQt5Svg.so.5.12
libQt5Core.so.5 libQt5Svg.so.5.12.6 libicudata.so.50
libQt5Core.so.5.12 libQt5Widgets.so libicudata.so.50.2
libQt5Core.so.5.12.6 libQt5Widgets.so.5 libicui18n.so.50
libQt5DBus.so libQt5Widgets.so.5.12 libicui18n.so.50.2
libQt5DBus.so.5 libQt5Widgets.so.5.12.6 libicuio.so.50
libQt5DBus.so.5.12 libQt5XcbQpa.so libicuio.so.50.2
libQt5DBus.so.5.12.6 libQt5XcbQpa.so.5 libicule.so.50
libQt5Gui.so libQt5XcbQpa.so.5.12 libicule.so.50.2
libQt5Gui.so.5 libQt5XcbQpa.so.5.12.6 libiculx.so.50
libQt5Gui.so.5.12 libQt5Xml.so libiculx.so.50.2
libQt5Gui.so.5.12.6 libQt5Xml.so.5 libicutest.so.50
libQt5Network.so libQt5Xml.so.5.12 libicutest.so.50.2
libQt5Network.so.5 libQt5Xml.so.5.12.6 libicutu.so.50
libQt5Network.so.5.12 libQt5XmlPatterns.so libicutu.so.50.2
libQt5Network.so.5.12.6 libQt5XmlPatterns.so.5 libicuuc.so.50
libQt5Svg.so libQt5XmlPatterns.so.5.12 libicuuc.so.50.2
libQt5Svg.so.5 libQt5XmlPatterns.so.5.12.6


■ ~]$ nano .bash_profileで以下を書き込む。
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/pixar/RenderMan-Installer-ncr-24.4/lib/3rdparty/Qt-5.12.6/lib

]$ source .bash_profile

■error02
-----------------------------------------------------------------------------------------------
Failed to get license file Failed to query serial number: an unknown network-related error was detected
-----------------------------------------------------------------------------------------------
the problem is that system has newer libssl version 1.1 (libssl.so.1.1), which is not compatible with RenderManInstaller included QT libraries.But system also has libssl version 1.0, for example libssl.so.1.0.2.

Renderman in requiring old libssl1.0-dev

The installation requested libssl.so.1.0.0 and libcrypto.so.1.0.0 which Fedora 37 does not contain.
The solution is to make symlinks as bellow:

# ln -s /usr/lib64/libssl.so.10 /usr/lib64/libssl.so.1.0.0
# ln -s /usr/lib64/libcrypto.so.10 /usr/lib64/libcrypto.so.1.0.0

lib64]$ sudo ln -s libssl.so.10 libssl.so.1.0
lib64]$ ls libssl*
libssl.so libssl.so.1.0.2o libssl.so.1.1.1q libssl.so.3 libssl3.so
libssl.so.1.0 libssl.so.1.1 libssl.so.10 libssl.so.3.0.5
[mac@mac-local lib64]$ ls libcry*
libcrypt.so libcrypto.so.1.0.2o libcryptsetup.so.12
libcrypt.so.1 libcrypto.so.1.1 libcryptsetup.so.12.8.0
libcrypt.so.1.1.0 libcrypto.so.1.1.1q libcryptui.so.0
libcrypt.so.2 libcrypto.so.10 libcryptui.so.0.0.0
libcrypt.so.2.0.0 libcrypto.so.3
libcrypto.so libcrypto.so.3.0.5
lib64]$ sudo ln -s libcrypto.so.10 libcrypto.so.1.0
lib64]$ ls libcry*
libcrypt.so libcrypto.so.1.0 libcrypto.so.3.0.5
libcrypt.so.1 libcrypto.so.1.0.2o libcryptsetup.so.12
libcrypt.so.1.1.0 libcrypto.so.1.1 libcryptsetup.so.12.8.0
libcrypt.so.2 libcrypto.so.1.1.1q libcryptui.so.0
libcrypt.so.2.0.0 libcrypto.so.10 libcryptui.so.0.0.0
libcrypto.so libcrypto.so.3

lib64]$ sudo ln -s libcrypto.so.10 libcrypto.so.1.0

lib64]$ ls libcrypto*
libcrypto.so libcrypto.so.1.0.2o libcrypto.so.1.1.1q libcrypto.so.3
libcrypto.so.1.0 libcrypto.so.1.1 libcrypto.so.10 libcrypto.so.3.0.5

]$ sudo ln -s /usr/lib64/libssl.so.1.0 /opt/pixar/RenderMan-Installer-ncr-24.4/lib/3rdparty/Qt-5.12.6/lib/libssl.so
]$ sudo ln -s /usr/lib64/libcrypto.so.1.0 /opt/pixar/RenderMan-Installer-ncr-24.4/lib/3rdparty/Qt-5.12.6/lib/libcrypto.so


]$ sudo ldconfig


■error03
-----------------------------------------------------------------------------------------------
~]$ prman -version
prman: error while loading shared libraries: libtinfo.so.5: cannot open shared object file: No such file or directory
-----------------------------------------------------------------------------------------------
]$ cd /usr/lib64
[mac@mac-local lib64]$ ls libti*
libtic.so.6 libtiff.so.5.8.0 libtimezonemap.so.1 libtirpc.so
libtic.so.6.3 libtiffxx.so libtimezonemap.so.1.0.0 libtirpc.so.3
libtiff.so libtiffxx.so.5 libtinfo.so.6 libtirpc.so.3.0.0
libtiff.so.5 libtiffxx.so.5.8.0 libtinfo.so.6.3

lib64]$ sudo ln -s libtinfo.so.6 libtinfo.so.5

lib64]$ ls libti*
libtic.so.6 libtiff.so.5.8.0 libtimezonemap.so.1 libtinfo.so.6.3
libtic.so.6.3 libtiffxx.so libtimezonemap.so.1.0.0 libtirpc.so
libtiff.so libtiffxx.so.5 libtinfo.so.5 libtirpc.so.3
libtiff.so.5 libtiffxx.so.5.8.0 libtinfo.so.6 libtirpc.so.3.0.0

]$ sudo ldconfig

]$ prman -version
Pixar PhotoRealistic RenderMan 24.4
linked Fri Apr 15 20:13:51 2022 PDT @2226585
build linuxRHEL7_x86-64_gcc63icc190_external_release
copyright (c) 1988-2022 Pixar.


■error04
-----------------------------------------------------------------------------------------------
]$ prman -d it simple.rib
RZ0000 {WARNING}: Stats Init - Stats config file not found in config search path(s): stats.ini
exec failed for /opt/pixar/RenderManProServer-24.4/bin/etc/sbrokerd: No such file or directory
RZ0000 {WARNING}: Session - Failed register live stats server with a broker. Clients will need to explicitly connect to server: 127.0.0.1:42451
R50009 {SEVERE} License location is not set in rendermn.ini - aborting.
RZ0000 {WARNING}: WebSocketStatsServer - Failed to unregister server ID PRManBegin Session_statsserver_9247
-----------------------------------------------------------------------------------------------

-----------------------------------------------------------------------------------------------
]$ prman -d it simple.rib
it: error while loading shared libraries: libicui18n.so.50: cannot open shared object file: No such file or directory
R90011 {SEVERE} Can't open display image simple.tif (System Error: Connection refused)
-----------------------------------------------------------------------------------------------
■nano .bash_profileで以下を書き込む。
#RenderMan
export RMANTREE=/opt/pixar/RenderManProServer-24.4
export PATH=$PATH:$RMANTREE/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:~/Downloads/usr/lib64

↑前で行った、Downloadsフォルダの中で解凍したlibicu-50.2-4.el7_7.x86_64.rpmの中のusr/lib64をLD_LIBRARY_PATHに追記した。libicui18n.so.50が入っている。



occlusiontest.png
occlusiontest2.png
dome2.png
dome3.png
  • -
  • -

<< 15/15