+
+
+ /* Draw beneath texture */
+ fb_use( &wrender.fbdepth );
+ glClear( GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT );
+
+ m4x3_invert_affine( camera, inverse );
+ m4x3_expand( inverse, view );
+
+ float bias = -(camera[3][1]-wrender.height)*0.1f;
+ v4f clippb = { 0.0f, -1.0f, 0.0f, -(wrender.height) + bias };
+ m4x3_mulp( inverse, clippb, clippb );
+ clippb[3] *= -1.0f;
+
+ m4x4_projection( projection,
+ gpipeline.fov,
+ (float)vg_window_x / (float)vg_window_y,
+ 0.1f, 900.0f );
+
+ plane_clip_projection( projection, clippb );
+ m4x4_mul( projection, view, projection );
+ render_world_depth( projection, camera );
+
+ glViewport( 0, 0, vg_window_x, vg_window_y );