Opengl 在WebGL中重现煤渣故障
在Cinder中使用OpenGL时出现了一个视觉问题,如果可能的话,我希望在WebGL中重现这个问题 效果来自于使用大小初始化纹理,但没有任何数据。 基本上,它是在GPU上显示垃圾内存(最终会变成桌面上的碎片、变色图像等) 这种效果对于我正在处理的特定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中都无法产生这种效果。
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实现必须实施的限制
@也许他们喜欢视觉效果?哇,巨大的安全漏洞!