Rendering学習日記

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

8角すいの生成

検索して見つけたサイトのサンプルは面が表示されていないワイヤーフレーム状態だったので、下記のように修正して面を張りました。頂点番号を順番に呼んであげるということですね。
底面については宿題です。
#kaku_8.py
segment = 8
radius=20.0

from math import *
crad = pi / 180 * 45
irad = 2*pi/segment

doc = MQSystem.getDocument()
obj = MQSystem.newObject();
obj.name = "circle_%d" % segment

for i in range(segment) :
obj.addVertex( MQSystem.newPoint( radius*sin(crad), 0.0, radius*cos(crad) ) )
crad += irad

obj.addVertex( MQSystem.newPoint( 0.0, 10.0, 0.0 ) )

for i in range(segment) :
obj.addFace( [(i+1)%segment,i,segment] ) #側面
#obj.addFace( [0,i, segment] )

doc.addObject( obj )

04.jpg
  • -
  • -

Metasequoia Python Interface

Pythonのバージョンを確認するスクリプト
import sys
MQSystem.println("%x" % sys.hexversion)

出力結果は
20203f0

メタセコイアが対応しているPythonのバージョンはVer2.2.3ということですね。
  • -
  • -

四角すいの生成

基本に立ち返り、面の向きを考えて記述してみる。

# 基本図形、新規オブジェクトで四角すいをつくる
#meta_4sui.py
doc = MQSystem.getDocument()

obj = MQSystem.newObject() #新規オブジェクト
out = MQSystem.println

out(obj.name)
num=doc.numObject
a=num

obj.name="sikakusui_%d" % a #オブジェクト名をつける

a0=obj.addVertex(-50.000000,0.000000,-100.000000) #0
a1=obj.addVertex(50.000000,0.000000,-100.000000) #1
a2=obj.addVertex(50.000000,0.000000,0.000000) #2
a3=obj.addVertex(-50.000000,0.000000,0.000000) #3
a4=obj.addVertex(0.000000,150.0000,-50.000000) #4


obj.addFace([0,3,2,1])
obj.addFace([4,1,2])
obj.addFace([4,2,3])
obj.addFace([4,3,0])
obj.addFace([4,0,1])

doc.addObject( obj )
num = doc.numObject #オブジェクトの数
out("オブジェクトの数 %d" % num) #オブジェクトの数を表示


sui4.jpg
  • -
  • -
<< 9/40 >>