如果我可以渲染到浮点纹理,但有人告诉我它不受支持,这意味着什么?
What does it mean if I can render to a floating point texture, but I'm told it's not supported?
当我尝试执行以下操作时,警告框显示 "no"。
var ext = gl.getExtension("OES_texture_float");
if (!ext) {
alert("no");
}
OES_texture_float 也没有出现在我的支持扩展列表中。
基于 this article,然后我尝试确定是否可以渲染到浮点纹理。
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
当我尝试执行以下操作时,警告框显示 "no"。
var ext = gl.getExtension("OES_texture_float");
if (!ext) {
alert("no");
}
OES_texture_float 也没有出现在我的支持扩展列表中。
基于 this article,然后我尝试确定是否可以渲染到浮点纹理。
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