Exemplo n.º 1
0
 def __init__(self, pipeline):
     PipelineNode.__init__(self, pipeline)
     self.lights_buffer = Lighting.get_lights_buffer()
     self.light_groups_buffer = NPR_Lighting.NPR_LightsGroupsBuffer()
     self.shadowmaps_opaque = NPR_Lighting.NPR_ShadowMaps()
     self.shadowmaps_transparent = NPR_Lighting.NPR_TransparentShadowMaps()
     self.common_buffer = Common.CommonBuffer()
Exemplo n.º 2
0
 def __init__(self, pipeline):
     PipelineNode.__init__(self, pipeline)
     self.resolution = None
     self.texture_targets = {}
     self.render_target = None
     self.custom_io = []
Exemplo n.º 3
0
 def __init__(self, pipeline):
     PipelineNode.__init__(self, pipeline)
     self.resolution = None
     self.t_depth = None
Exemplo n.º 4
0
Arquivo: PrePass.py Projeto: bnpr/Malt
 def __init__(self, pipeline):
     PipelineNode.__init__(self, pipeline)
     self.resolution = None
     self.custom_io = []
     self.npr_light_shaders = NPR_LightShaders()
Exemplo n.º 5
0
 def __init__(self, pipeline):
     PipelineNode.__init__(self, pipeline)
Exemplo n.º 6
0
    def setup_graphs(self):
        super().setup_graphs()

        mesh = GLSLPipelineGraph(
            name='Mesh',
            graph_type=GLSLPipelineGraph.SCENE_GRAPH,
            default_global_scope=_MESH_SHADER_HEADER,
            default_shader_src=_DEFAULT_SHADER_SRC,
            shaders=['PRE_PASS', 'MAIN_PASS', 'SHADOW_PASS'],
            graph_io=[
                GLSLGraphIO(
                    name='PRE_PASS_PIXEL_SHADER',
                    define='CUSTOM_PRE_PASS',
                    io_wrap='PRE_PASS',
                    shader_type='PIXEL_SHADER',
                    dynamic_output_types=GLSLGraphIO.COMMON_OUTPUT_TYPES,
                    custom_output_start_index=2,
                ),
                GLSLGraphIO(
                    name='DEPTH_OFFSET',
                    define='CUSTOM_DEPTH_OFFSET',
                    shader_type='PIXEL_SHADER',
                ),
                GLSLGraphIO(
                    name='MAIN_PASS_PIXEL_SHADER',
                    io_wrap='MAIN_PASS',
                    shader_type='PIXEL_SHADER',
                    dynamic_input_types=GLSLGraphIO.COMMON_INPUT_TYPES,
                    dynamic_output_types=GLSLGraphIO.COMMON_OUTPUT_TYPES,
                    default_dynamic_outputs={
                        'Color': 'vec4',
                        'Line Color': 'vec4',
                        'Line Width': 'float',
                    }
                ),
                GLSLGraphIO(
                    name='VERTEX_DISPLACEMENT_SHADER',
                    define='CUSTOM_VERTEX_DISPLACEMENT',
                    shader_type='VERTEX_SHADER'
                ),
                GLSLGraphIO(
                    name='COMMON_VERTEX_SHADER',
                    define='CUSTOM_VERTEX_SHADER',
                    shader_type='VERTEX_SHADER',
                ),
            ]
        )
        self.add_graph(mesh)

        screen = GLSLPipelineGraph(
            name='Screen',
            graph_type=GLSLPipelineGraph.GLOBAL_GRAPH,
            default_global_scope=_SCREEN_SHADER_HEADER,
            default_shader_src="void SCREEN_SHADER(){ }",
            graph_io=[ 
                GLSLGraphIO(
                    name='SCREEN_SHADER',
                    shader_type='PIXEL_SHADER',
                    dynamic_input_types= GLSLGraphIO.COMMON_INPUT_TYPES,
                    dynamic_output_types= GLSLGraphIO.COMMON_OUTPUT_TYPES,
                    default_dynamic_outputs={
                        'Color': 'vec4',
                    }
                )
            ]
        )
        self.add_graph(screen)

        light = GLSLPipelineGraph(
            name='Light',
            graph_type=GLSLPipelineGraph.INTERNAL_GRAPH,
            default_global_scope=_LIGHT_SHADER_HEADER,
            default_shader_src="void LIGHT_SHADER(LightShaderInput I, inout LightShaderOutput O) { }",
            graph_io=[ 
                GLSLGraphIO(
                    name='LIGHT_SHADER',
                    shader_type='PIXEL_SHADER',
                )
            ]
        )
        self.add_graph(light)
        
        render_layer = PythonPipelineGraph(
            name='Render Layer',
            graph_io = [
                PythonGraphIO(
                    name = 'Render Layer',
                    dynamic_input_types= PythonGraphIO.COMMON_IO_TYPES,
                    dynamic_output_types= PythonGraphIO.COMMON_IO_TYPES,
                    function = PipelineNode.static_reflect(
                        name = 'Render Layer',
                        inputs = {
                            'Scene' : Parameter('Scene', Type.OTHER),
                        },
                        outputs = {
                            'Color' : Parameter('', Type.TEXTURE),
                        },
                    )
                )
            ]
        )
        render_layer.add_library(os.path.join(os.path.dirname(__file__),'..','..','Nodes'))
        render_layer.add_library(os.path.join(os.path.dirname(__file__), 'Nodes', 'RenderLayer'))
        self.add_graph(render_layer)

        render = PythonPipelineGraph(
            name='Render',
            graph_io = [
                PythonGraphIO(
                    name = 'Render',
                    dynamic_output_types= PythonGraphIO.COMMON_IO_TYPES,
                    function = PipelineNode.static_reflect(
                        name = 'Render',
                        inputs = {
                            'Scene' : Parameter('Scene', Type.OTHER),
                        },
                        outputs = {
                            'Color' : Parameter('', Type.TEXTURE),
                            'Depth' : Parameter('', Type.TEXTURE),
                        },
                    )
                )
            ]
        )
        render.add_library(os.path.join(os.path.dirname(__file__),'..','..','Nodes'))
        render.add_library(os.path.join(os.path.dirname(__file__), 'Nodes', 'Render'))
        self.add_graph(render)