1/2 >>

AMX−107バウ素体

SAITさん製作のMS、AMX−107バウをParthenonレンダラでレンダリングした。モデリングはMetasequoiaで使用されている。凄いです。それでParthenonで表示できるように材質を変更、ポリゴンは三角形化しました。settingにおいてIBLを用いています。ありがとうございます。
001.jpg

002.jpg

003.jpg
  • -
  • -

NRX-044アッシマー素体

SAITさん製作のMS、NRX-044アッシマーをParthenonレンダラでレンダリングした。モデリングはMetasequoiaを使用されている。凄いです。それでParthenonで表示できるように材質を変更、ポリゴンは三角形化しました。settingにおいてIBLを用いています。ありがとうございます。

001.jpg

002.jpg

003.jpg
  • -
  • -

OZ-15AGXハイドラガンダム

SAITさん製作のMS、OZ-15AGXハイドラガンダムをParthenonレンダラでレンダリングした。モデリングはMetasequoiaを使用されている。凄いです。それでParthenonで表示できるように材質を変更、ポリゴンは三角形化しました。settingにおいてIBLを用いています。ありがとうございます。

005.jpg

004.jpg

003.jpg

002.jpg

001.jpg
  • -
  • -

Processing(プロセッシング)からSunflowへ

ビジュアルデザイン用プログラミング言語Processing(プロセッシング)からSunflowへつなげるライブラリとしてP5Sunflow(http://hipstersinc.com/p5sunflow/)があるが、Processing1.2.1や1.5.1には対応していなかった。
新たに検索したら、
joons-renderer Brings Sunflow's ray-tracing to Processingがあった。
http://code.google.com/p/joons-renderer/

インストールは、
joons_070.zipを解凍する。
解凍したjoonsフォルダごと
Processing1.5.1の以下の場所へコピーする。
C:\processing-1.5.1\modes\java\libraries


Processingを起動し、メニュー「Sketch」→「Import Library...」→joonsが入っていればインストール完了です。

以下のスクリプトをProcessingにコピペします。

Save Asで保存します。
ここではtest01と名付けたとします。


import joons.*;

JoonsRenderer jr;
boolean rendered = false;

float eyeX = 50;
float eyeY = 90;
float eyeZ = 50;
float centerX = 0;
float centerY = 0;
float centerZ = 0;
float upX = 0;
float upY = 0;
float upZ = -1;
float fov = PI / 4;
float aspect = (float) 1.3333;
float zNear = 5;
float zFar = 10000;

public void setup() {
size(640, 480, P3D);
jr = new JoonsRenderer(this,width,height);
jr.addAfterShader("shader {");
jr.addAfterShader(" name Green");
jr.addAfterShader(" type shiny");
jr.addAfterShader(" diff 0.25 0.8 0.25");
jr.addAfterShader(" refl 0.25");
jr.addAfterShader("}");
jr.addAfterShader("shader {");
jr.addAfterShader(" name blueshiny");
jr.addAfterShader(" type shiny");
jr.addAfterShader(" diff 0.2 0.4 0.75");
jr.addAfterShader(" refl 0.25");
jr.addAfterShader("}");
}

public void draw() {
background(128);
lights();
fill(255);

beginRecord("joons.OBJWriter","");//leave the second parameter as "".

perspective(fov, aspect, zNear, zFar);//use perspective() before camera()!!
camera(eyeX, eyeY, eyeZ, centerX, centerY, centerZ, upX, upY, upZ);

rect(-500,-500,1000,1000);//the floor plane

noSmooth(); //In my library, noSmooth() is used to separate one object from another.

translate(0,-20,20);
rotateX((float) 0.3);
rotateY((float) 0.2);
rotateZ((float) 0.1);

translate(10,0);
sphere(10);
translate(10,0);
sphere(10);
translate(10,0);
sphere(10);
translate(10,0);
sphere(10);
translate(-40,30);
rotateZ((float)1.5);
rotateX((float) 0.8);
box(20);

endRecord();

if(rendered)
jr.display();
}

public void keyPressed() {
if (key == 'r' || key == 'R' && !rendered) {
saveFrame("capture.png");
jr.setShader("sphere0","Green");
jr.setShader("sphere1","blueshiny");
jr.setShader("sphere2","Green");
jr.setShader("sphere3","blueshiny");
jr.setShader("object1","Red");
jr.setSC("ambient.sc");
rendered=jr.render("bucket");
}
}

Sunflowのscシーンファイルambient.scをjoonsのダウンロードサイトからコピーしておきます。

ambient.scをマイドキュメントフォルダのprocessingフォルダのtest01フォルダに移動させます。

実行ボタンを押すと、スケッチが出ます。
capture.jpg
続いてキーボードからrキーを押すとレンダリングされます。
renderWIP.jpg
noSmooth(); がオブジェクトを分離します。Sphereは別です。
いろいろといじってみます。ありがとうございます。
  • -
  • -

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
  • -
  • -

Python Build → python1.6手動削除

Virtualboxにて、Debian6.0.3を使っているところ

./configure
make
make install

元々入っていたところにPython1.6をビルドしたら、
Python2.6が上書きされたようだ。
手動で削除したところ。

Could not find platform independent libraries
Could not find platform dependent libraries
Consider setting $PYTHONHOME to [:]
'import exceptions' failed
Fatal Python error: Standard exceptions could not be initialized.
アボートしました

エラーが出てしまう。
Synapticパッケージマネージャで再インストール

root@debian:/usr/bin# cp python2.6 /usr/local/bin/

root@debian:/usr/local/bin# mv python2.6 python

root@debian:/usr/local/bin# python
Python 2.6.6 (r266:84292, Dec 27 2010, 00:02:40)
[GCC 4.4.5] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> exit()
  • -
  • -

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 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 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 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)

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

1/2 >>