【问题标题】:OpenGL: Control drawing order of 2D animation treeOpenGL:控制二维动画树的绘制顺序
【发布时间】:2015-02-11 17:58:38
【问题描述】:

我有一个组织为形状树的 2D 动画。但是,我需要一个不同于从根的深度优先或广度优先遍历的绘图顺序。有没有办法控制最终的抽奖顺序?

我需要找到一种方法来做到这一点,而不会破坏树中的父子继承。例如,当我绘制树时,我需要每个孩子从其父级继承平移和旋转,然后将这些平移和旋转传递给他们的孩子。

我可以想出各种方法来处理这个问题,但这似乎不是一个独特的问题,所以我想知道是否有特定于 OpenGL 的解决方案。

【问题讨论】:

  • 你有没有想过做2遍?首先通过您更新每个项目的矩阵。第二遍,你可以随心所欲地绘制场景。
  • @Robinson:当我说我可以想出各种方法来处理这个问题时,我就是这么想的。我只是想知道 OpenGL 是否对这种情况有任何功能。

标签: opengl graphics


【解决方案1】:

OpenGL 不关心你的对象。它只是一个绘图 API。

如果您的绘图顺序与父子关系不同,一种解决方案是将转换计算和绘图分两步进行。

在第一步中,您自上而下遍历树并将父对象的转换存储在每个节点中。在第二阶段,您以渲染顺序遍历对象,并使用步骤 1 中的转换来渲染它们。遍历主要取决于您如何存储/定义绘图顺序。

【讨论】:

  • 这正是我自己处理这个问题的想法。我想知道 OpenGL 是否有任何本机功能来处理这个问题。似乎是一个常见问题,所以我想知道它是否有内置解决方案。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-03-04
  • 1970-01-01
  • 1970-01-01
  • 2013-12-09
  • 1970-01-01
相关资源
最近更新 更多