예제 #1
0
    def __init__(self, scene, interactive=False, external_render=False, preview_render=False, bake=False):
        self.rib_done = False
        self.scene = scene
        self.output_files = []
        # set the display driver
        if external_render:
            self.display_driver = scene.renderman.display_driver
        elif preview_render:
            self.display_driver = 'openexr'
        else:
            self.display_driver = 'it' if scene.renderman.render_into == 'it' else 'openexr'

        # pass addon prefs to init_envs
        addon = bpy.context.user_preferences.addons[__name__.split('.')[0]]
        init_exporter_env(addon.preferences)
        self.initialize_paths(scene)
        self.rm = scene.renderman
        self.external_render = external_render
        self.bake=bake
        self.do_render = (scene.renderman.output_action == 'EXPORT_RENDER')
        self.is_interactive = interactive
        self.is_interactive_ready = False
        self.options = []
        # check if prman is imported
        if not prman_inited:
            init_prman()

        if interactive:
            prman.Init(['-woff', 'A57001'])  # need to disable for interactive
        else:
            prman.Init()
        self.ri = prman.Ri()
        self.edit_num = 0
        self.update_time = None
        self.last_edit_mat = None
예제 #2
0
    def __init__(self, scene, interactive=False):
        self.scene = scene
        # pass addon prefs to init_envs
        addon = bpy.context.user_preferences.addons[__name__.split('.')[0]]
        init_exporter_env(addon.preferences)
        self.initialize_paths(scene)
        self.rm = scene.renderman

        self.do_render = (scene.renderman.output_action == 'EXPORT_RENDER')
        self.is_interactive_running = False
        self.is_interactive = interactive
        self.options = []
        if interactive:
            prman.Init(['-woff', 'A57001'])  #need to disable for interactive
        else:
            prman.Init()
        self.ri = prman.Ri()
        self.edit_num = 0
        self.update_time = None
예제 #3
0
def runFilter(RIBFiles):
    prman.Init(["-catrib", "/dev/null", ""])  #"-woff",woff])
    ri = prman.Ri()
    rif = CameraRif(ri)
    prman.RifInit([rif])
    ri.Begin(ri.RENDER)
    for rib in RIBFiles:
        print('parsing for camera parameters: ' + rib)
        prman.ParseFile(rib)
    ri.End()
    return rif._cameraData
예제 #4
0
    def __init__(self, scene):
        self.scene = scene
        #pass addon prefs to init_envs
        init_exporter_env( \
        bpy.context.user_preferences.addons[__name__.split('.')[0]].preferences)
        self.initialize_paths(scene)

        self.rm = scene.renderman

        self.do_render = (scene.renderman.output_action == 'EXPORT_RENDER')
        self.is_interactive_running = False
        self.is_interactive = False
        self.options = []
        prman.Init()
        self.ri = prman.Ri()
        self.edit_num = 0
예제 #5
0
import prman

prman.Init()
ri = prman.Ri()
ri.Begin(ri.RENDER)

ri.Display("sphere.tiff", "tiff", "rgb")
ri.Projection("perspective")

ri.WorldBegin()
ri.Translate(0, 0, 2)
ri.Sphere(1, -1, 1, 360)
ri.WorldEnd()

ri.End()
    face = [-0.1, -1, -3, 0.1, -1, -3, -0.1, -1, 3, 0.1, -1, 3]
    plank = -5.0

    ri.AttributeBegin()
    while (plank <= 5.0):
        ri.TransformBegin()
        ri.Color([1, 1, 1])
        ri.Surface("paintedplastic")
        ri.Translate(plank, 0, 0)
        ri.Patch("bilinear", {'P': face})
        ri.TransformEnd()
        plank = plank + 0.206
    ri.AttributeEnd()


prman.Init(["-progress"
            ])  # a list of string arguments, same as prman executable
ri = prman.Ri()  # create an instance of the RenderMan interface
ri.Option("rib", {"string asciistyle": "indented"})

filename = "paintedplastic.rib"
# this is the begining of the rib archive generation we can only
# make RI calls after this function else we get a core dump
ri.Begin("__render")  #filename)
ri.Clipping(0.1, 20)

# ArchiveRecord is used to add elements to the rib stream in this case comments
# note the function is overloaded so we can concatinate output
ri.ArchiveRecord(ri.COMMENT, 'File ' + filename)
ri.ArchiveRecord(ri.COMMENT, "Created by " + getpass.getuser())
ri.ArchiveRecord(ri.COMMENT, "Creation Date: " + time.ctime(time.time()))