Rendering学習日記

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

abnormal program termination

Lightflowを使ってみたいけど、インストールが難しくて、やめてしまうこともあると思います。
インストールについてまとめましたので、参考にしてください。
http://rman.sakura.ne.jp/sb/log/eid74.html

さて、インストールができて、
はじめてLightflowを動かそうとしたら、下記のようなエラーが出て、
あきらめてしまった人もいると思います。いくつかのサイトを検索してみると質問がありました。

Runtime Error!

Program: C:\Program files\python\python.exe

abnormal program termination

Error (LfFault):
LfNoiseInit()
unable to open "noise.dat"

原因は環境変数のPathを正確に書いていないことです。

たとえば、
path01.jpg
見たところ問題ないと思われますが、
C:\Lightflowと記入した後ろに半角の空白スペースがあって、上記のエラーが出ていたことがありました。カーソルを持っていって矢印キーを動かしてみると半角スペースがあったりしますから、要注意ですね。半角スペースを削除してOKし、再起動し、C:\Lightflow\PM\Examplesから、
コマンドプロンプトアイコンをダブルクリックして、

>"c:\program files\python\python" ball1.py

と打ち込んでLightflowのサンプルball1.pyがレンダリングできたら、大丈夫です。
たくさん、経験していくことで、原因が見えてきます。
  • -
  • -

Lightflow質感設定 Standard材質その1

Lightflowの使い方として、微妙な質感を調整することができる。
基本となる反射色kcをそれぞれ、赤、緑、青の色に設定した。

sphere01.jpg

#! /usr/bin/env python 
#sphere01.py

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.2, 0.2, 0.2 ) ] ) ) #環境光を加える。

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

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


s.materialBegin( plastic )
s.addObject( s.newObject( "sphere", [ "radius",1.4] ) )
s.materialEnd()


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

s.addObject( s.newObject( "sphere", [ "radius",1.4] ) )

s.transformEnd()
s.materialEnd()


s.materialBegin( plastic3 )
s.transformBegin( transform().translation( vector3(4.0,0,0)))

s.addObject( s.newObject( "sphere", [ "radius",1.4] ) )

s.transformEnd()
s.materialEnd()


#地面groundをpatchで作成しています。高さ(z軸)を-1.4にしてぴったり球とあわせています。
s.materialBegin( ground )

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

s.materialEnd()

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

s.imagerBegin( saver )

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

s.imagerEnd()

s.render( camera, 512, 300 )
  • -
  • -

Lightflow質感設定 Standard材質その2

"kr",vector3 | pattern kr [レイトレース反射色]
レイトレース反射色です。映り込みをします。
kr 0.2にしました。

sphere02.jpg
#! /usr/bin/env python 
#sphere02.py
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.2, 0.2, 0.2 ) ] ) ) #環境光を加える。

plastic = s.newMaterial( "standard",[ "kc", vector3( 1, 0, 0 ),"kr",vector3(0.2,0.2,0.2) ] ) #赤, レイトレース反射色kr追加

plastic2 = s.newMaterial( "standard",[ "kc", vector3( 0, 1, 0 ),"kr",vector3(0.2,0.2,0.2) ] ) #緑, レイトレース反射色kr追加

plastic3 = s.newMaterial( "standard",[ "kc", vector3( 0, 0, 1 ),"kr",vector3(0.2,0.2,0.2) ] ) #青, レイトレース反射色kr追加

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

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


s.materialBegin( plastic )
s.addObject( s.newObject( "sphere", [ "radius",1.4] ) )
s.materialEnd()


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

s.addObject( s.newObject( "sphere", [ "radius",1.4] ) )

s.transformEnd()
s.materialEnd()


s.materialBegin( plastic3 )
s.transformBegin( transform().translation( vector3(4.0,0,0)))

s.addObject( s.newObject( "sphere", [ "radius",1.4] ) )

s.transformEnd()
s.materialEnd()


#地面groundをpatchで作成しています。高さ(z軸)を-1.4にしてぴったり球とあわせています。
s.materialBegin( ground )

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

s.materialEnd()

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

s.imagerBegin( saver )

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

s.imagerEnd()

s.render( camera, 512, 300 )
  • -
  • -
<< 11/25 >>