gpt4 book ai didi

floating-point - 是否可以使用带符号的短 "2 bytes"而不是浮点 "4 bytes"导出 glTF 模型的顶点、UV 和法线?

转载 作者:行者123 更新时间:2023-12-04 10:03:33 25 4
gpt4 key购买 nike

我从 blender 中导出了一个 glTF 模型,当我将 .bin 文件放入十六进制编辑器时,他的顶点、UV 和法线似乎是“4 字节”浮点数或 IEEE 754 浮点数,如下例所示。

是否可以在顶点、UV 和法线中导出带有 short_signed 而非浮点数或仅“2 个字节”而不是“4 个字节”的 glTF 模型?

Example:

Vertices are in float:
X = 34 80 45 C2 ----short_signed----> xx xx
Y = C1 F9 65 42 ----short_signed----> xx xx
Z = 94 F6 76 41 ----short_signed----> xx xx

UVs are in float:
X = AD 69 0E 3F ----short_signed----> xx xx
Y = 5D FE 63 3F ----short_signed----> xx xx

Normals are in float:
X = 66 96 66 BF ----short_signed----> xx xx
Y = 56 66 DE 3E ----short_signed----> xx xx
Z = 00 00 80 3F ----short_signed----> xx xx

如果不可能,请给我任何方法将这个“4字节”浮点十六进制转换为“2字节”,并使其简短? (IEEE 754 浮点 --------> 有符号短)

或者在顶点、UV 和法线中是否有另一种带有符号短或“2 个字节”的模型格式?

提前致谢。

最佳答案

尽管 Blender 的导出器不能完全控制二进制数据布局,但 glTF 格式在允许 uint16、int16 和其他数组类型方面具有一定的灵活性。您可以使用进行量化的工具获得非常接近您要求的结果,gltfpack :

gltfpack -i input.glb -o output.glb -vn 14

从 gltfpack v0.14 开始,默认法线是 int8 ; -vn 14上面的选项将其更改为 int16 .默认顶点位置为 uint16 ,而 UV 是 int16 .请注意,此工具还会交错顶点属性。

关于floating-point - 是否可以使用带符号的短 "2 bytes"而不是浮点 "4 bytes"导出 glTF 模型的顶点、UV 和法线?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61706165/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com