@@ -31,6 +31,7 @@ def __init__(self, width, height, gbuffer=None, lightbuffer=None):
3131 self .width = width
3232 self .height = height
3333 self .size = (width , height )
34+ print (self .size )
3435 self .ctx = context .ctx ()
3536
3637 # FBOs
@@ -55,7 +56,7 @@ def __init__(self, width, height, gbuffer=None, lightbuffer=None):
5556 if not self .lightbuffer :
5657 self .lightbuffer = FBO .create_from_textures (
5758 [Texture2D .create (self .size , 4 )],
58- depth_buffer = depth_buffer ,
59+ # depth_buffer=depth_buffer,
5960 )
6061
6162 # Unit cube for point lights (cube with radius 1.0)
@@ -77,6 +78,8 @@ def draw_buffers(self, near, far):
7778 :param near: Projection near value
7879 :param far: Projection far value
7980 """
81+ self .ctx .disable (mgl .DEPTH_TEST )
82+
8083 self .gbuffer .draw_color_layer (layer = 0 , pos = (0.0 , 0.0 ), scale = (0.25 , 0.25 ))
8184 self .gbuffer .draw_color_layer (layer = 1 , pos = (0.5 , 0.0 ), scale = (0.25 , 0.25 ))
8285 self .gbuffer .draw_depth (near , far , pos = (1.0 , 0.0 ), scale = (0.25 , 0.25 ))
@@ -88,8 +91,8 @@ def add_point_light(self, position, radius):
8891
8992 def render_lights (self , camera_matrix , projection ):
9093 """Render light volumes"""
91- # Disable culling so lights can be rendered when inside volumes
92- self .ctx .disable (mgl .CULL_FACE )
94+ # Draw light volumes from the inside
95+ self .ctx .enable (mgl .CULL_FACE )
9396 self .ctx .front_face = 'cw'
9497
9598 # No depth testing
@@ -128,7 +131,7 @@ def render_lights_debug(self, camera_matrix, projection):
128131 m_mv = matrix44 .multiply (light .matrix , camera_matrix )
129132 light_size = light .radius
130133 self .debug_shader .uniform ("m_proj" , projection .tobytes ())
131- self .debug_shader .uniform ("m_mv" , m_mv .astype ('f4' ))
134+ self .debug_shader .uniform ("m_mv" , m_mv .astype ('f4' ). tobytes () )
132135 self .debug_shader .uniform ("size" , light_size )
133136 self .unit_cube .draw (self .debug_shader , mode = mgl .LINE_STRIP )
134137
0 commit comments