在 Unity 中能做到通过程序修改模型的纹理吗 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Game Engines
Unreal Engine
MyCryENGINE
mikaotaku
V2EX    游戏开发

在 Unity 中能做到通过程序修改模型的纹理吗

  •  
  •   mikaotaku 2024-08-28 11:11:13 +08:00 2197 次点击
    这是一个创建于 413 天前的主题,其中的信息可能已经有所发展或是发生改变。

    我是一个业余的游戏程序,现在有一个需求是这样的:在一个场景里同时有非常多的船,都使用同一个模型,除了船身上的舷号不一样,其余部分完全一样。如果仅仅是因为舷号不同就给每艘船一个单独的纹理感觉很没必要,所以在考虑能不能实现用程序在运行时去修改模型的纹理。 我考虑的方案大概是这样:有一个从 0~9 数字的纹理图片,在程序里按照舷号数字计算出要显示哪一部分,然后拼起来。但具体怎么实现,我感觉还有不少要解决的问题,希望大佬们能给我提些建议和方向。 本人对游戏开发比较小白,上面问题描述不专业还请海涵 qwq 。

    7 条回复    2024-08-29 16:17:43 +08:00
    shuiqingshabai
        1
    shuiqingshabai  
       2024-08-28 11:22:36 +08:00   1
    把不一样的那部分贴图分出来一个单独的材质球不行吗
    metalvest
        3
    metalvest  
       2024-08-28 14:08:31 +08:00 via Android   1
    用贴花或者用 shader
    metalvest
        4
    metalvest  
       2024-08-28 14:09:43 +08:00 via Android
    glcolof
        5
    glcolof  
       2024-08-28 16:48:43 +08:00   1
    以前游戏里面的做法是,在建模工具里面,增加专门显示弦号的子模型,程序运行中,只要在模型加载时,修改弦号子模型就可以了。修改的方法主要有 2 种:一种是修改顶点 UV 坐标,让子模型的各个四边形映射到数字纹理的相应数字的区域,这个操作也可以在 shader 里面实现;一种是修改子模型的材质球,即分别从 0~9 这 10 种数字对应的材质里面选择一个赋给相应的子模型。
    直接生成包含弦号的纹理也是一个可行的方案,Unity 没有提供现成的图像绘制库,楼主可以在网上找找有没有现成方案,或者使用 RenderTarget 和 Graphics 类自己实现一套。
    129ykx733D016U2n
      &nbp; 6
    129ykx733D016U2n  
       2024-08-29 15:03:08 +08:00   1
    这个问题本身,就没有必要这样,直接不同材质球就可以了,简单,快速地实现了需求,在没有出现性能问题之前,怎么简单怎么做,产品做出来上线是最重要的,技术是为产品服务的。
    SmiteChow
        7
    SmiteChow  
       2024-08-29 16:17:43 +08:00
    专业的是复制修改,存储只存一份
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     1068 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 24ms UTC 23:13 PVG 07:13 LAX 16:13 JFK 19:13
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86