OpenGL:控制二维动画树的绘制顺序
OpenGL: Control drawing order of 2D animation tree
我有一个 2D 动画,它被组织成一棵形状树。但是,我需要一个不同于从根开始的 depth-first 或 breadth-first 遍历的绘图顺序。有没有办法控制最终的绘制顺序?
我需要找到一种方法在不破坏树中的 parent-child 继承的情况下执行此操作。例如,当我绘制树时,我需要每个 child 从其 parent 继承平移和旋转,然后将这些平移和旋转传递给它们的 children.
我可以想出各种方法来处理这个问题,但这似乎不是一个独特的问题,所以我想知道是否有 OpenGL-specific 解决方案。
OpenGL 不关心您的对象。这只是一幅画 API.
如果您的绘图顺序与父子关系不同,一种解决方案是将转换计算和绘图分两步进行。
在第一步中,您自上而下遍历树并将父对象的转换存储在每个节点中。在第二阶段,您按渲染顺序遍历对象并使用步骤 1 中的转换渲染它们。遍历主要取决于您如何 store/define 您的绘制顺序。
我有一个 2D 动画,它被组织成一棵形状树。但是,我需要一个不同于从根开始的 depth-first 或 breadth-first 遍历的绘图顺序。有没有办法控制最终的绘制顺序?
我需要找到一种方法在不破坏树中的 parent-child 继承的情况下执行此操作。例如,当我绘制树时,我需要每个 child 从其 parent 继承平移和旋转,然后将这些平移和旋转传递给它们的 children.
我可以想出各种方法来处理这个问题,但这似乎不是一个独特的问题,所以我想知道是否有 OpenGL-specific 解决方案。
OpenGL 不关心您的对象。这只是一幅画 API.
如果您的绘图顺序与父子关系不同,一种解决方案是将转换计算和绘图分两步进行。
在第一步中,您自上而下遍历树并将父对象的转换存储在每个节点中。在第二阶段,您按渲染顺序遍历对象并使用步骤 1 中的转换渲染它们。遍历主要取决于您如何 store/define 您的绘制顺序。