From b76ad8d43355b895bbb4479a51bd56aa48b466f4 Mon Sep 17 00:00:00 2001 From: hgn Date: Wed, 7 May 2025 21:21:52 +0100 Subject: [PATCH] glow for gino --- content_skaterift/models/gino.mdl | Bin 138720 -> 159000 bytes src/npc_gino.c | 27 ++++++++++++++++++++++----- 2 files changed, 22 insertions(+), 5 deletions(-) diff --git a/content_skaterift/models/gino.mdl b/content_skaterift/models/gino.mdl index 36e5cdd6f41fe9d2632d8926f965bc0543ad6c5d..3d581d351bd226ae58d5e8b12c83c8a6f820dad7 100644 GIT binary patch delta 20650 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 QOc)oun*Jb%Nu6;O097zB5dZ)H diff --git a/src/npc_gino.c b/src/npc_gino.c index 11f6706..b5d44a1 100644 --- a/src/npc_gino.c +++ b/src/npc_gino.c @@ -11,7 +11,7 @@ struct state; mdl_context mdl; - i32 sm_main, sm_hat; + i32 sm_main, sm_hat, sm_glow; f64 command_t; v3f co, p0, p1; @@ -75,6 +75,7 @@ void _npc_gino_init(void) mdl_async_full_load_std( mdl, NULL ); _gino.sm_main = mdl_get_submesh_index( mdl, "gino" ); _gino.sm_hat = mdl_get_submesh_index( mdl, "gino.hat" ); + _gino.sm_glow = mdl_get_submesh_index( mdl, "gino.spt" ); mdl_close( mdl ); } @@ -197,10 +198,6 @@ void _npc_gino_render( vg_camera *cam ) if( _gino.state == k_gino_none ) return; - mesh_bind( &_gino.mdl.mesh ); - glActiveTexture( GL_TEXTURE0 ); - glBindTexture( GL_TEXTURE_2D, _gino.mdl.textures[0].glname ); - world_instance *world = &_world.main; shader_model_entity_use(); shader_model_entity_uTexMain( 0 ); @@ -208,7 +205,27 @@ void _npc_gino_render( vg_camera *cam ) shader_model_entity_uPv( cam->mtx.pv ); WORLD_BIND_LIGHT_BUFFERS_UB0_TEX234( world, model_entity ); + mesh_bind( &_gino.mdl.mesh ); + glActiveTexture( GL_TEXTURE0 ); + + glDepthMask(GL_FALSE); + glEnable(GL_BLEND); + glBlendFunc(GL_ONE, GL_ONE); + glBlendEquation(GL_FUNC_ADD); + glBindTexture( GL_TEXTURE_2D, _gino.mdl.textures[1].glname ); + m4x3f mmdl; + m3x3_copy( cam->transform, mmdl ); + v3_copy( _gino.co, mmdl[3] ); + shader_model_entity_uMdl( mmdl ); + glDrawBuffers( 1, (GLenum[]){ GL_COLOR_ATTACHMENT0 } ); + mdl_draw_submesh( &_gino.mdl.submeshes[ _gino.sm_glow ] ); + glDrawBuffers( 2, (GLenum[]){ GL_COLOR_ATTACHMENT0, GL_COLOR_ATTACHMENT1 } ); + + glDepthMask(GL_TRUE); + glDisable(GL_BLEND); + glBindTexture( GL_TEXTURE_2D, _gino.mdl.textures[0].glname ); + v3f v0 = { localplayer.rb.co[0] - _gino.co[0], 0.0f, localplayer.rb.co[2] - _gino.co[2] }; v3_normalize( v0 ); v3_copy( v0, mmdl[0] ); -- 2.25.1