• 请不要在回答技术问题时复制粘贴 AI 生成的内容
lmmir
V2EX  ›  程序员

第三方 csgo 的武器 3d 检视图是如何实现的?

  •  1
     
  •   lmmir · Feb 5, 2023 · 4808 views
    This topic created in 1372 days ago, the information mentioned may be changed or developed.

    在 steam 上点击 csgo 的检视链接会跳到游戏检视页面。。。 一些网站的 csgo web 3d 检视如何实现的?

    20 replies  •  2023-02-07 17:30:09 +08:00
    yulon
    yulon
    Feb 5, 2023
    1
    之前接触到一个外包,说是服务器跑游戏,然后从游戏抓的模型或截图,除非你能破解印花生成的算法
    Sisyphe42
    Sisyphe42
    Feb 5, 2023
    2
    模型扔到前端渲染啊
    MoRanjiang
    MoRanjiang
    Feb 6, 2023 via Android
    3
    我猜这种贴图没必要加密,游戏里可能有
    lmmir
    lmmir
    OP
    Feb 6, 2023 via Android
    4
    @Sisyphe42 模型有,包含磨损的贴图哪里来
    kokutou
    kokutou
    Feb 6, 2023
    5
    @lmmir #4 游戏里都有...
    cs go 随便解包..
    ragnaroks
    ragnaroks
    Feb 6, 2023
    6
    做过的来说下,磨损本身是固定的,你可以理解为相同皮肤相同磨损那么外观一致。唯一的不同点就是图案模板,这个需要做解析渲染的供应商本身穷举,早期甚至有 buff 是 p1 ,igxe 是 p2 的 BUG 。不过大多数皮肤图案模板不会发生变化。
    ragnaroks
    ragnaroks
    Feb 6, 2023
    7
    如果你只是想知道 mdl 怎么在网页上查看,那就搜 threejs inspect
    lmmir
    lmmir
    OP
    Feb 6, 2023
    8
    @ragnaroks 0.9333 0.8333 的磨损的 贴图纹理应该不一样,这贴图纹理怎么获取
    karatsuba
    karatsuba
    Feb 6, 2023
    9
    冷知识,同磨损的贴纸刮出来的效果可能不一样
    ragnaroks
    ragnaroks
    Feb 6, 2023
    10
    @lmmir 贴图是一样的,或者说是同一个,磨损的效果不一样而已,我猜你想知道的是怎么获得这个磨损渲染细节,谷歌搜 source 2007 leak
    ragnaroks
    ragnaroks
    Feb 6, 2023❤️2
    11
    source 2017 leak ,起源引擎 2017 版本的几乎是完整的源码,磨损效果是通用模块,L4D2 也有人做 CSGO 皮肤搬运,就是参考这些玩意做的插件
    lmmir
    lmmir
    OP
    Feb 6, 2023
    12
    @ragnaroks 磨损渲染效果是用实时用算法算的 而不是生成带有磨损的贴图在贴上去的?
    UIXX
    UIXX
    Feb 6, 2023
    13
    ...

    我来说吧,常规皮肤就是三板斧:模型+皮肤贴图(这部分可能会有多种贴图,包括材料贴图、法线贴图等)+着色器。
    模型文件跟皮肤贴图可以解包出来,你说的磨损效果( Exterior )是着色器部分的工作,跟那个小数磨损值( Float value )有关。

    你看到的市场( market )一般会有好几个着色器,如同游戏内置的高低着色器那样,在不同的环境条件下用不同着色器可以提高性能,但也会有不同的视觉效果。
    lmmir
    lmmir
    OP
    Feb 6, 2023
    14
    @UIXX 所以要用网页实现 没法去用现成的图,必须自己写算法?
    UIXX
    UIXX
    Feb 7, 2023
    15
    @lmmir

    你想做模型预览?

    事实上你没法 100%还原它在游戏游玩过程中的样子,理由如下:
    1. 你可能会经常看到老生常谈的帖子说 CSGO 的皮肤呈现问题(比如高细节着色影响性能,低细节着色模糊区分不大,不同磨损之间几乎无差异等),为此官方打过非常多针对性的 patch 。
    2. 官方禁止了某些特殊材质、颜色的纹理(土豪专供)。
    3. 官方会根据玩家的 3D 配置动态(强行)修改着色器参数。

    所以大部分民间的物品浏览在着色器上的处理主要还是调整光照模型的亮度。你会发现调整 float value 的时候会有比较明显的明暗转换。
    lmmir
    lmmir
    OP
    Feb 7, 2023
    16
    @UIXX 对,做模型预览。
    lmmir
    lmmir
    OP
    Feb 7, 2023
    17
    @UIXX 只要能和游戏中的检视饰品的画面效果一样就行。
    UIXX
    UIXX
    Feb 7, 2023
    18
    @lmmir

    那你不是从零做普通的模型预览,而是做跟官方 market 一样的效果。直接用控制台里面的工作台你就能明白很多东西是怎么实现的了。
    UIXX
    UIXX
    Feb 7, 2023
    19
    @lmmir

    总结一下:

    如果需要自行实现一套跟 CSGO 类似的物品预览程序,就是模型+贴图+着色器,磨损的效果由贴图跟着色器共同决定。磨损的数值会影响明暗,这个可由着色器实现,也可由贴图+某些磨损生成器生成(不过到了前端,这部分已经固定)。 [这里不讨论特殊皮肤,特殊皮肤的效果呈现受多种因素影响]

    如果想要做一个跟 CSGO 内置一模一样的预览,建议使用 CSGO 的 workshop workbench 。
    lmmir
    lmmir
    OP
    Feb 7, 2023
    20
    @UIXX 有 qq 或者 vx 么,我想再咨询一下。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   4183 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 48ms · UTC 01:55 · PVG 09:55 · LAX 17:55 · JFK 20:55
    ♥ Do have faith in what you're doing.