イラディアンスキャッシュを三倍にしてレンダリング

以前途中まで書いたスクリプトを修正したので、公開します。

#python

import os

file = lx.eval('query sceneservice scene.file ? current')
file, ext = os.path.splitext(file)
cache = os.path.join(file+'.lxi')
zfile = os.path.isfile(cache)
if zfile == 1:
	os.remove(cache)


for x in range(lx.eval ('query sceneservice polyRender.N ?')):
	id = lx.eval('query sceneservice polyRender.ID ? %s' % x)
	lx.eval('select.item %s set' % id)
	lx.eval('render.res 0 ?*3.0')
	lx.eval('render.res 1 ?*3.0')
	lx.eval('item.channel polyRender$irrSEnable true')
	lx.eval('item.channel polyRender$irrSName {%s}' % cache)
	lx.eval('render  options:4')
	lx.eval('item.channel polyRender$irrSEnable false')
	lx.eval('render.res 0 ?/3.0')
	lx.eval('render.res 1 ?/3.0')
	lx.eval('item.channel polyRender$irrLEnable true')
	lx.eval('item.channel polyRender$irrLName {%s}' % cache)
	lx.eval('render')

実行するとシーンが保存されているディレクトリにixi(イラディアンスキャッシュファイル)を探しにゆき、
存在すればそれを削除します。無ければ新たに作成します。
レンダリングサイズを一時的に3倍にし、キャッシュファイルを生成します。
レンダリングサイズを元の大きさに戻して、レンダリングを実行します。

 

次回からは普通にレンダリングすると、イラディアンスキャッシュが読み込まれます。
もう一度キャッシュを作りたい時はスクリプトを実行します。
コピペでテキストエディタに貼り付けて、拡張子「py」で保存し、
C:\Users\(ユーザディレクトリ)\AppData\Roaming\Luxology\Scripts\
に入れて、@ファイル名.pyでスクリプトを実行できます。

 

しかし、modoのスクリプトでは、スクリプト内でいちいちノードを選択しないと、設定が変更できない。
データを作成し流しこむように設定ができるともっと楽になるのになぁ、、
マテリアルの設定をスクリプトで変更するとシェーダーツリーでマテリアルマスクが開かれてしまう。
マテリアルが膨大な量になると閉じるのが大変だ。何かもっとスマートな方法は無いだろうか。

 

そういえば、前回の記事でレンダリングがうまく行かない、というような事を書きましたが、
イラディアンスキャッシュのせいでした。ロードのチェックが入っており、随分と古いキャッシュを参照していたようです。
チェックを外したらうまく行きました。
うまく行ったが、レンダリングはどうしても思うようにはならない、、やっぱり外観のレンダリングは難しい。

コメントする

post date*

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

トラックバックする

トラックバック用URL:

アニメーションが親切に解説されております

レンダリング、ライティングの基本が分かります

図版が見やすい美術解剖書です