<< ついったー始める 戻る XRT Renderer >>

Structure Synth

オープンソースのStructure SynthからRenderMan RIBを出せるようにちょっとやってみた。
http://structuresynth.sourceforge.net/

市松模様づくり参考に試してみました。
http://kyle-in-jp.blogspot.com/2009/07/structure-synth_10.html
RenderMan RIBも出力できるようにテンプレート調整してみた。
structuresynth_.jpg

こちらの記事も参考にしてみた。
http://shin-ishimaru.cocolog-nifty.com/blog/2009/03/structure-syn-1.html
structuresynth2.jpg
地面のレンダリングがずれてしまうので、RIBのTransformをいじってみた。

デフォルトのデータは、こんな感じ
structuresynth.jpg

ということで、カメラ周りは逆行列をもとめないといけないので、
無理矢理cgkitでConcatTransformを出してみました。
以下は、テンプレート抜粋

#placecam.py {CamPosX} {CamPosY} {CamPosZ} {CamTargetX} {CamTargetY} {CamTargetZ}
#up {CamUpX} {CamUpY} {CamUpZ}
# cgkit commandline
# V=mat4(1).lookAt(pos=({CamPosX}, {CamPosY}, {CamPosZ}),target=({CamTargetX}, {CamTargetY}, {CamTargetZ}),up=({CamUpX}, {CamUpY}, {CamUpZ}))
# vt=(V.inverse()).transpose()
# fov {fov}
Scale -1 1 1
ConcatTransform [{CamColumnMatrix}]


ConcatTransform [{CamColumnMatrix}]部分は逆行列にしないとダメなんで、cgkitで
from cgkit.all import *
V=mat4(1).lookAt(pos=(7.83552, 12.4411, 18.2554),target=(7.92488, -46.149, -34.0976),up=(-0.170831, 0.656364, -0.734849))
vt=V.inverse()

print "ConcatTransform ["+str(vt[0][0])+" "+str(vt[0][1])+" "+str(vt[0][2])+" "+str(vt[0][3])+" "
print str(vt[1][0])+" "+str(vt[1][1])+" "+str(vt[1][2])+" "+str(vt[1][3])+" "
print str(vt[2][0])+" "+str(vt[2][1])+" "+str(vt[2][2])+" "+str(vt[2][3])+" "
print str(vt[3][0])+" "+str(vt[3][1])+" "+str(vt[3][2])+" "+str(vt[3][3])+" ]
求めてみた。
  • -
  • -

<< ついったー始める 戻る XRT Renderer >>