问题标签 [glkbaseeffect]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
925 浏览

ios5 - GLKBaseEffect:光+纹理

我正在尝试显示一些带有纹理的简单对象并在我的场景中启用聚光灯。我使用GLKBaseEffect's纹理和光线。

当纹理被禁用时 - 我可以看到灯光效果(当我旋转对象时,它部分变暗,正如预期的那样)。但是当我启用纹理(加载它们GLKTextureInfo并绑定-(void)glkView:drawInRect:)时 - 灯光效果消失了。

我尝试在 Google 中搜索并重新阅读 Apple 的文档,但仍然找不到答案。

更新:

这是我用来设置灯光的代码:

如果我两次调用此代码 - 灯会以某种方式被禁用。即使没有纹理 - 第二次调用 - 我根本没有光。

0 投票
2 回答
1309 浏览

ios - 内存使用量随着时间的推移不断增加(GLKit - iOS)

我几乎完成了我的应用程序。其中一个视图使用 GLKit。我只是记忆有问题。基本上发生的情况是,当显示 GLKView 时,内存消耗不断增加(通过 Instruments 看到)。在某个时刻,它显然会崩溃。我对GLKit不太了解,所以希望你能帮助我。

问题是我正在显示的 3d 箭头。如果我不画它,所有其他的东西都不会造成任何问题。这是包含箭头顶点数据的头文件:

这是绘制代码:

有什么建议吗?非常感谢您的帮助!

0 投票
2 回答
558 浏览

glkit - 使用 GLKBaseEffect 的常量定位光

我需要使用 GLKBaseEffect 设置 const 聚光灯位置:所以当我更改模型视图时,灯光会停留在同一个地方。我怎样才能做到这一点?

0 投票
0 回答
179 浏览

ios - 更改 GLKBaseEffect 时的内存泄漏

我正在尝试使用 GLKit 渲染两个对象。最初我试图这样做:

但是,这似乎会导致内存泄漏。我在某处读到:

“基本”属性(lightingType、lightModelTwoSided、colorMaterialEnabled...)的每次更改都会导致新的着色器程序在下一次“prepareToDraw”调用中加载。

如果我删除 self.effect.light0.enabled 更改并运行以下命令,则不会出现内存泄漏问题:

我尝试创建 2 个不同的 GLKBaseEffects 但第二个对象无法正确渲染地板。

drawViewController 调用 prepareToDraw 并如下所示:

0 投票
0 回答
126 浏览

iphone - OpenGL ES 纹理混合不受影响

注意:我正在使用 GLKBaseEffect。

我不确定我做错了什么。基本上,对于我的 GLKBaseEffect,我设置了 2 个纹理。但我只看到渲染的第一个纹理(texture2d0)。我想让第二个纹理(texture2d1)与第一个纹理混合。

也许我的混合功能不正确,或者我使用 GLKBaseEffect 不正确。有什么明显的我做错了吗?

顺便说一句,我的两个图像都是 RGB(.PNG 格式),没有 alpha 通道。我的 texture2d1 图像(下图)是我想在我的第一个纹理上混合的纹理。就像 50% 叠加类型的混合。 在此处输入图像描述

0 投票
1 回答
353 浏览

opengl-es-2.0 - GLKBaseEffect 设置常量颜色

我想使用 GLKBaseEffect 为我的 3DModel 着色。我创建了 GLKBaseEffect 的示例

当我设置 OpenGL 我写:

当我绘制我的图形时,我使用效果:

我使用 ConstantColor 设置颜色:

但是模型中的颜色不会改变。我错过了什么?

0 投票
2 回答
308 浏览

opengl-es - 在 GLKit 中启用 light0 会导致颜色丢失

我一直在修改 OpenGL ES 2 教程中的一些示例代码。我可以将 GLKBaseEffect 设置为使用恒定颜色。现在,当我去给场景添加光时,颜色消失了,我只剩下 2 个黑色立方体。

下面是绘制方法:

我在我的初始化静态方法中启用了灯光:

以下是禁用照明(红色)和禁用(黑色)时的屏幕截图

在此处输入图像描述

在此处输入图像描述

0 投票
1 回答
106 浏览

android - Android GLKBaseEffect 等效项(已经存在的 OpenGL 着色器)

我正在 Android 中学习 OpenGL ES 2.0,你知道提供现有着色器的库吗?

我和一个在 iOS 上开发的朋友一起做一个项目,他告诉我他可以使用 GLKBaseEffect 来避免开发自定义着色器,只要我们不需要复杂的功能。Android中是否有相当于BaseEffect的东西?

我问这个是因为我们两个被教授分配了这个项目,他告诉我们这个项目开发自定义着色器并不重要,所以我猜有一个我可以浏览的基本着色器汇编. 那是对的吗?

谢谢您的帮助!

0 投票
1 回答
196 浏览

ios - 从 iOS7.1 升级到 iOS8.1 后,OpenGL 应用程序的帧率下降

该应用程序使用 OpenGL ES2 和 GLKit 框架,以及 GLKitViewController 提供的渲染/更新循环。它曾经在装有 iOS7.1 的 iPad2 上以稳定的 60 fps 运行,但是一旦我将 iPad2 更新到 iOS8.1,完全相同的代码现在在 56-59 FPS 之间波动。(但是,CPU 利用率仍然保持在 40-60% 和以前一样)。

分析显示 OpenGL 绘图命令使用的 CPU 时间比以前大得多。最大的变化似乎是对“GLKBaseEffect prepareToDraw”的调用比以前花费了更长的时间。

(该应用程序使用单个 GLKBaseEffect,它在渲染循环期间的各个点重新配置,每次都需要调用 prepareToDraw。我意识到可以通过拥有多个 GLKBaseEffect 实例来优化,这是我稍后考虑的,但是,在 iOS7.1 上,性能确实很稳定)

我现在正在检查 Instruments 中的 OpenGL ES Analyzer 跟踪,以确定由“GLKBaseEffect prepareToDraw”生成的 OpenGL 调用,看看是否有任何异常,一旦我设法弄清楚任何事情,就会相应地更新帖子。

对于如何在这一点上取得进展的任何指导,我将非常感激 - 为什么在 iOS8.1 上调用 GLKBaseEffect prepareToDraw 可能需要更长的时间?

0 投票
1 回答
454 浏览

xcode - swift中的GLKit什么都不显示?

我正在关注本教程. 一切正常,但屏幕上没有显示任何内容。

使成为 :

纹理四边形

初始化纹理:

请帮助我如何使用 swift 在 glkit 中显示图像。谢谢大家的帮助。