plish
[carveJwlIkooP6JGAAIwe30JlM.git] / world_gen.h
index d18c2c387e70680679ec95e1bc5bb1ad0e87d91e..3a66523991d09c1efac6812fb7c48a40c8b6532e 100644 (file)
@@ -54,7 +54,14 @@ VG_STATIC void world_apply_procedural_foliage( struct world_material *mat )
    mdl_node *mblob = mdl_node_from_name( mfoliage, "blob" );
    mdl_submesh *sm_blob = mdl_node_submesh( mfoliage, mblob, 0 );
 
-   for( int i=0;i<100000;i++ )
+   int count = 0;
+
+   float area = volume[0]*volume[2];
+   u32 particles = 0.08f * area;
+
+   vg_info( "Map area: %f. Max particles: %u\n", area, particles );
+
+   for( int i=0;i<particles;i++ )
    {
       v3f pos;
       v3_mul( volume, (v3f){ vg_randf(), 1000.0f, vg_randf() }, pos );
@@ -83,9 +90,13 @@ VG_STATIC void world_apply_procedural_foliage( struct world_material *mat )
             v3_copy( hit.pos, transform[3] );
             scene_add_submesh( world.scene_no_collide, mfoliage, 
                                sm_blob, transform);
+
+            count ++;
          }
       }
    }
+
+   vg_info( "%d foliage models added\n", count );
 }
 
 VG_STATIC void world_ents_allocate(void)
@@ -544,10 +555,9 @@ VG_STATIC void world_post_process(void)
       glDisable(GL_DEPTH_TEST);
       glDisable(GL_BLEND);
       glDisable(GL_CULL_FACE);
-      glBindFramebuffer( GL_FRAMEBUFFER, gpipeline.fb_depthmap );
-      glViewport( 0, 0, 1024, 1024 );
-      shader_fscolour_use();
-      shader_fscolour_uColour( (v4f){-9999.0f,-9999.0f,-9999.0f,-9999.0f} );
+      render_fb_bind( gpipeline.fb_heightmap );
+      shader_blitcolour_use();
+      shader_blitcolour_uColour( (v4f){-9999.0f,-9999.0f,-9999.0f,-9999.0f} );
       render_fsquad();
 
       /* todo: hmm?? */
@@ -583,11 +593,12 @@ VG_STATIC void world_post_process(void)
 
    vg_release_thread_sync();
 
+#if 0
    /*
     * Setup scene collider 
     */
-
    reset_player( 1, (const char *[]){"start"} );
+#endif
 }
 
 VG_STATIC void world_process_resources(void)