<< OBJファイルフォーマット 戻る メタセコからcgkitへ >>

OBJエクスポート その2

metasequoia pythonでOBJ出力を考える。
objファイルとmtlファイルを出力する。
カメラ位置を取得し、cgkitのシーンファイルに書き込む。
後は、RenderMan、RenderMan互換レンダラでレンダリングする。

頂点法線を計算したので、メカが丸くなる。3Delightでレンダリングした。
meka_out.jpg

面ごとの色情報をテストしてみる。
men_out.jpg
以下は、cgkitのシーンファイル


import camctrl


Globals( rib='Imager "background" "color background" [0.2 0.4 0.6]',
up = (0,1,0),
handedness = 'r'
)

TargetCamera(
pos = (897.529, 889.788, 808.139),
target = (-13.524, 1.713, 13.592),
fov = 9.527,
)

SpotLight3DS( name = "SpotLight3DS",
enabled = True,
intensity = 1.0,
shadowed = True,
shadow_size = 512,
shadow_filter = 4.0,
shadow_bias = 0.05,
hotspot = 75,
falloff = 80,
pos=(100, 200, 100),
target = (0,0,0) )


GLPointLight(
pos = (10,10, -20),
intensity = 0.7,
diffuse = (1, 1, 1)
)

load("obj_men.obj")
model = worldObject("obj1")

m1=OBJMaterial( name = "mat1",
Ka = (0.600000023842, 0.489411790745, 0.0258823546621),
Kd = (0.800000011921, 0.65254903812, 0.0345098053591),
Ks = (0.0, 0.0, 0.0),
Ns = 5.0
)

m2=OBJMaterial( name = "mat2",
Ka = (0.600000023842, 0.0188235312729, 0.054117650454),
Kd = (0.800000011921, 0.0250980410739, 0.0721568654799),
Ks = (0.0, 0.0, 0.0),
Ns = 5.0
)

m3=OBJMaterial( name = "mat3",
Ka = (0.0211764724027, 0.0494117681945, 0.600000023842),
Kd = (0.0282352958357, 0.0658823559565, 0.800000011921),
Ks = (0.0, 0.0, 0.0),
Ns = 5.0
)

m4=OBJMaterial( name = "mat4",
Ka = (0.0494117681945, 0.600000023842, 0.0494117681945),
Kd = (0.0658823559565, 0.800000011921, 0.0658823559565),
Ks = (0.0, 0.0, 0.0),
Ns = 5.0
)

model.material = [m1,m2,m3,m4]

matids = model.geom.slot("matid")

i=0
for v in model.geom.slot("matid"):
matids[i] = v
i=i+1


"""
mat_men = GLMaterial(
diffuse = (1,1,1),
texture = GLTexture("uvmap.png",
transform = mat4().scaling(vec3(-1,-1,1)),
mode = GL_MODULATE)
)
"""
#men.setMaterial(mat_men)
model.pos=(0,0,0)
#men.scale=(-1,1,-1)

  • -
  • -

<< OBJファイルフォーマット 戻る メタセコからcgkitへ >>