diff options
| author | tech kaczynski <tk@techkaczynski.dev> | 2026-11-04 05:56:35 +1000 |
|---|---|---|
| committer | tech kaczynski <tk@techkaczynski.dev> | 2026-11-04 05:56:35 +1000 |
| commit | ea84213ece95e3ef8ff7f0095cee73ee6bdd0f9a (patch) | |
| tree | 32a502e72438ba0c6b6fa00dbd9dbdf3603fe7e3 /res.c | |
| parent | e5560f69e11051a85c1d54780a59a4fbd83d8ed9 (diff) | |
added convex hull and trimesh colliders. Fixed physics edit mode bugs. Added debug drawing for all supported collision types.
Diffstat (limited to 'res.c')
| -rw-r--r-- | res.c | 27 |
1 files changed, 26 insertions, 1 deletions
@@ -37,8 +37,29 @@ asset_load_data(cstr key) { return false; } + bool skinned = mdl.skeleton.boneCount > 0 && + mdl.skeleton.bindPose != NULL; + + cstr sdr_key = skinned ? "skinned" : "default"; + for (int i = 0; i < mdl.materialCount; ++i) { - mdl.materials[i].shader = shader_get("default")->sdr; + mdl.materials[i].shader = shader_get(sdr_key)->sdr; + } + + if (skinned) { + int anim_count = 0; + ModelAnimation *anims = + LoadModelAnimations(key, &anim_count); + + if (anim_count > 0) { + UpdateModelAnimation(mdl, anims[0], 0.0f); + } + + UnloadModelAnimations(anims, anim_count); + } + + for (int i = 0; i < mdl.materialCount; ++i) { + mdl.materials[i].shader = shader_get(sdr_key)->sdr; } asset->tag = ASSET_TAG_MODEL; @@ -148,6 +169,10 @@ res_init(void) { "res/sdr/mdl_vtx_lit.vs", "res/sdr/mdl_vtx_lit.fs"); + fun_shader_create("skinned", + "res/sdr/mdl_skinned_vtx_lit.vs", + "res/sdr/mdl_vtx_lit.fs"); + fun_shader_create("alpha_cutoff", "res/sdr/mdl_vtx_lit.vs", "res/sdr/mdl_vtx_lit_cutoff.fs"); |
