Rendering学習日記

日々3DCGの世界は進歩しているけど、勉強して理解したことをまとめていきたい。RenderMan互換レンダラーやグローバル・イルミネーション。いろんなことに好奇心を持ち面白くなってくる。目指せShader書き!!

LightFlow for linux 64bit その2

前回64bitでうまくいかなかった。やっとできたのでメモする。
CentOS 64bit環境でpython1.5を32bitビルド試みたが、64bitになってしまう。結局Virtualboxに入れたCentOS i686(32bit)版でビルドしたpython1.5をコピーして、LightFlowが起動した。

以下試みる。CentOS 64bitでビルドしても64bit.
export CFLAGS=-m32
export CXXFLAGS=-m32
echo $CFLAGS
echo $CXXFLAGS
yum install glibc-2.12-1.80.el6_3.5.i686
yum install libstdc++*
yum install libstdc++*.i686
./configure --enable-32bit
make ARCH="-m32"

32bit環境の以下をコピー
/usr/local/bin python1.5
/usr/local/lib python1.5/
/usr/local/include python1.5/
64bit環境にインストールする。
sudo cp python1.5 /usr/local/bin

さらに次のファイルをダウンロードします。
compat-libstdc++-6.2-2.9.0.14.i386.rpm
http://rpm.pbone.net/index.php3/stat/4/idpl/14760/com/compat-libstdc++-6.2-2.9.0.14.i386.rpm.html

インストールします。
[root@localhost]# rpm -ivh compat-libstdc++-6.2-2.9.0.14.i386.rpm
Preparing... ########################################### [100%]
1:compat-libstdc++ ########################################### [100%]

その他、.bashrcに記入
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$HOME/Lightflow
PYTHONPATH=$PYTHONPATH:$HOME/Lightflow
LIGHTFLOWPATH=$HOME/Lightflow
LIGHTFLOW_SE_MEMORY=32000
LIGHTFLOW_VE_MEMORY=32000

export LD_LIBRARY_PATH PYTHONPATH LIGHTFLOWPATH LIGHTFLOW_SE_MEMORY LIGHTFLOW_VE_MEMORY

以下を実行するとレンダリングできました。
Examples]$ python1.5 ball1.py

Lightflow Rendering Tools
Copyright (c) 1995-2000 by Jacopo Pantaleoni. All rights reserved


Pinhole Camera On
Objects : 1

Rendering 300 x 300 pixels
00:00:00 - 87.1%
Windowsより速いです。
Lightflow | - | -

LFexportGUI

Lightflowをblenderで使うプラグイン
LFexportGUI

ダウンロード先

http://www.zoo-logique.org/3D.Blender/index.php3?page=php/python.php3

blender2.28cあたりで動くだろうか。試してみる。
Lightflow | - | -

Lightflow Install Fedora 16 Live USB 32bit

以下 Fedora 16の 32bit版Live USBを作り、Lightflowをインストールしました。 

以下の2ファイルをダウンロード

Downloads]$ ls
lf_redhat.tgz py152.tgz

移動します。
Downloads]$ mv lf_redhat.tgz /home/liveuser/

Downloads]$ mv py152.tgz /home/liveuser/

Downloads]$ cd ..

解凍します。
~]$ tar zxvf lf_redhat.tgz

~]$ tar zxvf py152.tgz

~]$ cd Lightflow/PM/Examples/

テストしてみます。エラーでます。
Examples]$ python ball1.py
Traceback (most recent call last):
File "ball1.py", line 3, in
from lightflowPM import *
ImportError: No module named lightflowPM

Examples]$ cd /home/liveuser/

以下の記述を追加保存します。
~]$ gedit .bash_profile


LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$HOME/Lightflow
PYTHONPATH=$PYTHONPATH:$HOME/Lightflow
LIGHTFLOWPATH=$HOME/Lightflow
LIGHTFLOW_SE_MEMORY=32000
LIGHTFLOW_VE_MEMORY=32000

export LD_LIBRARY_PATH PYTHONPATH LIGHTFLOWPATH LIGHTFLOW_SE_MEMORY LIGHTFLOW_VE_MEMORY

反映させます。
~]$ source .bash_profile

パスが通っているか確認します。
~]$ echo $LIGHTFLOWPATH
/home/liveuser/Lightflow

またテストします。
~]$ cd Lightflow/PM/Examples/
Examples]$ python ball1.py
Traceback (most recent call last):
File "ball1.py", line 3, in
from lightflowPM import *
ImportError: libstdc++-libc6.1-1.so.2: cannot open shared object file: No such file or directory

次のファイルをダウンロードします。
compat-libstdc++-6.2-2.9.0.14.i386.rpm
http://rpm.pbone.net/index.php3/stat/4/idpl/14760/com/compat-libstdc++-6.2-2.9.0.14.i386.rpm.html

[root@localhost liveuser]# cd Downloads/
[root@localhost Downloads]# ls
compat-libstdc++-6.2-2.9.0.14.i386.rpm

移動します。
[root@localhost Downloads]# mv compat-libstdc++-6.2-2.9.0.14.i386.rpm /home/liveuser
[root@localhost Downloads]# cd ..

インストールします。
[root@localhost liveuser]# rpm -ivh compat-libstdc++-6.2-2.9.0.14.i386.rpm
Preparing... ########################################### [100%]
1:compat-libstdc++ ########################################### [100%]

またまたテストします。
Examples]$ python ball1.py
ball1.py:3: RuntimeWarning: Python C API version mismatch for module lightflowPM: This Python has API version 1013, module lightflowPM has version 1007.
from lightflowPM import *

Lightflow Rendering Tools
Copyright (c) 1995-2000 by Jacopo Pantaleoni. All rights reserved

Segmentation fault (core dumped)


Python-1.5.2をビルドします。
Python-1.5.2]$ ./configure

コンパイラが入っていないので、以下のものをインストールします。
Various Compilers install

makeします。
Python-1.5.2]$ make

gcc -g -O2 -I./../Include -I.. -DHAVE_CONFIG_H -c -o fileobject.o fileobject.c
fileobject.c:590:1: error: conflicting types for ‘getline’
/usr/include/stdio.h:677:20: note: previous declaration of ‘getline’ was here
make[1]: *** [fileobject.o] Error 1
make[1]: Leaving directory `/home/liveuser/Python-1.5.2/Objects'
make: *** [Objects] Error 2


fileobject.cを開き、getlineをgetline1に4箇所置き換えます。
Python-1.5.2]$ cd Objects/
[liveuser@localhost Objects]$ gedit fileobject.c

再びmakeします。
Objects]$ cd ..
[liveuser@localhost Python-1.5.2]$ make


[root@localhost Python-1.5.2]# make altinstall
Python-1.5.2]$ python1.5
Python 1.5.2 (#1, Jan 12 2012, 20:40:44) [GCC 4.6.2 20111027 (Red Hat 4.6.2-1)] on linux3
Copyright 1991-1995 Stichting Mathematisch Centrum, Amsterdam
>>> ^Z
[1]+ Stopped python1.5
[liveuser@localhost Python-1.5.2]$

以下を実行するとレンダリングできました。
Examples]$ python1.5 ball1.py

Lightflow Rendering Tools
Copyright (c) 1995-2000 by Jacopo Pantaleoni. All rights reserved


Pinhole Camera On
Objects : 1

Rendering 300 x 300 pixels
00:00:00 - 87.1%

画像を確認します。
[liveuser@localhost Examples]$ eog ball1.tga

さらにレンダリング。Windowsより速いです。
[liveuser@localhost Examples]$ python1.5 mechanic.py

Lightflow Rendering Tools
Copyright (c) 1995-2000 by Jacopo Pantaleoni. All rights reserved


Pinhole Camera On
Objects : 3
00:00:00 - CSEADS 100/100 - boxes 26 - depth 1 - objects 18
00:00:00 - CSEADS 100/100 - boxes 26 - depth 1 - objects 6
LfSoftLight::Init()
00:00:01 - cell 418176 / 418176
LfSoftLight::Init()
00:00:01 - cell 418176 / 418176

Rendering 400 x 400 pixels
00:00:18 - 95.2%

LfDOFImager():
row 400 / 400

[liveuser@localhost Examples]$ eog mechanic.tga
mechanic.jpg
できました。うれしいですね。
Lightflow | - | -

続きLightflow for ubuntu Linux32bit from USBメモリ(成功)

前回から、いろいろ調べて
原因わかりました。

$ python ball1.py
以下エラー出ます。
from lightflowPM import *
ImportError: libstdc++-libc6.0-1.so.2: cannot open shared object file: No such file or directory

この中のlibstdc++-libc6.0-1.so.2を探しましたがありません。

あったのは、libstdc++-libc6.1-1.so.2ですが、これをシンボリックリンクしてもSegmentation fault (コアダンプ)が出ます。

原因はダウンロードしたlf_debian.tgzを使ってたからでした。
DebianやUbuntuでも、Linux RedHat 6.1 Version (1608 Kb)
lf_redhat.tgzをダウンロードして使ってください。

lf_redhat.tgzを解凍しLightflowフォルダから
パスの設定後(他の記事を参考)
$ python ball1.py
Traceback (most recent call last):
File "ball1.py", line 3, in
from lightflowPM import *
ImportError: libstdc++-libc6.1-1.so.2: cannot open shared object file: No such file or directory

libstdc++-libc6.1-1.so.2が出てきます。

以下をダウンロードしインストールします。
libstdc++2.9-glibc2.1_2.91.66-4_i386.deb
http://archive.debian.org/debian/pool/main/e/egcs1.1/libstdc++2.9-glibc2.1_2.91.66-4_i386.deb

$ dpkg -i libstdc++2.9-glibc2.1_2.91.66-4_i386.deb

後はPython1.5.2をビルドして、レンダリングすればOKです。ビルドは他の記事を参考にしてください。

ありがとうございます。
bspline5.jpg
Lightflow | - | -

LightFlow Install Vine Linux on VirtualBox

Lightflowのサイトから
http://www.lightflowtech.com/

Linux RedHat 6.1 Version (1608 Kb)
lf_redhat.tgzをダウンロード

http://www.python.org/download/releases/1.5/
Python 1.5.2 sources (2.5 MB)をダウンロード

lf_redhat.tgz をカレントホームディレクトリ (~) に置いておいたとして、

$ cd ~
@localhost ~]$ tar zxvf lf_redhat.tgz

で展開されます。~/Lightflow/ ディレクトリがあると思います。インストール方法については Lightflow/README に書いてあるので、それを読んで自分でインストールできる人は好きな方法でインストールして下さい。

/usr/lib などにファイルをコピーしたくなかったので、ここでは README に書いてある方法の Solution 2: Personal Install を行いました。これは自分のホームディレクトリに Lightflow のファイルを置いたまま使えるようにする方法です。Lightflow はホーム (~) にあるものとして、~/.bash_profile に次の行を追加しました。
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$HOME/Lightflow
PYTHONPATH=$PYTHONPATH:$HOME/Lightflow
LIGHTFLOWPATH=$HOME/Lightflow
LIGHTFLOW_SE_MEMORY=32000
LIGHTFLOW_VE_MEMORY=32000

export LD_LIBRARY_PATH PYTHONPATH LIGHTFLOWPATH LIGHTFLOW_SE_MEMORY LIGHTFLOW_VE_MEMORY



@localhost ~]$ tar zxvf py152.tgz

@localhost Examples]$ cd Lightflow/PM/Examples/

@localhost Examples]$ python ball1.py
Traceback (most recent call last):
File "ball1.py", line 3, in
from lightflowPM import *
ImportError: No module named lightflowPM

@localhost Examples]$ cd ~
@localhost ~]$ ls -a
.bash_profile

@localhost ~]$ leafpad .bash_profile

LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$HOME/Lightflow
PYTHONPATH=$PYTHONPATH:$HOME/Lightflow
LIGHTFLOWPATH=$HOME/Lightflow
LIGHTFLOW_SE_MEMORY=32000
LIGHTFLOW_VE_MEMORY=32000

export LD_LIBRARY_PATH PYTHONPATH LIGHTFLOWPATH LIGHTFLOW_SE_MEMORY LIGHTFLOW_VE_MEMORY

@localhost ~]$ source .bash_profile

@localhost ~]$ echo $LIGHTFLOWPATH
/home/*****/Lightflow

@localhost ~]$ cd Lightflow/PM/Examples/

@localhost Examples]$ python ball1.py
Traceback (most recent call last):
File "ball1.py", line 3, in
from lightflowPM import *
ImportError: libstdc++-libc6.1-1.so.2: cannot open shared object file: No such file or directory


以下のファイルをダウンロードしてきます。
compat-libstdc++-6.2-2.9.0.14.i386.rpm
http://rpm.pbone.net/index.php3/stat/4/idpl/14760/com/compat-libstdc++-6.2-2.9.0.14.i386.rpm.html


@localhost ~]$ sudo rpm -ivh compat-libstdc++-6.2-2.9.0.14.i386.rpm
準備中... ########################################### [100%]
1:compat-libstdc++ ########################################### [100%]


@localhost ~]$ cd Lightflow/PM/Examples/

@localhost Examples]$ python ball1.py
ball1.py:3: RuntimeWarning: Python C API version mismatch for module lightflowPM: This Python has API version 1013, module lightflowPM has version 1007.

@localhost Examples]$ cd ~
@localhost ~]$ cd Python-1.5.2/
@localhost Python-1.5.2]$ ./configure
............
............
creating ./config.status
creating Makefile
creating Objects/Makefile
creating Parser/Makefile
creating Python/Makefile
creating Modules/Makefile.pre
creating Modules/Setup.thread
creating config.h

@localhost Python-1.5.2]$ make
bash: make: コマンドが見つかりません
以下のファイルをダウンロードしてきます。
make-3.81-8vl6.i686.rpm

http://ftp.yz.yamagata-u.ac.jp/pub/linux/Vine/Vine-6.0/i386/Vine/RPMS/

ftp.yz.yamagata-u.ac.jp/pub/linux/Vine/Vine-6.0/i386/Vine/RPMS/make-3.81-8vl6.i686.rpm


@localhost ~]$ sudo rpm -ivh make-3.81-8vl6.i686.rpm
[sudo] password for *****:
準備中... ########################################### [100%]
1:make ########################################### [100%]

@localhost ~]$ cd Python-1.5.2/
@localhost Python-1.5.2]$ make
...........
...........
fileobject.c:590: error: conflicting types for ‘getline’
/usr/include/stdio.h:653: note: previous declaration of ‘getline’ was here
make[1]: *** [fileobject.o] Error 1
make[1]: Leaving directory `/home/makura/Python-1.5.2/Objects'
make: *** [Objects] Error 2

fileobject.cの関数getlineがstdio.hとかぶっているようです。
エディタでgetlineを検索し、4箇所をgetline1と変えました。


@localhost Python-1.5.2]$ cd Objects/
@localhost Objects]$ leafpad fileobject.c
エディタを開きます。
getlineを検索します。
getline1に変更します。
続けて検索するのでctrl+gを押します。4つ変更します。Getlineは大文字なので変更しません。

@localhost Objects]$ cd ..
再びmake
@localhost Python-1.5.2]$ make
...........
@localhost Python-1.5.2]$ sudo make altinstall
...........

@localhost Python-1.5.2]$ python1.5
Python 1.5.2 (#1, Jan 12 2012, 07:52:51) [GCC 4.4.5 20101001 (Vine Linux 4.4.5-6 on linux2
Copyright 1991-1995 Stichting Mathematisch Centrum, Amsterdam
>>> ^Z
[1]+ 停止 python1.5

Python-1.5.2起動しました。


@localhost Python-1.5.2]$ cd ~
@localhost ~]$ cd Lightflow/PM/Examples/
@localhost Examples]$ python1.5 ball1.py

Lightflow Rendering Tools
Copyright (c) 1995-2000 by Jacopo Pantaleoni. All rights reserved


Pinhole Camera On
Objects : 1

Rendering 300 x 300 pixels
00:00:00 - 87.1%

Examples]$ ls ball1.*
ball1.py ball1.tga

@localhost Examples]$ eog ball1.tga

LightFlow起動しました。


@localhost Examples]$ python1.5 mechanic.py

Lightflow Rendering Tools
Copyright (c) 1995-2000 by Jacopo Pantaleoni. All rights reserved


Pinhole Camera On
Objects : 3
00:00:00 - CSEADS 100/100 - boxes 26 - depth 1 - objects 18
00:00:00 - CSEADS 100/100 - boxes 26 - depth 1 - objects 6
LfSoftLight::Init()
00:00:01 - cell 418176 / 418176
LfSoftLight::Init()
00:00:01 - cell 418176 / 418176

Rendering 400 x 400 pixels
00:00:28 - 86.9%

LfDOFImager():
row 400 / 400

@localhost Examples]$ eog mechanic.tga
mechanic.jpg
Lightflow | - | -

Lightflow for ubuntu Linux32bit from USBメモリ(失敗編)

Ubuntu 9.10 - Karmic Koala - from USB memory

homeでlf_debian.tgzを解凍します。Lightflowフォルダができます。
.profileの設定は前の記事を参照してください。

@ubuntu:~/Lightflow/PM/Examples$ python ball1.py
以下エラー出ます。
from lightflowPM import *
ImportError: libstdc++-libc6.0-1.so.2: cannot open shared object file: No such file or directory

libstdc++-libc6.1-1.so.2 : It's a "14 year old" file, older than any Ubuntu. But still available from the Debian archives.


http://archive.debian.net/woody/i386/libstdc++2.9-glibc2.1/download

@ubuntu:~$ dpkg -i libstdc++2.9-glibc2.1_2.91.66-4_i386.deb
dpkg: 要求した操作はスーパーユーザの権限が必要です

@ubuntu:~$ sudo dpkg -i libstdc++2.9-glibc2.1_2.91.66-4_i386.deb
未選択パッケージ libstdc++2.9-glibc2.1 を選択しています。
(データベースを読み込んでいます ... 現在 117128 個のファイルとディレクトリがインストールされています。)
(libstdc++2.9-glibc2.1_2.91.66-4_i386.deb から) libstdc++2.9-glibc2.1 を展開しています...
libstdc++2.9-glibc2.1 (2.91.66-4) を設定しています ...

libc-bin のトリガを処理しています ...
ldconfig deferred processing now taking place

@ubuntu:/usr/lib$ sudo ln -sf libstdc++-libc6.1-1.so.2 libstdc++-libc6.0-1.so.2

libstdc++-libc6.0-1.so.2が作成されました。

@ubuntu:~/Lightflow/PM/Examples$ python ball1.py
ball1.py:3: RuntimeWarning: Python C API version mismatch for module lightflowPM: This Python has API version 1013, module lightflowPM has version 1007.
from lightflowPM import *
Segmentation fault (コアダンプ)

残念ながらpython2.6は不意に終了しました。

Python1.5.2をダウンロード
http://www.python.org/download/releases/1.5/

@ubuntu:~$ cd Python-1.5.2/
@ubuntu:~/Python-1.5.2$ ./configure

@ubuntu:~/Python-1.5.2$ make
(cd Modules; make -f Makefile.pre Makefile)

gcc -g -O2 -I./../Include -I.. -DHAVE_CONFIG_H -c -o fileobject.o fileobject.c
fileobject.c:590: error: conflicting types for ‘getline’
/usr/include/stdio.h:651: note: previous declaration of ‘getline’ was here
make[1]: *** [fileobject.o] エラー 1
make[1]: ディレクトリ `/home/ubuntu/Python-1.5.2/Objects' から出ます
make: *** [Objects] エラー 2

python1.5.2/Objects/fileobject.cをgeditで開き
検索でgetlineを探す。
getline1に4箇所書き換える。

再び
@ubuntu:~/Python-1.5.2$ make

@ubuntu:~/Python-1.5.2$ sudo make altinstall
ビルド成功

@ubuntu:~/Python-1.5.2$ python1.5
Python 1.5.2 (#1, Jan 10 2012, 22:42:45) [GCC 4.4.1] on linux2
Copyright 1991-1995 Stichting Mathematisch Centrum, Amsterdam
>>>

python1.5.2実行可能
ubuntu@ubuntu:~/Lightflow/PM/Examples$ python1.5 ball1.py
Segmentation fault (コアダンプ)

うまくいかないようだ。

---------------------------------------------------------------------
以下はコアダンプの出力設定確認
unlimit -a

コアダンプを出力する設定方法
* デバッグ対象プログラムを起動前にulimitコマンドを実行する(-c以降に最大出力サイズを指定する)
ulimit -c 10000000

@ubuntu:~/Lightflow/PM/Examples$ python1.5 ball1.py
Segmentation fault (コアダンプ)

coreが出力される。

@ubuntu:~/Lightflow/PM/Examples$ gdb python1.5 core

GNU gdb (GDB) 7.0-ubuntu
Copyright (C) 2009 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law. Type "show copying"
and "show warranty" for details.
This GDB was configured as "i486-linux-gnu".
For bug reporting instructions, please see:
...
Reading symbols from /usr/local/bin/python1.5...done.

warning: Can't read pathname for load map: Input/output error.
Reading symbols from /lib/tls/i686/cmov/libdl.so.2...(no debugging symbols found)...done.
Loaded symbols for /lib/tls/i686/cmov/libdl.so.2
Reading symbols from /lib/tls/i686/cmov/libm.so.6...(no debugging symbols found)...done.
Loaded symbols for /lib/tls/i686/cmov/libm.so.6
Reading symbols from /lib/tls/i686/cmov/libc.so.6...(no debugging symbols found)...done.
Loaded symbols for /lib/tls/i686/cmov/libc.so.6
Reading symbols from /lib/ld-linux.so.2...(no debugging symbols found)...done.
Loaded symbols for /lib/ld-linux.so.2
Reading symbols from /home/ubuntu/Lightflow/lightflowPM.so...done.
Loaded symbols for /home/ubuntu/Lightflow/lightflowPM.so
Reading symbols from /home/ubuntu/Lightflow/libLightflow.so...(no debugging symbols found)...done.
Loaded symbols for /home/ubuntu/Lightflow/libLightflow.so
Reading symbols from /lib/tls/i686/cmov/libpthread.so.0...(no debugging symbols found)...done.
Loaded symbols for /lib/tls/i686/cmov/libpthread.so.0
Reading symbols from /usr/lib/libstdc++-libc6.0-1.so.2...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/libstdc++-libc6.0-1.so.2
Core was generated by `python1.5 ball1.py'.
Program terminated with signal 11, Segmentation fault.
#0 0x00286e05 in ?? () from /lib/tls/i686/cmov/libc.so.6

(gdb) where
#0 0x00286e05 in ?? () from /lib/tls/i686/cmov/libc.so.6
#1 0x00281d3b in vfprintf () from /lib/tls/i686/cmov/libc.so.6
#2 0x0028bf3f in fprintf () from /lib/tls/i686/cmov/libc.so.6
#3 0x0105ad3f in LfScene::LfScene(long) ()
from /home/ubuntu/Lightflow/libLightflow.so
#4 0x00f62cbf in LfLocalSceneProxy::LfLocalSceneProxy(long) ()
from /home/ubuntu/Lightflow/libLightflow.so
#5 0x00d78295 in scene_new(_object *, _object *) ()
from /home/ubuntu/Lightflow/lightflowPM.so
#6 0x0807f03c in call_builtin (func=0x9d60c08, arg=0x9d4f4f0, kw=0x0)
at ceval.c:2359
#7 PyEval_CallObjectWithKeywords (func=0x9d60c08, arg=0x9d4f4f0, kw=0x0)
at ceval.c:2324
#8 0x080817c4 in eval_code2 (co=,
globals=, locals=, args=0x0,
argcount=0, kws=0x0, kwcount=0, defs=0x0, defcount=0, owner=0x0)
at ceval.c:1654
#9 0x08082c5b in PyEval_EvalCode (co=0x9d79918, globals=0x9d58638,
locals=0x9d58638) at ceval.c:324
#10 0x0805fed2 in run_node (n=0x9d6e098, filename=,
globals=0x9d58638, locals=0x9d58638) at pythonrun.c:887
#11 0x08060dd2 in PyRun_SimpleFile (fp=0x9d4f008,
filename=0xbf939580 "ball1.py") at pythonrun.c:570
#12 0x08051b58 in Py_Main (argc=2, argv=0xbf9387b4) at main.c:287
#13 0x0805162b in main (argc=2, argv=0xbf9387b4) at python.c:12
(gdb)

つづきに原因がわかったのでこちらへ。
Lightflow | - | -

LightFlow for linux 64bit

Ubuntu 64bitでPython-1.5.2をビルド。

@ubuntu:/usr/local/bin$ file python1.5
python1.5: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.15, not stripped

from lightflowPM import *
ImportError: /usr/local/lib/python1.5/lightflowPM.so: wrong ELF class: ELFCLASS32


@ubuntu:/usr/local/lib/python1.5$ file lightflowPM.so
lightflowPM.so: ELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV), dynamically linked, not stripped

lightflowPM.soは32bit

python1.5は64bit

つづく。
Lightflow | - | -

Lightflow for Linux 最初の設定(抜粋)

Installation Guide.


1.Untar the base packet (e.g. to /usr/local/).

2.The python interface requires python >= 1.5, so install it first if you want to use it.

3.Copy or link LightflowPM.so to /usr/lib/phython1.5/site-packages (or wherever this directory is): ln -s /usr/local/LightFlow/LightflowPM.so /usr/lib/python1.5/site-packages

4. The same for the C++-library: ln -s /usr/local/LightFlow/Lightflow/libLightflow.so /usr/lib

5.Install the content of Lightflow_Include.tar.bz; the includes should be in /usr/include/Lightflow.

6. Extend the startup configuration script of your shell (e.g. bashrc) by setting LIGHTFLOWPATH to Lightflows base directory: export LIGHTFLOWPATH=/usr/local/LightFlow

7.Have a look at the doc's under PM/doc and CS/doc, python-examples are under PM/Examples.

8.Now the examples above should work (python-scripts have to be made executable before run, C++-examples (e.g. tree.tar.gz) have to be compiled (use make).
Lightflow | - | -

Lightflow for Linux その2

LightFlowはすでに開発closedしてから、12年も経過しているので
今の状況では使えないところですが・・・・やっとできました。

■(以前のまとめ抜粋)Lightflow インストール Linuxでのインストール方法
http://rman.sakura.ne.jp/sfx/lf_man/lightflow-install.html

Linux勉強としてVirtualBoxを使ってLightFlowをインストールしてみました。
いろいろやってみるとPythonのバージョン違いで走らない状況?
困難?が待っていました。


■Vine Linux3.2の場合

libstdc++-libc6.1-1.so.2: cannot load shared object file: No such file or directory

compat-libstdc++-6.2-2.9.0.14.i386.rpm

# rpm -ivh compat-libstdc++-6.2-2.9.0.14.i386.rpm


上記のパッケージをとってインストールしここまでで終了。

■Debianの場合
debian-6.0.3

libstdc++-libc6.1-1.so.2: cannot load shared object file: No such file or directory

libstdc++2.9-glibc2.1_2.91.66-4_i386.deb
http://archive.debian.org/debian/pool/main/e/egcs1.1/libstdc++2.9-glibc2.1_2.91.66-4_i386.deb

$ dpkg -i libstdc++2.9-glibc2.1_2.91.66-4_i386.deb

上記のパッケージをとってここまでやって、以下実行。

■Lightflow実行
@debian:/usr/local/Lightflow/PM/Examples$ python ball1.py
ball1.py:3: RuntimeWarning: Python C API version mismatch for module lightflowPM: This Python has API version 1013, module lightflowPM has version 1007.
from lightflowPM import *

Lightflow Rendering Tools
Copyright (c) 1995-2000 by Jacopo Pantaleoni. All rights reserved


Error (LfFault):
LfFileIOBStream
error opening tmp_ve_VSE3HY
ここで終了。残念。

■試しにPython1.6.1の解凍しビルドすることをやってみる。
解凍うまくいかず
gzip: stdin: not in gzip format
tar: Child returned status 1
tar: Error exit delayed from previous errors

拡張子は .gz となっていますが,実際は .tar ファイルのようなので,
次のようにして変更してください.

mv AAA.tar.gz AAA.tar


> どのようにして解凍すればよいのか

tar xvf AAA.tar




■Python1.6.1のビルド
./configure
make
make install

上書きしてしまったような
■Lightflow実行
@debian:/usr/local/Lightflow/PM/Examples$ python ball1.py
WARNING: Python C API version mismatch for module lightflowPM:
This Python has API version 1009, module lightflowPM has version 1007.

Lightflow Rendering Tools
Copyright (c) 1995-2000 by Jacopo Pantaleoni. All rights reserved


Error (LfFault):
LfFileIOBStream
error opening tmp_ve_7F11r0
ここで終了。残念。

■試しにPython1.5.2の解凍
mv py152.tgz py152.tar
tar xvf py152.tar
■Python1.5.2のビルド(Debian6.0.3)
./configure
make
make install
エラー出しながらもできたような。Python-1.5.2$ python
Python 1.6.1 (#1, Jan 9 2012, 15:26:06) [GCC 4.4.5] on linux2
Copyright (c) 1995-2001 Corporation for National Research Initiatives.
All Rights Reserved.
Copyright (c) 1991-1995 Stichting Mathematisch Centrum, Amsterdam.
All Rights Reserved.
できていませんでした。

makeができておらず、
gcc -g -O2 -I./../Include -I.. -DHAVE_CONFIG_H -c -o fileobject.o fileobject.c
fileobject.c:590: error: conflicting types for ‘getline’
/usr/include/stdio.h:651: note: previous declaration of ‘getline’ was here
make[1]: *** [fileobject.o] エラー 1
make[1]: ディレクトリ `/home/mac/Python-1.5.2/Objects' から出ます
make: *** [Objects] エラー 2

どうやら、
fileobject.cの関数getlineがstdio.hとかぶっているようです。

/usr/include/stdio.h:651: note: previous declaration of ‘getline’ was here

エディタでgetlineを検索し、4箇所をgetline1と変えました。
改めて
./configure
make
sudo make altinstall
した。

root@debian:/home/mac/Downloads/Python-1.5.2# python1.5
Python 1.5.2 (#1, Jan 9 2012, 21:03:48) [GCC 4.4.5] on linux2
Copyright 1991-1995 Stichting Mathematisch Centrum, Amsterda

Python1.5.2動きました。
(Vine Linux3.2でのPython1.5.2のビルドはすんなりいきました。)


■ここからがうれしいところ(^^)。

root@debian:/usr/local/Lightflow/PM/Examples# python1.5 ball10000.py

Lightflow Rendering Tools
Copyright (c) 1995-2000 by Jacopo Pantaleoni. All rights reserved


Pinhole Camera On
Objects : 10000
00:00:01 - CSEADS 100/100 - boxes 48672 - depth 2 - objects 10000

Rendering 300 x 300 pixels
00:00:03 - 87.1%

root@debian:/usr/local/Lightflow/PM/Examples# gimp ball10000.tga

■無事、Debian Linux6.0.3でLightflowが起動。
古いVine Linux(3.2より古いもの?)でLightflowが動いていたのは、Python1.5.2だったためです。
Windowsと同じでLinuxにおいてもPython1.5.2でLightflowは動きます。
make altinstallするとpythonのバージョン別に使い分けができます。

Lightflow起動は

# python1.5 ball1.py

ball1.tgaが生成されます。
レンダリングが速くて快適ですね。
長年わからなかったのが解決してうれしいです。
ありがとうございます。

root@debian:/usr/local/Lightflow/PM/Examples# python1.5 mechanic.py

以下Rendering Time:17s
mechanic.jpg
Lightflow | - | -

Lightflow for Linux

メモ:役に立つかも。Thank you.

http://www.nue.tu-berlin.de/wer/knoerig/lightflow.html
http://web.archive.org/web/20070610101954/http://www.nue.tu-berlin.de/wer/knoerig/lightflow.html
Lightflow | - | -
1/7 >>