minecraft吧 关注:2,573,402贴子:32,123,525

回复:成功在渲染龙实现区块显示

取消只看楼主收藏回复

跨平台也只是mojang的源码可以只写一份然后compile everywhere了,这个material.bin还是区分平台的


IP属地:北京来自Android客户端36楼2022-04-13 20:58
回复
    这个是IDA pro逆向so文件找出的平台的类型
    enum class ShaderCodePlatform {
    Direct3D_SM40,
    Direct3D_SM50,
    Direct3D_SM60,
    Direct3D_SM65,
    Direct3D_XB1,
    Direct3D_XBX,
    GLSL_120,
    GLSL_430,
    ESSL_100,
    ESSL_300,
    ESSL_310,
    Metal,
    Vulkan,
    Nvn,
    Pssl,
    }


    IP属地:北京来自Android客户端38楼2022-04-13 21:04
    回复
      2026-03-13 13:30:56
      广告
      不感兴趣
      开通SVIP免广告
      还有一个很奇怪的的是,为啥Android版arm64v8a架构的material.bin的平台是essl 1.0?armv7恐怕也一样


      IP属地:北京来自Android客户端39楼2022-04-13 21:07
      收起回复
        之前的源代码格式好歹还能跨版本支持1.0,3.0


        IP属地:北京来自Android客户端40楼2022-04-13 21:08
        回复
          这个提取出来的代码写的也是varying而不是in/out,估计确实是OpenGL ES1.0


          IP属地:北京来自Android客户端41楼2022-04-13 21:10
          回复
            果然这种东西没人看,又变单机版贴吧了


            IP属地:北京来自Android客户端42楼2022-04-13 21:20
            回复
              没想到之前GitHub就有反编译工具了,https://github.com/ddf8196/MaterialBinTool,连mojang的加密都给破解了不过ShaderCode那个类要改一下才能用


              IP属地:北京来自Android客户端64楼2022-04-14 14:17
              回复
                这个unknownBytes0读20改成读8,之后直接readByteArray读出来就是bgfx编译后的二进制着色器文件,根据平台不同,格式上也有差异


                IP属地:北京来自Android客户端66楼2022-04-14 14:23
                回复
                  2026-03-13 13:24:56
                  广告
                  不感兴趣
                  开通SVIP免广告
                  既然之前GitHub上有人弄了https://github.com/ddf8196/MaterialBinTool/,而且还比较完善,那不如,关于着色器格式的说明那部分issue已经提了,大家可以等这个项目更新,最近期中ddl比较多,先跑路了


                  IP属地:北京来自Android客户端92楼2022-04-20 17:03
                  回复
                    和ddf大佬他们一起研究了一下,现在Windows版也可以用了,不过暂时还未完全支持


                    IP属地:北京来自Android客户端101楼2022-05-03 15:20
                    回复