- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
喂!
我一直在考虑更新一些旧的测试代码,试图重新了解添加到 GLKit 的新功能。到目前为止,我已经成功地设置了一个 GLKViewController 并开始渲染一些基本的形状,但一直在努力寻找任何关于 GLKBaseEffect 的体面信息。
GLKBaseEffect 文档指出:
At initialization time, your application first creates an OpenGL ES 2.0 context and makes it current. Then, it allocates and initializes a new effect object, configures its properties, and calls its prepareToDraw method. Binding an effect causes a shader to be compiled and bound to the current OpenGL ES context. The base effect also requires vertex data to be supplied by your application. To supply vertex data, create one or more vertex array objects. For each attribute required by the shader, the vertex array object should enable the attribute and point to data stored in a vertex buffer object.
我正在努力辨别的是;
我需要为每个“模型”渲染一个 GLKBaseEffect 对象吗?或者我是否为每个“场景”使用一个 GLKBaseEffect 并在调用 prepareToDraw 之前简单地更改属性?
我看过一些关于游戏引擎和渲染器的教程,它们只是为每个模型使用单个 GLKBaseEffect,但如果可以使用单个实例来实现相同的效果,这似乎完全没有效率。
从阅读文档来看,这似乎是最好的方法,但考虑到我见过这么多人使用多个实例,我开始认为情况并非如此。
任何人都可以对此有所了解吗? GLKit 对 iOS(对我来说)还是相当新的,所以任何信息都将不胜感激。
最佳答案
不,您不应该为每个对象创建唯一的 GLKBaseEffect。例如,如果您正在绘制一个迷宫,那么该迷宫中的每 block 砖都可能是它自己的对象,但它们都可以共享相同的 GLKBaseEffect。不过请记住,GLKBaseEffect 还会在位置以及纹理、光照、雾等中存储信息。因此,如果您想在多个地方绘制砖 block (我假设您这样做 :-),您可以调整它们的转换矩阵,然后调用'prepareToDraw' API。
我同意我们需要更多由广泛使用 GLKBaseEffect 的人编写的教程,以获取有关此新框架最佳实践的更多信息。
祝你航行愉快。
关于ios5 - 正确使用GLKBaseEffect,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8878866/
最近,我一直在尝试学习如何使用 OpenGL ES 2.0 和 GLKit 来创建简单的 2D 游戏。我一直在关注this tutorial by Ray Wenderlich到目前为止,它非常有帮助
我在 OpenGL 项目中使用 GLKit。一切都基于 GLKView 和 GLKBaseEffect(无自定义着色器)。在我的项目中,我有几个 View 具有用于显示 3D 对象的 GLKViews
似乎每个人都同意这有问题,您需要摆脱 GLKBaseEffect 以阻止它泄漏。但是没有人提到您会用什么来替换它。 有人可以指出我正确的方向吗?一些示例代码或教程会非常有用! 我正在做非常基本的事情,
我是 OpenGL 新手,如果我想移动对象,我找不到有关选择哪种方式的信息。 我仅使用顶点数组(无着色器)创建了一个简单的三角形并将其显示在屏幕上。接下来我想移动我的三角形(向右/左侧)。我认为有两种
我一直在研究我遇到的这个问题,但我似乎无法很好地理解它来解决它,所以我想我还是把它扔在那里,聪明的一群人可能会有一些想法。 :P 基本上,我已经在 iPhone 项目上工作了一段时间,在那里我可以奢侈
我已经设置了一个 AVCapture session ,并在委托(delegate)方法中使用以下代码尝试使用输出设置 GLKBaseEffect 纹理,但是我得到的只是黑色。我应该怎么做才能让它发挥
所以我一直在用一些 OpenglES 做一些 iphone 开发,但是当我调用 prepareToDraw 时我得到了一个相当奇怪的错误。简而言之,我的程序模拟掷骰子(尝试学习 objective-c
我正在使用 OpenGL ES 2.0 和 GLKit 编写 2D 游戏。我的架构基于 Ian Terrel 的游戏教程。 我最近发现 GLKBaseEffect(提供简单的着色器管理)泄漏,有时会使
我是一名优秀的程序员,十分优秀!