1/1

Go言語でRenderMan

RenderMan bindings for the Go Language. 
Go言語でRenderManをLinuxで設定するのは簡単にできましたが、Windowsにインストールするのは大変でした。Program Filesのスペースに悩まされました。結果としてはPixar RenderManProServerはC:\Program filesにインストールしないで、C:\Pixarにインストールしなおしました。
grasshopper.jpg
付属go_test.goを実行して得た画像。prman16.5でオクルージョンを出せました。prman17.0、prman18.0ではうまく出ません。

追記2013/10/26:
(prman17以降の仕様変更でocclusionは
Attribute "visibility" "int transmission" [1]
とすれば、きちんと表示されます。)


以下、まとめてみました。
■必要なもの
●Windows 32bitの場合
Go言語32bit版
gccコンパイラ MinGWを使いました。

●Windows64bit版
Go言語64bit版
gccコンパイラ TDM-GCC Compiler Suite for Windowsを使いました。
TDM64 bundleをインストールしました
http://tdm-gcc.tdragon.net/

●RenderMan bindings for the Go Language.
gormanはこちらです。
https://github.com/prideout/gorman

1. Download Zipからファイルgorman-master.zipを取得します


 C:\gormanに解凍します。

2. Go言語をC:\goにインストールします


Windows XpへのGo言語のインストールでは、GOPATHは、環境変数として記入する必要があります。バッチでset GOPATH= と設定しても、go envで確認すると反映されていません。

3. gccコンパイラをインストールします


  MinGWだと「C++ Compiler」「MSYS Basic System」「MinGW Developer Toolkit」のコンポーネントを選択してインストールします。
環境変数のPathに編集でパスの最後に以下を追記します。
;C:\MinGW

64bitの場合、TDM-GCC Compiler Suite for WindowsをC:\TDM-GCC-64にインストールします。

4. Pixar RenderManProServerをC:\Pixarにインストールします



5. C:\gormanフォルダにコマンドプロンプトを作ります


  コマンドプロンプトショートカットアイコンを右クリックしプロパティを開きます。
  リンク先の部分を以下のように書き換えます。
  %windir%\system32\cmd.exe /k "chcp 65001"

6. Go言語の確認


  エディタで以下をhello.goで保存します。保存先C:\gorman

package main

import "fmt"

func main() {
fmt.Printf("hello, world\n")
}


コマンドプロンプトから
>go build hello.go
>hello.exe
hello, world

>
と出ればGoは動いています。

7 gormanの設定


64bitではTDM-GCC Compiler Suite for Windowsを読み込むために、以下のようにバッチファイルを作成します。
ファイル名gobat.bat
保存先C:\gorman

set GOROOT=C:\go
set GOPATH=C:\gorman
set PATH=%GOROOT%\bin;C:\TDM-GCC-64\bin;%PATH%



32bitでは
ファイル名gobat.bat
保存先C:\gorman

set GOROOT=C:\go
set GOPATH=C:\gorman
set PATH=%GOROOT%\bin;%PATH%



バッチファイルができたらコマンドプロンプトで
>gobat.bat
続いて環境を確認します。
>go env
set GOARCH=amd64
set GOBIN=
set GOCHAR=6
set GOEXE=.exe
set GOHOSTARCH=amd64
set GOHOSTOS=windows
set GOOS=windows
set GOPATH=C:\gorman
set GORACE=
set GOROOT=C:\go
set GOTOOLDIR=C:\go\pkg\tool\windows_amd64
set TERM=dumb
set CC=gcc
set GOGCCFLAGS=-g -O2 -m64 -mthreads
set CGO_ENABLED=1

GOPATH=C:\gormanが表記されていないと、この後のパッケージrmanがインストールできません。Windows Xpでは、GOPATHを環境変数として記入する必要があります。

8. rmanパッケージのインストール


C:\gormanのコマンドプロンプトから
>go install ./src/rman
たぶんエラーが出ます。
Pixar RenderManProServerのパスが正確でないためです。
C:\gorman\src\rmanフォルダのrman.goを編集します。
エディタで開き、最初の3行目から6行目部分のパスを以下のような相対パスで記述してください。適宜prmanのバージョンは変えてください。

package rman

// #cgo CFLAGS: -I../../../Pixar/RenderManProServer-18.0/include
// #cgo LDFLAGS: -L../../../Pixar/RenderManProServer-18.0/lib -lprman -Wl,-rpath ../../../Pixar/RenderManProServer-18.0/lib
// #include
// #include "ri.h"



再度C:\gormanのコマンドプロンプトから
>go install ./src/rman
しばらくして・・・何もなかったらOK!!
pkgフォルダができていたら完成です。

9. テストをしてみる


テストの前にPixar RenderManProServerのlibフォルダから
libprman.dllをC:\gorman\src\rmanフォルダへコピーします。
C:\gormanのコマンドプロンプトを閉じていたら
>gobat.bat
続いてテストをします。
>go test ./src/rman
しばらくして、本記事の一番上にある画像が出てきたら成功です。
これはC:\gorman\src\rmanフォルダのrman_test.goを実行しています。
フォルダ内にdebug.ribが書き出されるので便利です。


10. サンプル球をビルドしてみる


続いてlibprman.dllをC:\gormanフォルダへコピーします。
>go build sphere.go
>sphere.exe
sphere.jpg
レンダリング画像。
その他、開発者Philip RideoutさんのL-Systemによる画像素晴らしいです。
Go And Renderman
https://github.com/prideout/gorman
Thank You.ありがとうございます。
  • -
  • -

1/1