[英]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.