Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
如何将递归数据结构(如八叉树)发送到 OpenGL GLSL 着色器?我想,我可以将它作为节点数组发送并使用索引而不是指针,这是个好主意吗?还有其他选择吗?
GPU 光线追踪通常使用递归数据结构,例如 kd 树中的三角形或稀疏体素八叉树。
在着色器中,您可以像使用数组一样使用 1D 纹理采样器,从而可以轻松地四处跳转。
但是,性能受到影响。批处理中的所有着色器(warp 或任何您的卡术语)通常以锁步方式工作,因此如果一个片段需要在树中递归十个步骤,则批处理中的其他片段必须等待该片段执行其十个随机 -内存访问,然后才能继续。
当给定要光栅化的三角形列表时,GPU 工作得最好。
结帐这个问题:将值列表传递给片段着色器
在这里:http ://blog.icare3d.org/2010/07/opengl-40-abuffer-v20-linked-lists-of.html