繁体   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