GitHub – CesiumGS/obj2gltf:将 OBJ 资产转换为 glTF
| Name | ||
|---|---|---|
|
ce0c36e · 2 years ago
|
||
|
|
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
|
|
存储库文件导航
如果还没有安装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
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);
});
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 团队开发。
2. 分享目的仅供大家学习和交流,请不要用于商业用途!
3. 如果你也有好源码或者教程,可以到用户中心发布,分享有积分奖励和额外收入!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!
7. 如遇到加密压缩包,默认解压密码为"gltf",如遇到无法解压的请联系管理员!
8. 因为资源和程序源码均为可复制品,所以不支持任何理由的退款兑现,请斟酌后支付下载
声明:如果标题没有注明"已测试"或者"测试可用"等字样的资源源码均未经过站长测试.特别注意没有标注的源码不保证任何可用性
GLB下载网 - GLB/GLTF模型与格式资源免费下载,支持在线浏览与转换 » 将 OBJ 资产转换为 glTF
常见问题FAQ
- 免费下载或者VIP会员专享资源能否直接商用?
- 本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
- 提示下载要提取码
- 分享过期和重复下载怎么办
- 模型和平台不兼容怎么办
