我目前是OpenGL ES 2.0领域的新手,希望尽可能地了解绑定,缓冲区,着色器等.

截至目前,我只是想了解GL_ELEMENT_ARRAY_BUFFER和GL_ARRAY_BUFFER之间的差异,以及何时使用每个注释的预设.

我目前的理解使我相信GL_ELEMENT_ARRAY_BUFFER是专门用于所述三角形的索引,而另一个则是其他的.

有人可以详细说明为什么,如果这是正确的? GL_ELEMENT_ARRAY_BUFFER的处理方式不同?

解决方法

GL_ELEMENT_ARRAY_BUFFER用于指示您呈现的缓冲区包含“其他”(GL_ARRAY_BUFFER)缓冲区中每个元素的索引.

所以,作为一个非常基本的例子,只有顶点(没有其他数据),如果你有一个索引缓冲区:

{0,1,2}
{0,2,3}

数据缓冲区包含:

{{0,0},{1,{0,0}}

然后,当您调用glDrawElements时,它知道选择顶点0,1和2为第一个三角形,那么0,3为第二个(即:基本上是一个正方形).

当你有更多的复杂的模型,有很多顶点和面孔 – 尽可能多的面共享相同的顶点(因此您不需要“重新发送”相同的数据).

注意:上面的例子只显示了顶点 – 你可以插入尽可能多的数据(顶点颜色,法线,纹理坐标等).

ios – OpenGL – 为什么GL_ELEMENT_ARRAY_BUFFER的索引?的更多相关文章

  1. ios – 如何在swift3中增加String.Index?

    在swift2.3中运算符用于string.index增加例如.一世我改为swift3代码发生了“一元运算符”不能应用于’@valueString.Index’类型的操作数(又名’@lvalueString.CharacterView.Index’)“在swift3中我改写了例如.i=1但是这段代码无法解决.请帮我.解决方法String.Index是String.CharacterView.Ind

  2. ios – CoreData有序关系 – 使用NSFetchRequest批量取消

    或者,是否存在批量不支持的API,它不是私有的?解决方法目前我有一个解决方案,但不是一个干净的解决方案:我希望按照有序关系中的20个小组进行批量修改.所以,每次我索引一个索引,它的索引除以20,我为接下来的20使用新的NSFetchRequest,并通过调用公共字段名称来解除它们.

  3. 为什么这个OpenGL ES 2.0着色器不能在iOS上使用我的VBO?

    如果有人能够了解这里出了什么问题,也许是对gl命令或其他一些不兼容的命令序列的错误排序,我将非常感谢你的帮助.尽管谷歌在“OpenGLES2.0编程指南”中进行了大量研究和研究,但我一直试图让这段代码整天都没有成功.我正在尝试在iPhone上的OpenGLES2.0中使用顶点缓冲区对象和自定义着色器.我试图交错来自以下类型的一系列自定义结构的顶点数据:位置,半径和颜色字节分别考虑顶点位置,点大小和

  4. ios – Swift中的PageViewController当前页面索引

    我想获取一个pageViewController的当前索引,我不知道我如何获取可见页索引.解决方法您可以使用didFinishAnimating,并将标签设置为查看控制器.尝试这个

  5. ios – 将CIFilter应用于OpenGL渲染到纹理

    我试图在我的全屏渲染输出上应用CoreImage过滤器,但是看起来像我缺少一些东西,因为我将黑屏作为输出.首先我将整个场景画成纹理.然后我从这个纹理创建CoreImage,我终于画出来了.但我所得到的只是黑屏.我正在遵循苹果指南线绘制纹理,并将CoreImage与OpenGLES集成:WWDC2012511和https://developer.apple.com/library/ios/docum

  6. 将部分纹理(精灵图/纹理贴图)应用于iOS OpenGL ES 2.0中的点精灵

    它在哪里获取其数据?>我不明白要传递什么纹理坐标.例如,点精灵如何根据纹理坐标选择我的spritesheet的哪一部分?我习惯于绘制有效的4组纹理坐标的四边形,这有什么不同(显然是)?解决方法我的一位同事答复了.事实证明,诀窍是利用点的大小和精灵的大小结合一点向量数学,仅渲染一部分精灵片到每个点.顶点着色器片段着色器

  7. ios – OpenGL – 为什么GL_ELEMENT_ARRAY_BUFFER的索引?

    我目前是OpenGLES2.0领域的新手,希望尽可能地了解绑定,缓冲区,着色器等.截至目前,我只是想了解GL_ELEMENT_ARRAY_BUFFER和GL_ARRAY_BUFFER之间的差异,以及何时使用每个注释的预设.我目前的理解使我相信GL_ELEMENT_ARRAY_BUFFER是专门用于所述三角形的索引,而另一个则是其他的.有人可以详细说明为什么,如果这是正确的?GL_ELEMENT_A

  8. 如何恢复索引功能? (Xcode中)

    我的一个项目刚刚开始干扰索引过程.索引过程在中途冻结,然后突然停止,导致SourceKitService崩溃.我根本无法找到错误的代码;因为似乎没有!)–但它无法被索引.最初,我以为它是一个Xcode7.2的问题,所以升级到最新的beta(7.3);但是问题依然存在.我无法恢复到我的旧代码,因为太多的工作将被撤销,我无法发现特定的文件.崩溃报告是here.为了澄清,Xcode本身不会崩溃,只有索引过程.关于如何解决这个问题的任何想法?

  9. ios – Swift:通过索引移动数组中的元素

    给定n个元素的阵列,即vararray=[1,2,3,4,5]我可以写一个扩展到Array,所以我可以修改数组来实现这个输出:[2,5,1]:有没有办法实现这样的功能,可以通过任何索引(正或负)来移动数组.我可以用if-else子句强制执行这个功能,但是我正在寻找的是功能实现.算法很简单:>按提供的索引将数组拆分成两个>将第一个数组追加到第二个数组的末尾有没有什么办法实现它的功能风格?

  10. ios – 从imageview点击手势获取索引或标签值

    这是来自应用商店的图像,只要我们搜索任何应用程序.我也想添加相同的scrollview概念,它显示当前图像与上一个和下一个图像的小预览.我可以在Samplecode的帮助下做出这个观点.但是当用户点击任何图像时,没有找到任何解决方案来获取索引或标签值.所以我可以打开每个图像的详细页面.如果有人有这个想法,请帮助我.提前致谢.解决方法将手势识别器添加到必要的图像视图中:然后在手势处理程序中访问附加到的视图手势识别器:

随机推荐

  1. iOS实现拖拽View跟随手指浮动效果

    这篇文章主要为大家详细介绍了iOS实现拖拽View跟随手指浮动,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

  2. iOS – genstrings:无法连接到输出目录en.lproj

    使用我桌面上的项目文件夹,我启动终端输入:cd然后将我的项目文件夹拖到终端,它给了我路径.然后我将这行代码粘贴到终端中找.-name*.m|xargsgenstrings-oen.lproj我在终端中收到此错误消息:genstrings:无法连接到输出目录en.lproj它多次打印这行,然后说我的项目是一个目录的路径?没有.strings文件.对我做错了什么的想法?

  3. iOS 7 UIButtonBarItem图像没有色调

    如何确保按钮图标采用全局色调?解决方法只是想将其转换为根注释,以便为“回答”复选标记提供更好的上下文,并提供更好的格式.我能想出这个!

  4. ios – 在自定义相机层的AVFoundation中自动对焦和自动曝光

    为AVFoundation定制图层相机创建精确的自动对焦和曝光的最佳方法是什么?

  5. ios – Xcode找不到Alamofire,错误:没有这样的模块’Alamofire’

    我正在尝试按照github(https://github.com/Alamofire/Alamofire#cocoapods)指令将Alamofire包含在我的Swift项目中.我创建了一个新项目,导航到项目目录并运行此命令sudogeminstallcocoapods.然后我面临以下错误:搜索后我设法通过运行此命令安装cocoapodssudogeminstall-n/usr/local/bin

  6. ios – 在没有iPhone6s或更新的情况下测试ARKit

    我在决定下载Xcode9之前.我想玩新的框架–ARKit.我知道要用ARKit运行app我需要一个带有A9芯片或更新版本的设备.不幸的是我有一个较旧的.我的问题是已经下载了新Xcode的人.在我的情况下有可能运行ARKit应用程序吗?那个或其他任何模拟器?任何想法或我将不得不购买新设备?解决方法任何iOS11设备都可以使用ARKit,但是具有高质量AR体验的全球跟踪功能需要使用A9或更高版本处理器的设备.使用iOS11测试版更新您的设备是必要的.

  7. 将iOS应用移植到Android

    我们制作了一个具有2000个目标c类的退出大型iOS应用程序.我想知道有一个最佳实践指南将其移植到Android?此外,由于我们的应用程序大量使用UINavigation和UIView控制器,我想知道在Android上有类似的模型和实现.谢谢到目前为止,guenter解决方法老实说,我认为你正在计划的只是制作难以维护的糟糕代码.我意识到这听起来像很多工作,但从长远来看它会更容易,我只是将应用程序的概念“移植”到android并从头开始编写.

  8. ios – 在Swift中覆盖Objective C类方法

    我是Swift的初学者,我正在尝试在Swift项目中使用JSONModel.我想从JSONModel覆盖方法keyMapper,但我没有找到如何覆盖模型类中的Objective-C类方法.该方法的签名是:我怎样才能做到这一点?解决方法您可以像覆盖实例方法一样执行此操作,但使用class关键字除外:

  9. ios – 在WKWebView中获取链接URL

    我想在WKWebView中获取tapped链接的url.链接采用自定义格式,可触发应用中的某些操作.例如HTTP://我的网站/帮助#深层链接对讲.我这样使用KVO:这在第一次点击链接时效果很好.但是,如果我连续两次点击相同的链接,它将不报告链接点击.是否有解决方法来解决这个问题,以便我可以检测每个点击并获取链接?任何关于这个的指针都会很棒!解决方法像这样更改addobserver在observeValue函数中,您可以获得两个值

  10. ios – 在Swift的UIView中找到UILabel

    我正在尝试在我的UIViewControllers的超级视图中找到我的UILabels.这是我的代码:这是在Objective-C中推荐的方式,但是在Swift中我只得到UIViews和CALayer.我肯定在提供给这个方法的视图中有UILabel.我错过了什么?我的UIViewController中的调用:解决方法使用函数式编程概念可以更轻松地实现这一目标.

返回
顶部