2016-03-19 22 views
1

Bildiğim kadarıyla, WebGL'de doku olarak Uint8Array kullanmak mümkündür. Ancak, büyük bir Float32Array veya Float64Array gölgelendiriciye verimli bir şekilde nasıl geçilir? Kayan değerler (0.0, 1.0) aralığında değildir ve negatif de olabilir.Gölgelendiricide Float32Array nasıl işlenir? (WebGL)

Bazı aygıtların high precision float desteklemediğini biliyorum ve işlem sırasında bazı kesinlik kayıplarının yaşanması sorun değil.

+0

[OES_texture_float] olarak ayarlamanız gerekir (https://www.khronos.org/registry/webgl/extensions/OES_texture_float/)? –

cevap

2

deneyin bir kayan nokta dokusunu filtre edememek bu yüzden ayrı bir uzantısı olduğunu

gl.texImage2D(target, level, format, width, height, 0, 
       format, gl.FLOAT, someFloat32Array); 

Not kullanılarak Float32Array ile

var ext = gl.getExtension("OES_texture_float"); 
if (!ext) { 
    alert("sorry, no floating point textures"); 
    return; 
} 

gibi kodla Şimdi oluşturabilir dokular nokta dokular kayan etkinleştirmek için Filtrelemeniz gerekiyorsa, o zaman da kontrol etmek zorundasınız. 10 Aksi halde doku filtrelemeyi NEAREST

İlgili konular