got MRT working, some minor quirks to solve (black viewport background)
parent
eb67afe552
commit
3f05aba76d
@ -0,0 +1,81 @@
|
|||||||
|
// Compositor that just controls output to the MRT textures
|
||||||
|
compositor gbuffer
|
||||||
|
{
|
||||||
|
technique
|
||||||
|
{
|
||||||
|
// MRT output. Currently this is a color texture plus a depth texture
|
||||||
|
texture mrt_output target_width target_height PF_FLOAT16_RGBA PF_FLOAT16_RGBA chain_scope depth_pool 2
|
||||||
|
|
||||||
|
target mrt_output
|
||||||
|
{
|
||||||
|
input none
|
||||||
|
pass clear
|
||||||
|
{
|
||||||
|
}
|
||||||
|
pass render_scene
|
||||||
|
{
|
||||||
|
first_render_queue 0
|
||||||
|
last_render_queue 69
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
target_output
|
||||||
|
{
|
||||||
|
input none
|
||||||
|
|
||||||
|
pass render_quad
|
||||||
|
{
|
||||||
|
material RenderScene
|
||||||
|
input 0 mrt_output 0
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Finalizer compositor to render objects that we don't want in the MRT textures (this is the case for most transparent stuff)
|
||||||
|
compositor gbufferFinalizer
|
||||||
|
{
|
||||||
|
technique
|
||||||
|
{
|
||||||
|
texture no_mrt_output target_width target_height PF_R8G8B8A8 depth_pool 2 no_fsaa
|
||||||
|
texture previousscene target_width target_height PF_R8G8B8A8
|
||||||
|
|
||||||
|
target previousscene
|
||||||
|
{
|
||||||
|
input previous
|
||||||
|
}
|
||||||
|
target no_mrt_output
|
||||||
|
{
|
||||||
|
input none
|
||||||
|
shadows off
|
||||||
|
pass clear
|
||||||
|
{
|
||||||
|
buffers colour
|
||||||
|
colour_value 0 0 0 0
|
||||||
|
}
|
||||||
|
pass render_quad
|
||||||
|
{
|
||||||
|
material RenderSceneNoDepth
|
||||||
|
input 0 previousscene
|
||||||
|
}
|
||||||
|
pass render_scene
|
||||||
|
{
|
||||||
|
first_render_queue 70
|
||||||
|
last_render_queue 100
|
||||||
|
}
|
||||||
|
}
|
||||||
|
target_output
|
||||||
|
{
|
||||||
|
input none
|
||||||
|
pass clear
|
||||||
|
{
|
||||||
|
}
|
||||||
|
pass render_quad
|
||||||
|
{
|
||||||
|
material RenderSceneNoDepth
|
||||||
|
input 0 no_mrt_output
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,63 @@
|
|||||||
|
vertex_program RenderGBuffer_vs cg
|
||||||
|
{
|
||||||
|
source gbuffer.cg
|
||||||
|
profiles vs_4_0 vs_1_1 arbvp1
|
||||||
|
entry_point RenderScene_vs
|
||||||
|
default_params
|
||||||
|
{
|
||||||
|
param_named_auto wvp worldviewproj_matrix
|
||||||
|
}
|
||||||
|
}
|
||||||
|
fragment_program RenderGBuffer_ps cg
|
||||||
|
{
|
||||||
|
source gbuffer.cg
|
||||||
|
entry_point RenderScene_ps
|
||||||
|
profiles ps_4_0 ps_2_x arbfp1
|
||||||
|
default_params
|
||||||
|
{
|
||||||
|
}
|
||||||
|
}
|
||||||
|
material RenderScene
|
||||||
|
{
|
||||||
|
technique
|
||||||
|
{
|
||||||
|
pass
|
||||||
|
{
|
||||||
|
vertex_program_ref RenderGBuffer_vs
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
fragment_program_ref RenderGBuffer_ps
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
texture_unit tex1
|
||||||
|
{
|
||||||
|
//scenebuffer
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
material RenderSceneNoDepth
|
||||||
|
{
|
||||||
|
technique
|
||||||
|
{
|
||||||
|
pass
|
||||||
|
{
|
||||||
|
depth_write off
|
||||||
|
vertex_program_ref RenderGBuffer_vs
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
fragment_program_ref RenderGBuffer_ps
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
texture_unit tex1
|
||||||
|
{
|
||||||
|
//scenebuffer
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue