Glsl WebGL中的体绘制
我有一个科学数据的3D数组数据集,将使用WebGL进行渲染。这是我编写的代码,也是我迄今为止取得的成果 我对输出画布上发生的两件事一无所知:Glsl WebGL中的体绘制,glsl,webgl,volume-rendering,Glsl,Webgl,Volume Rendering,我有一个科学数据的3D数组数据集,将使用WebGL进行渲染。这是我编写的代码,也是我迄今为止取得的成果 我对输出画布上发生的两件事一无所知: gl.clearcolor(0.4,0.4,0.5,1); 屏幕渲染输出时不工作 有时在drawScene调用中,代码会抛出错误和警告。我相信这一警告是针对该错误的,但我无法调试导致该错误的原因: 警告: WebGL:无效的_操作:texImage3D:ArrayBufferView不够大,无法满足请求 错误:texImage3D(纹理3D{WebG
3) 渲染输出的预期输出为:
和
但渲染输出未显示所需的颜色贴图输出 这是一个现场演示: 如果此代码段在任何情况下均未加载,则这是输出: PS:如果代码段未加载,请滑动右上角的滑块。第一期 R8的64*64*64=262144字节,但您要传递的数组只有65536字节大 第二期 当代码上载查找映射时,它只显示红色
gl.texImage2D(gl.TEXTURE_2D, 0, gl.R8, gl.RED, gl.UNSIGNED_BYTE, image);
你可能想要
gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGB8, gl.RGB, gl.UNSIGNED_BYTE, image);
第三期
至于清除颜色,WebGL默认情况下,每次将画布与页面合成时都会清除画布。因为您清除了画布,然后异步加载数据,然后绘制流中的数据
这就是你看到它闪烁的原因。如果您将呼叫移动到
gl.clear
到loadData
中,它将工作。感谢您的回复,是的,但错误只是偶尔出现,而且每次出现错误时字节数都不相同。添加了第二个和第三个问题。解决了该大小错误是因为读取数据块中的读取器。感谢您的建议,解决了第二个问题,但现在的问题是渲染输出的质量非常低。我不知道了解第三个问题的解决方案,我希望你能在答案中添加更多细节。谢谢
gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGB8, gl.RGB, gl.UNSIGNED_BYTE, image);