出于学习目的,我想构建一个非常简单的2D openGL引擎,因此我很好奇了解最著名的引擎如何工作(或者至少是您的想法)。

我知道使用SpriteBatches引擎会对每个SpriteBatch执行一次绘图调用,而绘制简单的Sprite时,每个Sprite都需要进行绘图调用。 假设我只对绘制没有SpriteBatch的分离的Sprite感兴趣。

这是我简单绘制Sprite的想法:我想它们是通过平面和纹理表示的。 每个平面都有一组顶点和索引以及一个公共着色器(让我们保持简单)。 精灵存储在数组中, 对于每个精灵 ,引擎需要使用当前平面的顶点设置VBO并调用glBindBufferglBufferData ,设置着色器并调用glDrawElements 然后清除VBO,并为下一个精灵重复先前的操作。

绘制精灵会成为常见的惯例吗?

关于SpriteBatch,我想最大的区别是VBO会一次存储每个平面的顶点,因此,它能够在单个glDrawElements调用中绘制所有精灵。

我是对的还是我的“假设”完全错误?

  ask by MatterGoal translate from so

本文未有回复,本站智能推荐:

2回复

重复绑定到cocos2d 2.0中的山峰的OpenGL-es纹理

来源文章 我正在尝试实现raywenderlich的教程 ,使用cocos2d生成具有重复条带坐标的山丘,本文是为Cocos2D 1.0编写的,当我试图将其移植到Cocos2D 2.0时这意味着更新它为openGl-es 2。到目前为止,一切都运行得很好但是我遇到的问题是让山的纹理重复正常
1回复

将OpenGL 1.1代码转换为OpenGL 2.0

想要将OpenGL 1.1代码转换为OpenGL 2.0。 我使用Cocos2d v2.0(构建2D游戏的框架)
1回复

在OpenGL ES 2.0中是否存在gllinewidth的替代方法

openGL ES 2.0不支持glLineWidth。 在2.0中是否有其他方法可以实现相同目标?
1回复

将OpenGL ES1迁移到ES2

在为cocos2d 2.0执行更新cocos2d 1.0时,我的程序停止工作,因为coscos2d 2.0使用OpenGL ES2而不是OpenGL ES1。 我可以继续使用OpenGL ES1创建任何类的方法吗? 如有必要,可以使用任何快速方法进行迁移,还是必须重写所有代码?
1回复

如何在OpenGL ES 2.0中清除某个点的像素颜色?

我正在开发OpenGLES 2.0。 当我点击屏幕时,我要指向一点,我想在点击的位置删除颜色。 这意味着我想删除最初具有的所有内容。 我已经尝试了上面的行,这将用提供的颜色填充该区域,但是我想删除该颜色,以便可以看到背景,就像在给定点擦除颜色一样。
1回复

在iOS上更改OpenGL ES版本

我的OpenGL通话在iPhone 5S和iPad Air上表现有些奇怪。 我不知道为什么,但是可能是由于它们支持OpenGL ES 3,而以前的设备却不支持。 因此,我想它正在使用OpenGL ES 3,这可能就是问题所在。 我对此不太了解。 有没有一种方法可以强制我的应用使用Op
1回复

OpenGL ES 1.1到2.0有哪些重大变化?

我正在使用cocos2d创建一个iPhone应用程序,我正在尝试使用以下OpenGL ES 1.1代码。 但是,我不熟悉OpenGL,我的应用程序使用OpenGL ES 2.0,所以我需要转换它。 因此我想知道,将以下代码从ES 1.1转换为ES 2.0有多难? 是否有一些来源可以告诉
1回复

OpenGL:如何在Cocos2d中使精灵变暗

我尝试使用所有GL功能拍摄黑暗,但我认为必须非常简单,但没有用。 我是新来的。 我想要一个精灵,然后将其变暗。 我的想法是加载精灵,在其上方添加一个灰色层(使用带有灰色的CCLayerColor),应用某种GL功能,然后获取输出并将其显示在屏幕上。 但是,在我尝试将源图像正确变暗的每
1回复

在Cocos2d图形上直接绘制OpenGL ES 2.0图形

我有一层。 它使孩子具有特定的“ z”值。 例如 Child_1 z ==-10.0f(CCSprite) Child_2 z ==-5.0f(我的自定义节点) Child_3 z ==-1.0f(CCSprite) 我的自定义节点(Child_2)在'dr
1回复

Blender + OpenGL + Cocos2d

我遇到一个奇怪的问题,无法解决,想知道以前是否有人见过这个问题。 基本上,我可以使搅拌器模型与纹理一起显示,但是它不能正确映射纹理。 我已经制作了最简单的模型,这就是我得到的: 我无法发布图片,因此这是通过picasaweb的链接, https: //picasaweb.google.