• 正文概述
  • GitHub – CesiumGS/obj2gltf:将 OBJ 资产转换为 glTF

    Name
    2 years ago
    2 years ago
    2 years ago
    10 years ago
    2 years ago
    2 years ago
    4 years ago
    8 years ago
    4 years ago
    8 years ago
    2 years ago
    2 years ago
    8 years ago
    4 years ago
    2 years ago
    4 years ago
    2 years ago
    2 years ago
    2 years ago
    4 years ago
    2 years ago

    存储库文件导航

    OBJ2GLTF

    将 OBJ 资产转换为 glTF 2.0。

    开始

    如果还没有安装Node.js,请安装它,然后:

    npm install -g obj2gltf
    

    使用 obj2gltf 作为命令行工具:

    obj2gltf -i model.obj

    obj2gltf -i model.obj -o model.gltf

    obj2gltf -i model.obj -o model.glb

    使用 obj2gltf 作为库:

    将 obj 模型转换为 gltf:

    const obj2gltf = require("obj2gltf");
    const fs = require("fs");
    obj2gltf("model.obj").then(function (gltf) {
      const data = Buffer.from(JSON.stringify(gltf));
      fs.writeFileSync("model.gltf", data);
    });

    将 obj 模型转换为 glb

    const obj2gltf = require("obj2gltf");
    const fs = require("fs");
    const options = {
      binary: true,
    };
    obj2gltf("model.obj", options).then(function (glb) {
      fs.writeFileSync("model.glb", glb);
    });

    材料类型

    传统上,.mtl 文件格式描述了 Blinn-Phong 着色模型。同时,glTF 2.0 引入了基于物理的 材料。

    支持三种着色模型:obj2gltf

    • 金属粗糙度 PBR
    • 镜面光泽度 PBR(通过扩展)KHR_materials_pbrSpecularGlossiness
    • 无光照材质(通过扩展)KHR_materials_unlit

    如果材料类型是预先已知的,则应使用 or 标志指定。metallicRoughnessspecularGlossiness

    如果模型中已存在照明信息,则应使用该标志。这将保存带有扩展名的 glTF。unlitKHR_materials_unlit

    如果模型是使用 PBR 纹理创建的,则应传入 or 标志。 有关如何在 .mtl 文件中指定 PBR 值的更多信息,请参阅下表。metallicRoughnessspecularGlossiness

    如果未提供这些标志,则假定 .mtl 包含传统的 Blinn-Phong 材质,这些材质将转换为金属粗糙度 PBR。 由于传统材料无法完美映射到 PBR 材料,因此可能会有一些质量损失。

    通常,在 PBR 工作流程中,.mtl 文件可能不存在,或者其值可能已过时或不正确。 为方便起见,PBR 纹理可以直接提供给命令行。

    将 mtl 插槽映射到着色模型

    金属粗糙度 镜面光泽度
    遮挡值 遮挡值
    自发光颜色 自发光颜色
    Kd 底色 漫反射颜色
    Ks 金属值 镜面反射颜色
    NS 粗糙度值 光泽度值
    d 阿尔法 阿尔法
    Tr 1.0 – 阿尔法 1.0 – 阿尔法
    map_Ka 遮挡纹理 遮挡纹理
    map_Ke 自发光纹理 自发光纹理
    map_Kd 底色纹理 漫反射纹理
    map_Ks 金属质感 镜面反射纹理
    map_Ns 粗糙度纹理 光泽质感
    map_Bump 正常纹理 正常纹理

    用法

    命令行标志:

    描述 必填
    -h,--help 显示帮助。
    -i,--input obj 文件的路径。 ✅ 是的
    -o,--output 转换后的 glTF 或 glb 文件的路径。
    -b,--binary 另存为二进制 glTF (.glb)。 否,默认false
    -s,--separate 写出单独的缓冲区和纹理,而不是将它们嵌入到 glTF 文件中。 否,默认false
    -t,--separateTextures 仅写出单独的纹理。 否,默认false
    --checkTransparency 通过查看每个像素的 alpha 通道,对纹理透明度进行更详尽的检查。默认情况下,纹理被认为是不透明的。 否,默认false
    --secure 防止转换器读取输入 obj 目录之外的纹理或 mtl 文件。 否,默认false
    --packOcclusion 将遮挡纹理打包到金属粗糙度纹理的红色通道中。 否,默认false
    --metallicRoughness mtl 文件中的值已经是金属粗糙度 PBR 值,不应应用任何转换步骤。金属存储在 Ks 和 map_Ks 槽中,粗糙度存储在 Ns 和 map_Ns 槽中。 否,默认false
    --specularGlossiness mtl 文件中的值已经是镜面光泽度 PBR 值,不应应用任何转换步骤。镜面反射存储在 Ks 和 map_Ks 插槽中,光泽度存储在 Ns 和 map_Ns 插槽中。glTF 将与扩展名一起保存。KHR_materials_pbrSpecularGlossiness 否,默认false
    --unlit glTF 将使用 KHR_materials_unlit 扩展名保存。 否,默认false
    --metallicRoughnessOcclusionTexture 金属-粗糙度-遮挡纹理的路径,该纹理应覆盖 .mtl 文件中的纹理,其中遮挡存储在红色通道中,粗糙度存储在绿色通道中,金属色存储在蓝色通道中。模型将使用 pbrMetallicRoughness 材质保存。这在 .mtl 不存在或未设置为使用 PBR 材质的工作流程中通常很方便。适用于具有单一材料的模型。
    --specularGlossinessTexture 应覆盖 .mtl 文件中纹理的高光光泽度纹理的路径,其中高光颜色存储在红色、绿色和蓝色通道中,高光光泽度存储在 alpha 通道中。模型将与使用KHR_materials_pbrSpecularGlossiness扩展名的材质一起保存。
    --occlusionTexture 应覆盖 .mtl 文件中纹理的遮挡纹理的路径。
    --normalTexture 应覆盖 .mtl 文件中纹理的法线纹理的路径。
    --baseColorTexture 应覆盖 .mtl 文件中纹理的 baseColor/diffuse 纹理的路径。
    --emissiveTexture 应覆盖 .mtl 文件中纹理的自发光纹理的路径。
    --alphaTexture 应覆盖 .mtl 文件中纹理的 alpha 纹理的路径。
    --input-up-axis obj 的上轴。
    --output-up-axis 转换后的 glTF 的上轴。
    --triangle-winding-order-sanitization 应用三角绕组顺序消毒。
    --doubleSidedMaterial 允许材料属性是双面的 否,默认false

    构建说明

    运行测试:

    npm run test
    

    要在整个代码库上运行 ESLint,请运行:

    npm run eslint
    

    要在保存文件时自动运行 ESLint,请运行以下命令并将其在控制台窗口中保持打开状态:

    npm run eslint-watch
    

    运行测试覆盖率

    覆盖范围使用纽约市。跑:

    npm run coverage
    

    有关完整的覆盖范围详细信息,请打开 。coverage/lcov-report/index.html

    测试和覆盖范围涵盖Node.js模块;它不包括很小的命令行界面。

    生成文档

    要生成文档,请执行以下作:

    npm run jsdoc
    

    文档将放置在文件夹中。doc

    贡献

    欢迎拉取请求。请使用与 CesiumJS 相同的贡献者许可协议 (CLA)。


    由 Cesium 团队开发。

    图像描述

    1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
    2. 分享目的仅供大家学习和交流,请不要用于商业用途!
    3. 如果你也有好源码或者教程,可以到用户中心发布,分享有积分奖励和额外收入!
    4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
    5. 如有链接无法下载、失效或广告,请联系管理员处理!
    6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!
    7. 如遇到加密压缩包,默认解压密码为"gltf",如遇到无法解压的请联系管理员!
    8. 因为资源和程序源码均为可复制品,所以不支持任何理由的退款兑现,请斟酌后支付下载
    声明如果标题没有注明"已测试"或者"测试可用"等字样的资源源码均未经过站长测试.特别注意没有标注的源码不保证任何可用性

    GLB下载网 - GLB/GLTF模型与格式资源免费下载,支持在线浏览与转换 » 将 OBJ 资产转换为 glTF

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载要提取码
    百度网盘提取码都是gltf。
    分享过期和重复下载怎么办
    分享过期请使用备份下载,重复下载是不另扣费的,请放心下载。
    模型和平台不兼容怎么办
    可以用网站在线编辑功能,修改模型属性,大小,方向,坐标,中心,透明等问题,然后重新导出既可https://glbxz.com/38636.html
    开通VIP 享更多特权,建议使用 QQ 登录