<< PythonからRenderManを使う その2 戻る 「実践CGへの誘い」例題をPythonで行う その5 >>

「実践CGへの誘い」例題をPythonで行う その4

「実践CGへの誘い」p.28
Listing 2.5
TransformBegin()〜TransformEnd()を使ったサンプル
ありがたいです。



#list25.py
#/* Copyrighted Pixar 1989 */
#/* From the RenderMan Companion p. 28 */
#/* Listing 2.5 Another cube definition */

import cgkit.cri
from cgkit.cgtypes import *

# Load the RenderMan API.
# Replace the library name with whatever renderer you want to use.
ri = cgkit.cri.loadRI("3delight")
cgkit.cri.importRINames(ri, globals())

#/* UnitCube(): Enter a unit cube into the scene */

def UnitCube():
square = [ [.5,.5,.5], [-.5,.5,.5], [-.5,-.5,.5], [.5,-.5,.5] ]
RiTransformBegin()
#/* far square */
RiPolygon( RI_P, square, RI_NULL)
#/* right face */
RiRotate(90.0, 0.0, 1.0, 0.0)
RiPolygon( RI_P, square, RI_NULL)
#/* near face */
RiRotate(90.0, 0.0, 1.0, 0.0)
RiPolygon( RI_P, square, RI_NULL)
#/* left face */
RiRotate(90.0, 0.0, 1.0, 0.0)
RiPolygon( RI_P, square, RI_NULL)
RiTransformEnd()

RiTransformBegin()
#/* bottom face */
RiRotate(90.0, 1.0, 0.0, 0.0)
RiPolygon( RI_P, square, RI_NULL)
RiTransformEnd()

RiTransformBegin()
#/* top face */
RiRotate(-90.0, 1.0, 0.0, 0.0)
RiPolygon( RI_P, square, RI_NULL)
RiTransformEnd()

color=(.9,.1,.2)

RiBegin(RI_NULL)
RiDisplay("list25.tif", RI_FRAMEBUFFER, RI_RGB)
RiFormat(640,480, -1.0)
RiShadingRate(1.0)
RiLightSource("distantlight", RI_NULL)
RiProjection(RI_PERSPECTIVE)
RiWorldBegin()
RiTranslate(0.0, 0.0, 1.5)
RiRotate(40.0, -1.0, 1.0, 0.0)
RiSurface("matte",RI_NULL)
RiColor(color)
UnitCube()
RiWorldEnd()
RiEnd()


  • -
  • -

<< PythonからRenderManを使う その2 戻る 「実践CGへの誘い」例題をPythonで行う その5 >>