Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/opengl/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Opengl 在WebGL中重现煤渣故障_Opengl_Three.js_Webgl_Texture2d_Cinder - Fatal编程技术网

Opengl 在WebGL中重现煤渣故障

Opengl 在WebGL中重现煤渣故障,opengl,three.js,webgl,texture2d,cinder,Opengl,Three.js,Webgl,Texture2d,Cinder,在Cinder中使用OpenGL时出现了一个视觉问题,如果可能的话,我希望在WebGL中重现这个问题 效果来自于使用大小初始化纹理,但没有任何数据。 基本上,它是在GPU上显示垃圾内存(最终会变成桌面上的碎片、变色图像等) 这种效果对于我正在处理的特定WebGL显示非常有用 如果向下滚动到gl::Texture标题,将在上讨论以下效果: 在WebGL/js环境中实现这一点有什么线索吗? (如果其他资源/框架在浏览器中产生效果,我完全愿意使用它们)在任何情况下,在WebGL中都无法产生这种效果。

在Cinder中使用OpenGL时出现了一个视觉问题,如果可能的话,我希望在WebGL中重现这个问题

效果来自于使用大小初始化纹理,但没有任何数据。 基本上,它是在GPU上显示垃圾内存(最终会变成桌面上的碎片、变色图像等)

这种效果对于我正在处理的特定WebGL显示非常有用

如果向下滚动到
gl::Texture
标题,将在上讨论以下效果:

在WebGL/js环境中实现这一点有什么线索吗? (如果其他资源/框架在浏览器中产生效果,我完全愿意使用它们)

在任何情况下,在WebGL中都无法产生这种效果。 在OpenGL和OpenGL ES(WebGL的基础)中,初始化分配的内存不需要任何行为,这种“小故障”效应是未定义行为的结果

WebGL实际上定义了缓冲区/纹理内存的额外要求,以防止安全漏洞攻击,其中之一是分配的内存总是初始化为0。因此,这种行为在WebGL中定义为,其定义方式使您的“小故障”效应不可能发生

-版本1.0.2-2013年3月 4安全性

4.1资源限制

WebGL资源(如纹理和顶点缓冲区对象(VBO))必须始终包含初始化数据,即使它们是在没有初始用户数据值的情况下创建的。创建没有初始值的资源通常用于为纹理或VBO保留空间,然后使用texSubImage或bufferSubData调用对其进行修改如果未向这些调用提供初始数据,WebGL实现必须将其内容初始化为0深度渲染缓冲区必须清除为默认的1.0清除深度。这可能需要创建一个与请求的VBO大小相同的零临时缓冲区,以便正确初始化。将数据加载到纹理或VBO的所有其他形式都涉及ArrayBuffers或DOM对象(如图像),因此已经需要初始化

当着色器通过调用(如drawElements或DrawArray)访问WebGL资源时,WebGL实现必须确保着色器不能访问越界或未初始化的数据。请参见启用的顶点属性和范围检查,以了解WebGL实现必须实施的限制


@也许他们喜欢视觉效果?哇,巨大的安全漏洞!