Rendering学習日記

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

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()
  • -
  • -
<< 2/6 >>