1/1

LightFlow資料

インターネットアーカイブで貴重な資料を集めました。
サイト制作された方に感謝します。かれこれ8年から10年前の資料ですが、ここに許可なく掲載させております。申し訳ありません。
CPU処理速度が速くなった今日では、LightFlowを使ってわざわざやってみようという方は少ないと思いますが、探究心、好奇心でもって、いろんなアイデアを実現したり、実験ができます。
いくつかの資料を集めてみましたが、画像のリンクがなかったりしております。しかしながら、ヒントになる勉強につながると思います。

整理されていないまま、載せてしまって申し訳ありません。
後程、きれいに整理して、削除しますので、よろしくお願いします。

■Lightflow インストール (過去サイトにあったもの大変役に立ちます。ありがとうございます。)
http://rman.sakura.ne.jp/sfx/lf_man/lightflow-install.html

http://rman.sakura.ne.jp/sfx/lf_man/lf_manual.htm

■日本語マニュアル チュートリアルです。
http://rman.sakura.ne.jp/sfx/lf_man/index.html

ありがとうございます。
  • -
  • -

lfmファイルの移動・回転・拡大縮小

mixi 2007年01月08日 00:01記す。
156120933_32.jpg
なんてこったい!!
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()

ありがとうございます。
  • -
  • -

Lightflow チェック模様 その1

Lightflowで立方体を3つ表示し、地面をチェックにする。
チェックは1色だけ変更できました。

box_check.jpg


#! /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 ) ] ) #青

check_ground=s.newPattern("check",["color",vector3( 0.2, 0.4, 0.6 ),"scale",0.025])

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

#赤box
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()

#緑box
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()

#青box z軸中心に45度回転
s.materialBegin( plastic3 )
s.transformBegin( transform().translation( vector3(3.0,0,0)))
s.transformBegin( transform().rotationAroundZ( pi*45.0/180 ))

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


#check模様の地面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", "box_check.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 )
  • -
  • -

Lightflow チェック模様 その2

地面のチェックの色を好きな色に変更できます。
MatSpiderでスクリプトを出力して書き換えました。

box_ground2.jpg


#! /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 ) ] ) #白

#Pattern2
scale01 = 0.02500
Pattern1 = s.newPattern("check",[ "scale" , scale01 ])

color01 = vector3( 0.200 , 0.400 , 0.600) #青
color02 = vector3(1.00, 0.58, 0.59) #ピンク

Pattern2 = s.newPattern("gradient",[
"pattern" , Pattern1 ,
"color" , 1.00000 , color01 , color02 ])

ground = s.newMaterial("diffuse",[ "kr" , Pattern2 ])


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", "box_ground2.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 )

  • -
  • -

1/1