簡體   English   中英

如果我可以渲染到浮點紋理,這意味着什么,但我被告知它不受支持?

[英]What does it mean if I can render to a floating point texture, but I'm told it's not supported?

當我嘗試執行以下操作時,警告框會顯示“否”。

var ext = gl.getExtension("OES_texture_float");
if (!ext) {
     alert("no");   
}

OES_texture_float也沒有出現在我支持的擴展名列表中。

基於這篇文章 ,我然后嘗試確定是否可以渲染到浮點紋理。

var texture = gl.createTexture();
gl.bindTexture(gl.TEXTURE_2D, texture);
gl.texImage2D(gl.TEXTURE_2D, 0,gl.RGBA, 2, 2, 0, gl.RGBA, gl.FLOAT, null);
gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.LINEAR);
gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.LINEAR);

var framebuffer = gl.createFramebuffer();
gl.bindFramebuffer(gl.FRAMEBUFFER, framebuffer);
gl.framebufferTexture2D(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.TEXTURE_2D, texture, 0);

var check = gl.checkFramebufferStatus(gl.FRAMEBUFFER);
if(check != gl.FRAMEBUFFER_COMPLETE){
    alert("yes");
}
else{
    alert("no");
}

我得到警報是的。 什么意思不支持擴展,但我顯然仍然可以渲染這些紋理? 只有第二種能力我能做些什么?

謝謝!

你的支票是落后的。 應該說

if (check === gl.FRAMEBUFFER_COMPLETE) {
  alert("yes");

您也可能在JavaScript控制台中看到錯誤

WebGL: INVALID_ENUM: texImage2D: invalid type

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM