ログインしてさらにmixiを楽しもう

コメントを投稿して情報交換!
更新通知を受け取って、最新情報をゲット!

LightflowコミュのLightflow簡単講座!

  • mixiチェック
  • このエントリーをはてなブックマークに追加
●まずは必要なものをダウンロード
[http://www.lightflowtech.com/]
メニューの[News & Download]>[Download the latest version now!]
内容に了承できたら[Yes, I accept]

そして使ってるOSにあわせて
Linux Debian 2.1 slink Version (1581 Kb)
Linux RedHat 6.1 Version (1608 Kb)
Windows Version (1501 Kb)
の中からダウンロード。
これがLightflow本体です。

そして
Python 1.51 for Windows (2283 Kb)
をダウンロード。
Pythonはレンダリングの際の計算に必要となるソフトです。

コメント(30)

●インストール
僕はこのソフトをWindowsでしか使ったことがないので、他のOSでのインストールの方法を詳しくは知りません。
なので、Windowsでのインストール方法だけを紹介しますね。
現時点でのメンバーは、みんなWindowsユーザーだと思いますので、今のところは問題ないですよね?
このソフトのインストールは少し面倒ですが、頑張りましょう。


ダウンロードが済んだら、Lightflowのファイルを解凍して、フォルダを[Program Files]に移動します。
Pythonのファイルも解凍して、フォルダの中にある[pyth151.exe]を実行します。インストール先は[Program Files]です。

次にLightflowのフォルダの中から[Lightflow.dll]というファイルを[C:\Windows\System]にコピーします。
もうひとつ[lightflowPM.dll]というファイルを[C:\Program Files\Python\DLLs]にコピーします。

そして、環境変数を編集します。
コントロールパネル>システム>詳細タブの[環境変数]

・LIGHTFLOWPATH=C:\Program Files\Lightflow
・PYTHONPATH=C:\Program Files\Python
・PATH=%PATH%;%LIGHTFLOWPATH%;%PYTHONPATH%
・LIGHTFLOW_SE_MEMORY=32000
・LIGHTFLOW_VE_MEMORY=32000

このように編集します。


ちょっと面倒だったと思いますが、これでLightflowが使えるようになりました!
Lightflowの世界にようこそ!
●サンプルをレンダリング
インストールが終わったら、まずは試しにサンプルをレンダリングしてみましょう。

Program Files>Lightflow>PM>Examples
Examplesフォルダの中にあるPython Fileを、どれでもいいのでダブルクリックしてみましょう。黒い画面が出て、レンダリングが始まるはずです。
結構時間はかかると思いますが、レンダリングが終わると黒い画面が消えます。
Examplesフォルダの中を覗いてみましょう。
レンダリングしたものと同じ名前のTGAファイルが出来ているはずです。
このファイルはInternet Explorerなどで開くことができます。

他にもいろいろなファイルをレンダリングしてみましょう。
ちなみにコミュニティの写真は[bspline3.py]というファイルです。


これだけで満足してしまいそうですが、次はサンプルに変更を加えていきましょう。
例えばオブジェクトの色を変えたり、画像のサイズを変更したりといった具合です。
コミュニティに入ってくださって嬉しいです。
書き込みもありがとうございます。

僕もMetaLightやMATSpiderLFについて書こうか迷ったのですが、初めて3Dを作る人も対象にしたトピックですので、最初から色んなソフトの使い方を覚えるのはしんどいだろうと思い、それらのソフトについては触れないことにしました。
vuvurさんが書かれているとおり、入手が困難であったり、WindowsXP SP2では動かなかったりと、問題が多いのも理由の1つです。
それと、最初は僕もそれらのソフトを使っていましたが、最終的にはメモ帳から作るのが1番楽に感じました。(僕自身、MetaLightやMATSpiderLFをしっかり使ったことがないので、詳しいことは言分かりませんが)
もしよろしければ、それらのソフトの使い方のトピックを作っていただけると嬉しいです。


返信が遅くなってしまってすみませんでした。
●コマンドプロンプトが面倒な人のために

本来ならば,LightFlowのExampleフォルダの中で
コマンドプロンプトを立ち上げて,

>"C:\program files\python\python" ball1.py
と打ち込んでレンダリングするとTGAファイルを出力しますが,
以下のファイルをメモ帳などのエディタを使ってコピペして
保存ファイル名を「lightflow.cmd」としてください。


@ECHO OFF
FOR %%I IN (%1) DO (
cd "%%~dpI"
"C:\Program Files\python\python.exe" %%I
)
pause


メモ帳で保存する際は,ファイルの種類を「すべてのファイル(*.*)」にしてから「lightflow.cmd」と打ち込んで保存します。

できあがったlightflow.cmdをExampleフォルダに入れておき,
マウスを使って,ball1.pyなどをドラッグandドロップでlightflow.cmdで当ててあげます。
すると,コマンドプロンプトの画面が開き,Lightflowによるレンダリングが始まります。

画像ファイルのTGAは同じフォルダにできています。
便利な方法ですね。
●サンプルファイルをダブルクリックしてレンダリングする人のために

Pythonをダブルクリックして起動すると,レンダリングが終了すると黒いウインドウは消えてしまいます。
これだと,どのくらい時間がかかったか,わかりません。

そこで,Pythonの組み込み関数をファイルの最後の行に書き加えて起きます。

raw_input()

ただ,難点はマウスでクリックすると,レンダリング時にできる一時ファイルがゴミとして残ってしまいます。

ですから,リターンキーをたたいてウインドウを終了しましょう。一時ファイルは消去されます。
●はじめに光ありき その1

Lightflowのレンダリング工程は,
1.シーンを作る。
2.シーンにライトを設定する。
3.シーンにオブジェクトを設定する。
4.シーンをレンダリング

となります。

#は,コメントを書くことができます。

Python1.5.1は日本語に対応していないので,英数字を使ってください。
ただし,Pythonでのファイル名には,先頭に数字がつくファイルは避けてください。
当然,Metalightなどを使う場合も,メタセコイアで使うオブジェクト名に日本語は使わない注意が必要です。
ファイル内にコメント以外で全角文字が混在しないように注意しましょう。

サンプル例 my_ball1.py
------------------------------------
#! /usr/bin/env python

from lightflowPM import * #解説1

s = scene() #解説2

s.lightOn( s.newLight( "point", [ "position", vector3( 5.0, -5.0, 4.0 ), "color", vector3( 300.0, 300.0, 300.0 ) ] ) ) #解説3

plastic = s.newMaterial( "standard",[ "kc", vector3( 1, 0, 0 ) ] ) #解説4


s.materialBegin( plastic ) #解説5

s.addObject( s.newObject( "sphere", [ "radius", 1.0 ] ) ) #解説6

s.materialEnd()


saver = s.newImager( "tga-saver", [ "file", "my_ball1.tga" ] ) #解説7

s.imagerBegin( saver )

camera = s.newCamera( "pinhole", [ "eye", vector3( 0, -4, 0 ), "aim", vector3( 0, 0, 0 ) ] ) #解説8

s.imagerEnd()

s.render( camera, 300, 300 ) #解説9
-----------------------------------
・解説1  モジュールのインポートです。必ず書いておきます。追加で数学関数などpiを使う場合は,
from math import * と行を追加します。

・解説2 sというシーンを作ります。以下はその内容です。sを操作していきます。

・解説3 ライトをオンにするということです。世界を照らすライトを最初に置くわけですね。ライトの種類point,
ライトの位置positionと,ライトの明るさと色をvector3(Red,Green,Blue)で表します。ここでは300倍しています。

・解説4 質感の設定をします。材質です。ここではplasticという名前で,色合いだけ赤と定義しました。

・解説5 オブジェクト物体にどの材質を割り当てるかを書いてます。↑で書いたplasticを割り当てます。
必ず,s.materialBegin(材質名)〜s.materialEnd()ではさみます。

・解説6 オブジェクトとして半径1.0の球体を位置(0,0,0)に配置しています。

・解説7 レンダリングして保存するファイル名を書いています。TGAファイルです。

・解説8 カメラの位置と注視点(ターゲット,aim)の位置を示します。

・解説9 レンダリングする画像サイズは,300*300pixelsです。小さいほどレンダリングは速く終了します。
↑にあるサンプル画像は,カメラ位置が,下記になります。

camera = s.newCamera( "pinhole", [ "eye", vector3( 2, -4, 2 ), "aim", vector3( 0, 0, 0 ) ] )

座標軸は
x軸の+が右方向
y軸が奥に向かう方向
z軸が上方向になります。
●はじめに光ありき その2
boxを表現します。
対角線となる始点と終点を決めてあげることで直方体ができます。
カメラの"eye", vector3( 2, -4, 2 )は斜め上から見下ろした感じになります。

サンプル例 my_box1.py
---------------------------------
#! /usr/bin/env python

from lightflowPM import *

s = scene()

s.lightOn( s.newLight( "point", [ "position", vector3( 5.0, -5.0, 4.0 ), "color", vector3( 300.0, 300.0, 300.0 ) ] ) )

plastic = s.newMaterial( "standard",[ "kc", vector3( 1, 0, 0 ) ] )


s.materialBegin( plastic )

s.addObject( s.newObject( "box", [ "position",vector3( -1.0, -1.0, -1.0 ),vector3( 1.0, 1.0, 1.0 )] ) )

s.materialEnd()


saver = s.newImager( "tga-saver", [ "file", "my_box1.tga" ] )

s.imagerBegin( saver )

camera = s.newCamera( "pinhole", [ "eye", vector3( 2, -4, 2 ), "aim", vector3( 0, 0, 0 ) ] )

s.imagerEnd()

s.render( camera, 300, 300 )
------------------------------------
●はじめに光ありき その3
環境光を加えました。
緑の立方体を加えました。
緑の立方体は原点から移動させました。
サンドイッチのように移動の命令でオブジェクトをはさんであげます。

サンプル例 my_b2.py
-------------------------------
#! /usr/bin/env python

from lightflowPM import *

s = scene()

s.lightOn( s.newLight( "point", [ "position", vector3( 5.0, -5.0, 4.0 ), "color", vector3( 300.0, 300.0, 300.0 ) ] ) )

s.lightOn( s.newLight( "ambient", [ "color", vector3( 0.3, 0.3, 0.3 ) ] ) ) #環境光を加える。

plastic = s.newMaterial( "standard",[ "kc", vector3( 1, 0, 0 ) ] ) #赤

plastic2 = s.newMaterial( "standard",[ "kc", vector3( 0, 1, 0 ) ] ) #緑

s.materialBegin( plastic ) #赤の箱は原点にある。
s.addObject( s.newObject( "box", [ "position",vector3( -1.0, -1.0, -1.0 ),vector3( 1.0, 1.0, 1.0 )] ) )
s.materialEnd()

s.materialBegin( plastic2 )
s.transformBegin( transform().translation( vector3(-3.0,0,0))) #緑の箱をx方向に-3移動させた。

s.addObject( s.newObject( "box", [ "position",vector3( -1.0, -1.0, -1.0 ),vector3( 1.0, 1.0, 1.0 )] ) )

s.transformEnd()
s.materialEnd()

saver = s.newImager( "tga-saver", [ "file", "my_b2.tga" ] )

s.imagerBegin( saver )
#カメラは真正面の上の方から見ています。
camera = s.newCamera( "pinhole", [ "eye", vector3( 0, -10, 5 ), "aim", vector3( 0, 0, 0 ) ] )

s.imagerEnd()

s.render( camera, 300, 300 )
-------------------------------------
●はじめに光ありき その4

数学モジュールを加えました。
新たに青い立方体を加えました。

立方体はまず,Z軸中心に45度回転させます。
つぎにx軸方向に+3させます。

下記を見ると,移動translationから書いてありますが,オブジェクトがある一番内側から,操作していきます。これをスタックといいます。

s.materialBegin( plastic3 )

s.transformBegin( transform().translation( vector3(3.0,0,0)))
s.transformBegin( transform().rotationAroundZ( pi/4 ))
s.addObject( s.newObject( "box", [ "position",vector3( -1.0, -1.0, -1.0 ),vector3( 1.0, 1.0, 1.0 )] ) )

s.transformEnd()
s.transformEnd()

s.materialEnd()



サンプル例 my_b3.py
---------------------------------
#! /usr/bin/env python

from lightflowPM import *

from math import * #数学関数モジュールを使うときに書いておく。ここではpiを利用している。pi=3.14159265358979と円周率です。

s = scene()

s.lightOn( s.newLight( "point", [ "position", vector3( 5.0, -5.0, 4.0 ), "color", vector3( 300.0, 300.0, 300.0 ) ] ) )

s.lightOn( s.newLight( "ambient", [ "color", vector3( 0.3, 0.3, 0.3 ) ] ) ) #環境光を加える。

plastic = s.newMaterial( "standard",[ "kc", vector3( 1, 0, 0 ) ] ) #赤

plastic2 = s.newMaterial( "standard",[ "kc", vector3( 0, 1, 0 ) ] ) #緑

plastic3 = s.newMaterial( "standard",[ "kc", vector3( 0, 0, 1 ) ] ) #青

s.materialBegin( plastic ) #赤の箱は原点にある。
s.addObject( s.newObject( "box", [ "position",vector3( -1.0, -1.0, -1.0 ),vector3( 1.0, 1.0, 1.0 )] ) )
s.materialEnd()


s.materialBegin( plastic2 )
s.transformBegin( transform().translation( vector3(-3.0,0,0))) #緑の箱をx方向に-3移動させた。

s.addObject( s.newObject( "box", [ "position",vector3( -1.0, -1.0, -1.0 ),vector3( 1.0, 1.0, 1.0 )] ) )

s.transformEnd()
s.materialEnd()


s.materialBegin( plastic3 )#青の箱をZ軸中心に45度回転させ,x方向に3移動させた。
s.transformBegin( transform().translation( vector3(3.0,0,0)))
s.transformBegin( transform().rotationAroundZ( pi/4 )) #ラジアンで求める。piは180度だから,180÷4=45度になる。よって弧度法で表現するから3.141592/4.0でもよい。

s.addObject( s.newObject( "box", [ "position",vector3( -1.0, -1.0, -1.0 ),vector3( 1.0, 1.0, 1.0 )] ) )

s.transformEnd()
s.transformEnd()
s.materialEnd()


saver = s.newImager( "tga-saver", [ "file", "my_b3.tga" ] )

s.imagerBegin( saver )
#カメラは真正面の上の方から見ています。
camera = s.newCamera( "pinhole", [ "eye", vector3( 0, -10, 5 ), "aim", vector3( 0, 0, 0 ) ] )

s.imagerEnd()

s.render( camera, 300, 300 )
---------------------------------
●地面を加える。
白色の地面groundをpatchで作成しています。高さ(z軸)を-1.0にしてぴったり立方体とあわせています。

サンプル例 my_b3ground.py
----------------------------------
#! /usr/bin/env python

from lightflowPM import *

from math import *

s = scene()

s.lightOn( s.newLight( "point", [ "position", vector3( 5.0, -5.0, 4.0 ), "color", vector3( 300.0, 300.0, 300.0 ) ] ) )

s.lightOn( s.newLight( "ambient", [ "color", vector3( 0.3, 0.3, 0.3 ) ] ) ) #環境光を加える。

plastic = s.newMaterial( "standard",[ "kc", vector3( 1, 0, 0 ) ] ) #赤

plastic2 = s.newMaterial( "standard",[ "kc", vector3( 0, 1, 0 ) ] ) #緑

plastic3 = s.newMaterial( "standard",[ "kc", vector3( 0, 0, 1 ) ] ) #青

ground=s.newMaterial( "standard",[ "kc", vector3( 1, 1, 1 ) ] ) #白


s.materialBegin( plastic )
s.addObject( s.newObject( "box", [ "position",vector3( -1.0, -1.0, -1.0 ),vector3( 1.0, 1.0, 1.0 )] ) )
s.materialEnd()


s.materialBegin( plastic2 )
s.transformBegin( transform().translation( vector3(-3.0,0,0)))

s.addObject( s.newObject( "box", [ "position",vector3( -1.0, -1.0, -1.0 ),vector3( 1.0, 1.0, 1.0 )] ) )

s.transformEnd()
s.materialEnd()


s.materialBegin( plastic3 )
s.transformBegin( transform().translation( vector3(3.0,0,0)))
s.transformBegin( transform().rotationAroundZ( pi/4 ))

s.addObject( s.newObject( "box", [ "position",vector3( -1.0, -1.0, -1.0 ),vector3( 1.0, 1.0, 1.0 )] ) )

s.transformEnd()
s.transformEnd()
s.materialEnd()


#白色の地面groundをpatchで作成しています。高さ(z軸)を-1.0にしてぴったり立方体とあわせています。
s.materialBegin( ground )

s.addObject( s.newObject( "patch", [ "points",vector3( -50, -50, -1.0 ),vector3( -50, 50, -1.0 ),vector3( 50, -50, -1.0 ),vector3( 50, 50, -1.0 )] ) )

s.materialEnd()

saver = s.newImager( "tga-saver", [ "file", "my_b3ground.tga" ] )

s.imagerBegin( saver )

camera = s.newCamera( "pinhole", [ "eye", vector3( 0, -10, 5 ), "aim", vector3( 0, 0, 0 ) ] )

s.imagerEnd()

s.render( camera, 300, 300 )
●地面を加えて,様々な色の立方体を配置する。

試してみました。

赤色の立方体が原点にあります。
後は3ずつ前後左右に移動させています。
●地面をチェック模様にする

下記のようにマテリアルを変更追加しました。

check_ground=s.newPattern("check",["color",vector3( 0.1, 1.0, 0.1 ),"scale",0.025])

ground=s.newMaterial( "standard",[ "kc", check_ground,"kc",vector3( 1.0, 1.0, 1.0 ),"ka",check_ground ] ) #チェック緑

MATSpiderで試してみましたが,s.newPatternで決定した色(ここでは緑)と,s.newMaterialの"kc"で決めた色が(ここでは白)が出ていますが,"kc"を白以外のほかの色に変更すると,その色になりますが,s.newPatternで決定した色は無視され,黒になってしまいます。
standard以外のmatteやdiffuseで試してみましたが,うまくいかないです。2色の好きな色を割り当ててあげたいところですが,考えすぎでしょうか。うまくいかないですね。^^;
●円柱と円すいを表示する。

オブジェクトを設定し,半径と高さを決めます。さらに,移動や回転を設定します。図は,円柱だけ(左),円すいを追加(中),円すいを拡大したもの(右)を表示してます。ちょっとジャギー(線のギザギザ)が目立ちますが,これは,aa-samples", 1,2としたためです。このためにレンダリングが速くなるので,細かい確認作業には楽です。小さいサイズでこのアンチエイリアシングを低くしてレンダリングすると良いでしょう。
最後は,aa-samples", 1,2を削除してからレンダリングするときれいに出ます。
サンプル例 mycylinder.py
------------------------------
#! /usr/bin/env python

from lightflowPM import *

s = scene()

s.lightOn( s.newLight( "point", [ "position", vector3( 5.0, -5.0, 4.0 ), "color", vector3( 300.0, 300.0, 300.0 ) ] ) )

plastic = s.newMaterial( "standard",
[ "ka", vector3( 0, 0, 0.5 ),
"kc", vector3( 1, 0, 0 ),
"kd", 0.5,
"km", 0.3,
"ksg", 0.9999 ] )

plastic2 = s.newMaterial( "standard",[ "kc", vector3( 0, 0.5, 0.75 ) ] )

check_ground=s.newPattern("check",["color",vector3( 0.1, 1.0, 0.1 ),"scale",0.025])

ground=s.newMaterial( "standard",[ "kc", check_ground,"kc",vector3( 1.0, 1.0, 1.0 ),"ka",check_ground ] ) #チェック緑

s.materialBegin( plastic ) #円柱を回転させてみる。
s.transformBegin( transform().rotationAroundX( -3.141592 / 3 ) )
s.transformBegin( transform().rotationAroundY( 3.141592 / 4 ) )
s.addObject( s.newObject( "cylinder", [ "radius", 1.0 ,"height",4.0] ) )
s.transformEnd()
s.transformEnd()
s.materialEnd()

s.materialBegin( plastic2 ) #円すいを加え拡大と移動を行う。
s.transformBegin( transform().translation( vector3(-2.5,0,-1.0)))
s.transformBegin( transform().scaling( vector3(1.5,1.5,1.5)))

s.addObject( s.newObject( "cone", [ "radius",1.5,"height",3.0] ) )

s.transformEnd()
s.transformEnd()
s.materialEnd()

s.materialBegin( ground )
s.addObject( s.newObject( "patch", [ "points",vector3( -50, -50, -1.0 ),vector3( -50, 50, -1.0 ),vector3( 50, -50, -1.0 ),vector3( 50, 50, -1.0 )] ) )
s.materialEnd()

saver = s.newImager( "tga-saver", [ "file", "mycylinder.tga" ] )
s.imagerBegin( saver )
camera = s.newCamera( "pinhole", [ "eye", vector3( 0, -10, 0 ),
"aim", vector3( 0, 0, 0 ),
"aa-samples", 1,2 #レンダリングが速くできる。デフォルトは省略されており,2,4になっている。
] )
s.imagerEnd()
s.render( camera, 300, 300 )
MATSpiderでチェック模様の色分けやってみました。

カラーパターンを作成し,出力アウトプットを設けて,ライブラリに登録。

diffuseなどカラーモデルを呼び出し,kcに設定する。

中身は,ちょっと整理していませんが,こんな感じです。
緑と赤のチェック模様です。

#Pattern23
Pattern23_Unnamed3 = 0.02500
Pattern23_Pattern2 = s.newPattern("check",[
"scale" , Pattern23_Unnamed3
])

Pattern23_Unnamed5 = vector3( 0.00000 , 1.00000 , 0.00000)
Pattern23_Unnamed6 = vector3( 1.00000 , 0.00000 , 0.00000)
Pattern23_Pattern22 = s.newPattern("gradient",[
"pattern" , Pattern23_Pattern2 ,
"color" , 1.00000 , Pattern23_Unnamed5 , Pattern23_Unnamed6
])

Pattern23 = Pattern23_Pattern22
Material15 = s.newMaterial("diffuse",[
"kr" , Pattern23
])
↑ですが,単にパターンを作成して,オブジェクトに割り当てても思ったとおりのものはできません。
必ず,diffuseやStandardなどのマテリアルに割り当てる必要があります。それから,マテリアルをオブジェクトに割り当てます。
●フリーソフトのhamapatch
LightFlowでレンダリングができますが,まずは,ダウンロード先と使い方に

1.ダウンロード先
http://www.geocities.com/Tokyo/Ginza/6625/
hamaPatch 3.0 Preview Version1.03ではOpenGL表示します。
hamaPatch ver.2.9正規版です。

以上の2つをダウンロードしましょう。


2.使い方
初めてのhamaPatch
http://www5a.biglobe.ne.jp/~fu-ken/semi5/semi_501.html

こちらでスプラインモデラーの使い方をマスターしましょう。
hamaPatch ver.2.9では,メニューの「モデル」−「オブジェクト挿入」で挿入できますが,hamaPatch 3.0 Preview Version1.03ではできませんでした。

3.レンダリング
「etc.」パネルで「環境設定」-「パス設定」を開いて,LightFlowのパスとPython1.5のパスを指定します。
レンダリングタブをクリックすると,「LF」というボタンがありますから,これをクリックするとLightFlowでレンダリングできます。

■わかったこと
hamapatchから出力したpyの座標系では,
メタセコイアから地面として平面をlfmで出力してみました。左の図のように地面が垂直になってしまいます。lfmで出力する際にYZ変換してから出力して配置すると良いようです。

中央の図のように,環境光の追加。
地面のマテリアルを単純に
plastic2 = s.newMaterial( "standard", [ "kc", vector3( 1.0, 1.0, 1.0 ), "kd", 0.4 ] )
メインのPointライトの明るさの調整をしました。
面倒ですね。

右の図は,hamaPatch ver.2.9で地面を作成。hamaPatch 3.0 Preview Version1.03で作成したモデルを挿入。*.py出力して,ライトやマテリアルの調整をしました。ポリゴンは使わず,すべてスプラインで作成する方法です。
いろいろとモデルデータもありますから,試してみるとよいでしょう。

いろいろとやり方がありますが,hamapatchではポリゴンの取り扱いがスムースにならないのと,大きなデータは今のところ無理のようですね。
●MATSpiderで木目をつくる

デフォルトでは,colorの項目が1つしかないので追加してやります。LightflowのサンプルがPatternフォルダにあります。
wood = s.newPattern( "wood",
[ "color",
1.0, vector3( 1.0, 0.85, 0.7 ), vector3( 1.0, 0.85, 0.7 ),
0.0, vector3( 0.8, 0.60, 0.4 ), vector3( 0.8, 0.60, 0.4 ),
"scale", 0.15,
"turbulence.amount", 0.5,
"turbulence.frequency", 2.0,
"turbulence.octaves", 1 ] )

mat_wood = s.newMaterial( "standard",
[ "kc", vector3( 0.8, 0.8, 0.8 ),
"kd", 0.7,
"km", 0.1,
"kc", wood ] )


くりかえしいろいろと試していくことが大切ですね。
Patternのサンプルについてレンダリングしてみました。
threads.jpg wood1.jpg wood2.jpg
multifractal3.jpg multifractal4.jpg patterns.jpg
gem5.jpg    granite1.jpg    granite2.jpg
gem2.jpg       gem3.jpg         gem4.jpg
displacement.jpg         env.jpg         gem1.jpg
  angular.jpg        bubbles.jpg

ということで,いろいろと奥の深さに感激です。
MATSpiderで勉強していくといいですね。
なんてこったい!!
lfmファイルの移動・回転・拡大縮小できるじゃないですか。
変数として指定しなかったからですね。

当初は,
s.addObject( s.newObject( "mesh",[ "file", "cu.lfm", 0 ] ) )

と書いて,サンドイッチのようにtransformではさんでもびくともしない。これではダメだと思ってました。
けれども,

cu_obj=s.addObject( s.newObject( "mesh",[ "file", "cu.lfm", 0 ] ) )

と変数してあげることで,例えば回転を加えてあげるとできるのですね。
s.materialBegin( plastic )
s.transformBegin( transform().rotationAroundZ( pi/4 ))
cu_obj=s.addObject( s.newObject( "mesh",
[ "file", "cu.lfm", 0 ] ) )
s.transformEnd()
s.materialEnd()

●Metalight触ってみてわかりました。
*.py出力が勉強になっています。
まだ,わからないのが,チェック模様が割り当てられないのです。木目模様はライブラリ化してoutputタグを取り付けて図のように出ましたが,チェックやいろいろとダメなものがあります。ディスプレイスメントはだめだとか,どこかに書いてありましたが,まだまだかだいはありますね。
レンダラーはできること。できないことの見極め。限界を知ってこそチカラを発揮できますね。

ログインすると、残り1件のコメントが見れるよ

mixiユーザー
ログインしてコメントしよう!

Lightflow 更新情報

Lightflowのメンバーはこんなコミュニティにも参加しています

星印の数は、共通して参加しているメンバーが多いほど増えます。

人気コミュニティランキング