X-Git-Url: https://harrygodden.com/git/?a=blobdiff_plain;f=player_render.c;h=ba50fc1402b0e55ce11a491865c321a824d5c398;hb=f1fe55f957a3dbdb6ca20a696f0c1171e2d5e7ca;hp=b4897fc1f0bf2b13aa8c0abd7068ca27bed836bc;hpb=a1b878e2cdbf145b59d611b5060d3c1a1a80d017;p=carveJwlIkooP6JGAAIwe30JlM.git diff --git a/player_render.c b/player_render.c index b4897fc..ba50fc1 100644 --- a/player_render.c +++ b/player_render.c @@ -364,6 +364,7 @@ VG_STATIC void render_board( camera *cam, world_instance *world, } VG_STATIC void render_playermodel( camera *cam, world_instance *world, + int depth_compare, struct player_model *model, struct skeleton *skeleton ){ if( !model ) return; @@ -375,16 +376,20 @@ VG_STATIC void render_playermodel( camera *cam, world_instance *world, shader_model_character_view_uTexMain( 0 ); shader_model_character_view_uCamera( cam->transform[3] ); shader_model_character_view_uPv( cam->mtx.pv ); - shader_model_character_view_uTexSceneDepth( 1 ); - render_fb_bind_texture( gpipeline.fb_main, 2, 1 ); - v3f inverse; - render_fb_inverse_ratio( gpipeline.fb_main, inverse ); - inverse[2] = skaterift.cam.farz-skaterift.cam.nearz; - shader_model_character_view_uInverseRatioDepth( inverse ); - render_fb_inverse_ratio( NULL, inverse ); - inverse[2] = cam->farz-cam->nearz; - shader_model_character_view_uInverseRatioMain( inverse ); + if( depth_compare ){ + shader_model_character_view_uTexSceneDepth( 1 ); + render_fb_bind_texture( gpipeline.fb_main, 2, 1 ); + v3f inverse; + render_fb_inverse_ratio( gpipeline.fb_main, inverse ); + inverse[2] = skaterift.cam.farz-skaterift.cam.nearz; + + shader_model_character_view_uInverseRatioDepth( inverse ); + render_fb_inverse_ratio( NULL, inverse ); + inverse[2] = cam->farz-cam->nearz; + shader_model_character_view_uInverseRatioMain( inverse ); + } + shader_model_character_view_uDepthCompare( depth_compare ); world_link_lighting_ub( world, _shader_model_character_view.id ); world_bind_position_texture( world, _shader_model_character_view.id, @@ -403,8 +408,7 @@ VG_STATIC void render_playermodel( camera *cam, world_instance *world, mesh_draw( &model->mdl.mesh ); } -PLAYER_API void player__render( camera *cam, player_instance *player ) -{ +PLAYER_API void player__render( camera *cam, player_instance *player ){ world_instance *world = world_current_instance(); SDL_AtomicLock( &addon_system.sl_cache_using_resources ); @@ -413,7 +417,7 @@ PLAYER_API void player__render( camera *cam, player_instance *player ) player->playermodel_view_slot ); if( !model ) model = &player->fallback_model; - render_playermodel( cam, world, model, &player->playeravatar->sk ); + render_playermodel( cam, world, 1, model, &player->playeravatar->sk ); struct player_board *board = addon_cache_item_if_loaded( k_addon_type_board,