我希望能够OES_texture_half_float在WebGL中使用扩展并提供我自己的数据,但Float16Array在JavaScript中没有.那么如何生成半浮点数据呢?
我正在尝试使用包含大量16位浮点数的javascript读取二进制文件.相当肯定它是IEEE标准,小端.将两个字节读入int非常简单,但是从那里我没有太大成功将其扩展为完整的浮点数.有线索吗?
我希望能够从二进制文件中读取半浮点数并将它们转换为 Swift 中的浮点数。我查看了其他语言(如 Java 和 C#)的几种转换,但是我无法获得与半浮点数相对应的正确值。如果有人可以帮助我实施,我将不胜感激。从浮动到半浮动的转换也将非常有帮助。这是我试图从这个Java implementation转换的implementation。
static func toFloat(value: UInt16) -> Float {
let value = Int32(value)
var mantissa = Int32(value) & 0x03ff
var exp: Int32 = Int32(value) & 0x7c00
if(exp == 0x7c00) {
exp = 0x3fc00
} else if exp != 0 {
exp += 0x1c000
if(mantissa == 0 && exp > 0x1c400) {
return Float((value & 0x8000) << 16 | exp << 13 | 0x3ff)
}
} else if mantissa != 0 { …Run Code Online (Sandbox Code Playgroud)