cost 245 ms
相交着色器从 SSBO 中读取零 - The intersection shader reads zeroes out of an SSBO

我的相交着色器总是从我拥有的 SSBO 中读取零。 我尝试使用debugPrintEXT ,但它不会从相交着色器中打印出来。 但是,当我尝试通过光线有效载荷将 output 任何值作为命中颜色时,我得到的始终是黑色。 最初,我认为我复制数据的方式有问题,但没有,它和示例代码一样好,它可以工作(来自 ...

在OpenGL中使用布局(打包)或布局(共享)时如何获取着色器存储块的变量偏移量? - How to get shader storage block's variable offset when using layout(packed) or layout(shared) in OpenGL?

如果我有一个在 GLSL 中定义的着色器存储块,如下所示: 如何获得此块中变量之一的偏移量? 我们知道如果是uniform块就这样: 我们可以通过这种方式获取偏移量,例如获取var2的偏移量: 这是统一块。 但是我找不到任何获取着色器存储块变量偏移量偏移量的教程。 (不要告诉我使用 std140 ...

异步 SSBO 回读 - Async SSBO Readback

当我使用我的着色器存储缓冲区对象调用 GetBufferSubData 时,通常会有 4 毫秒的延迟。 我的应用程序可以在此期间工作吗? 或者以其他方式使用某种 API 来异步开始从 GPU 复制缓冲区数据? 我能够使用glMapBufferRange和GL_MAP_PERSISTENT_BI ...

确保moderngl缓冲区中的字节顺序 - Ensuring endianness in moderngl buffers

我正在尝试为 Python 学习moderngl,我想知道是否有办法确保当我读/写缓冲区(统一或着色器存储)时,来宾设备和主机设备之间的字节序一致。 我有以下最小程序: 当我运行它时,正如我所料,我看到了输出: 但是,在另一台机器上或使用另一张显卡运行时,情况是否总是如此? 在某些机器上,这 ...

GL_SHADER_STORAGE_BUFFER 的 glGetBufferSubData 和 glMapBufferRange 在 NVIDIA GTX960M 上非常慢 - glGetBufferSubData and glMapBufferRange for GL_SHADER_STORAGE_BUFFER very slow on NVIDIA GTX960M

在将 GPU 缓冲区传输到 CPU 以执行排序操作时,我遇到了一些问题。 缓冲区是由 300.000 个浮点值组成的GL_SHADER_STORAGE_BUFFER 。 使用glGetBufferSubData的传输操作大约需要 10 毫秒,使用glMapBufferRange需要超过 100 毫秒 ...

在 JOGL 中遇到 SSBO 问题 - Having trouble with SSBO in JOGL

我一直在尝试初始化 SSBO 并将其传递给计算着色器。 在着色器中我有: 当我运行它时,sph 充满了 0-s。 我试图从缓冲区中读取数据: 这让我收到错误 1281,也就是 0 + a.size() > ssbo 的大小。 然后我检查了 SSBO 的实际大小: 这给了我 0。我用过这篇文章。 ...

动态长度数组作为着色器存储缓冲区对象 - Dynamic-length arrays as Shader Storage Buffer Objects

假设我有一个动态数量的“球”,我想在我的 OpenGL 着色器中访问它们。 在 C++ 中,数据可能是这样的: 如果我想在片段着色器中遍历all_balls ,我相信我需要一个着色器存储缓冲区对象。 本文档涉及数组,但明显不完整。 我假设我可以像这样将数据发送到缓冲区 在 GLSL 中 ...

在初始化 SSBO 存储和填充它之间是否需要内存屏障? - Do I need a memory barrier between initializing an SSBO storage and filling it?

我有这样的代码: 我是否需要取消对 glBufferData 和 glBufferSubData 之间的 glMemoryBarrier 调用的注释? 如果 SSBO 的内容不连贯,难道 glBufferSubData 在 glBufferData 之前通过,从而崩溃吗? 我的应用程序正在运行 ...

如何查询SSBO结构的对齐/步幅? - How do I query the alignment/stride for an SSBO struct?

我不确定哪种结构布局最适合我的应用程序: shared , packed , std140 , std430 。 我不是要求对每个信息进行解释,这些信息很容易找到,很难弄清楚每个信息对供应商兼容性/性能的影响。 如果shared是默认值,我怀疑这是一个很好的起点。 从我可以收集的内容来 ...

使着色器存储缓冲区可在不同的着色器程序中访问 - Make a shader storage buffer in different shader programs accessible

为了使(工作的)着色器存储缓冲区在第二个着色器程序中可读,我必须做什么布局和绑定? 我设置并填充了一个我成功绑定并用于几何着色器的SSBO。 该着色器读取并写入该SSBO-到目前为止没有问题。 那里没有渲染。 在下一步中,我的渲染过程(第二个着色器程序)将有权访问此数据。 这个想法是 ...

OpenGL ES和Spir-V中的只读存储缓冲区 - read-only storage buffer in OpenGL ES and Spir-V

在OpenGL ES着色语言中,可以用限定符readonly或writeonly装饰着色器存储缓冲区对象(SSBO)。 OpenGL ES着色语言3.1版规范的第4.9节(内存访问限定符): 可以使用以下一个或多个内存限定符进一步限定着色器存储块,在着色器存储块中声明的变量以及声明 ...

如何从着色器内的着色器存储缓冲区对象中获取sampler2D类型? - How to acquire the sampler2D type from a Shader Storage Buffer Object inside a shader?

我试图在不使用统一变量的情况下将sampler2D类型的变量放入我的着色器中。 相反,我想使用着色器存储缓冲区对象(SSBO)交出它。 必须在结构中声明什么类型的变量才能移交? 我怎样才能在着色器中将此类型转换为sampler2D ? ...

OpenGL 4.5中每个着色器的资源大小限制 - The size limitation of the resources per shader in OpenGL 4.5

我遇到了一个奇怪的问题:我有一个片段着色器,其中包含几个统一变量(mat4,vec4),一个sampler2D和一个巨大的SSBO(1GB-2GB)。 对于每种类型的变量,它都不会超出硬件的大小限制。 如果没有SSBO,则着色器可以正常工作。 使用SSBO,如果纹理图像的分辨率较低(浮点数 ...

指向Compute Shader输入结构的指针 - Pointer into input struct of Compute Shader

我的计算着色器再次出现问题...我想将包含指针的结构传递到计算着色器中。 这是我的结构示例: 这是我的SSBO初始化: 我尝试了很多不同的初始化,但是都没有成功... 因此,是否有一种方法可以分配所需的所有内存(因为我知道在指针指向的每个数组中需要的内存)并将其传递给计算 ...

从计算着色器取回数据 - Getting data back from compute shader

我对opengl相当陌生,发现自己处于需要从计算着色器获取数据的情况,但是由于我错过了一些关键知识,因此无法正常工作。 所以我来到这里,以便您可以给我一些提示。 说我有一个像这样的计算着色器: 现在,我想在应用程序中使用trBuffer的数据。 有人告诉我要制作一个着色器存储缓 ...

是否将C ++容器提供给OpenGL? - Giving C++ containers to OpenGL?

我创建了一个着色器存储缓冲区对象,以将信息提供给我的顶点着色器。 它绑定到包含单个结构的缓冲区。 但有一个问题。 我保存在此结构中的数据不是简单的数组,而是std::vector 。 这是结构: mat4只是一个简单的4x4浮点矩阵。 如果我将其提供给OpenGL,则传 ...


 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM