TypeError: 'module' object is not callable
##############
import sys
sys.path.append("C:\prman_sample\lighting\PythonClasses")
from Camera import Camera
from vector import Vector
import prman
・・・・
CameraクラスがあるPythonClassesまでパスを追加しておき、
モジュールの名前.対象のクラス
で呼び出す。
Pythonでは、パッケージ=ディレクトリ、モジュール=ファイルと理解。
・・・
import prman
ri = prman.Ri() # create an instance of the RenderMan interface
rendertarget = "helloworld.rib"
cam=Camera(Vector(0,4,-8,1),Vector(0,0,0,1),Vector(0,1,0,0))
cam.fov=45
ri.Begin(ri.RENDER) # set rendertarget to ri.RENDER to render pixels
ri.Imager ("background", {"color color":(.2, .4, .6)})
ri.Display("teapot3.png", "framebuffer", "rgb")
cam.Format(ri)
#ri.Format(512,480,1)
#ri.Projection(ri.PERSPECTIVE, {ri.FOV: 45}) # standard Ri tokens are available
ri.ShadingRate(0.25)
#ri.Translate(0,0,10)
#ri.Rotate(-33.69, 1.00, 0.00, 0.00)
#ri.Translate(0.00, -4.00, 8)
ri.WorldBegin()
cam.Place(ri)
ri.Scale(-1,1,1)
・・・・
結果が違うのでri.Scale(-1,1,1)を加えた。
Camera(eye, look, up)となっている。
cgkitで確認してみた。
C:\Python26>python
Python 2.6.6 (r266:84297, Aug 24 2010, 18:13:38) [MSC v.1500 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> from cgkit.all import *
>>> V=mat4(1).lookAt(pos=(4,0.2,4),target=(0,0,0),up=(0,1,0))
>>> V
[-0.707107, -0.0249844, -0.706665, 4]
[0, 0.999376, -0.0353333, 0.2]
[0.707107, -0.0249844, -0.706665, 4]
[0, 0, 0, 1]
>>> vt=(V.inverse()).transpose()
>>> vt
[-0.707107, -0.0249844, -0.706665, -0]
[-0, 0.999376, -0.0353333, 0]
[0.707107, -0.0249844, -0.706665, -0]
[-0, 0, 5.66039, 1]
>>>
- -
- -