void asset_render(asset_t a, renderer_t r, light_t l)
{
	if ( l ) {
		render_shadow(a, r, l);
	}else{
		render_asset(a, r);
	}
}
int SilhouetteShadow::render(const Frustum &frustum)
{
	object::DynamicPtr player = wr->get_local_player();
	int n_shadows = 0;

	if (player.valid() && add_shadow(*player, frustum)) {
		set_renderstate();
		render_shadow(*player);
		texture.copy_to_texture();
		restore_renderstate();		
		texture.use();
		render_triangles();		

		n_shadows++;
	}

	n_shadows += SimpleShadowDynamic::render(frustum, false);
	return n_shadows;
}