首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Z阶与阿尔法混合在三维世界中

Z阶与阿尔法混合在三维世界中
EN

Stack Overflow用户
提问于 2014-02-04 11:16:44
回答 1查看 538关注 0票数 3

我正在做一个3D世界中只有2D精灵的游戏(比如不要饿死游戏)。(OpenGL ES2和C++)

目前,我在没有批处理的情况下将元素重新排序到前面,然后再绘制它们(因此1元素=1 drawing调用)。我希望在我的框架中实现批处理,以减少抽签调用。

以下是我目前所得到的:

  • 把我现场的所有元素都排到前面去。
  • 向渲染器发送元素的订单列表。
  • 渲染器在他的批次管理器中查看是否有一个批次存在于给定的元素和他的材料中。
代码语言:javascript
复制
- Batch didn't exist: create a new one.
- Batch exist for element with this Material: Add sprite to the batch. 

  • 计算每个批次的所有sprite的大网格(1种材料类型=1批)。
  • 当所有批处理都正常时,批处理管理器计算呈现器的绘制命令。
  • 渲染程序绘制命令(绑定着色器、绑定纹理、绑定缓冲区、绘图元素)

在这里显示我的问题的图片:图像

但是我遇到了一些问题,因为对象可以在另一个批内的另一个对象后面。

,我怎么能做那样的事?

EN

回答 1

Stack Overflow用户

发布于 2014-02-05 11:10:42

这听起来像是你在为两个相互排斥的目标优化渲染。

  • 按排序Z顺序呈现-生成正确的透明性结果
  • 渲染按材料类型分组,大概是为了减少开关材料引起的GL状态更改的数量。

其中一个必须优先于另一个。因为Z排序对于透明度的正确外观是至关重要的,所以你很可能必须优先考虑这一点。一旦你这样做了,你仍然可以在Z-订单中批量处理相同材料的物品。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21550953

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档