问题标签 [opengl-es]

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 投票
5 回答
4860 浏览

iphone - 512x512 纹理在 iPhone 上造成巨大的 GPU 压力,尽管平铺

我正在 iPhone 上测试我的简单 OpenGL ES 实现(2D 游戏),我注意到在使用分析器时渲染利用率很高。这些是事实:

  • 仅以 60fps 显示一个预加载的大纹理512x512 像素),渲染利用率约为 40%。
  • 我的纹理是使用 混合的GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA这是我使用的唯一 GL 函数
  • 我试图使纹理更小并平铺,这没有任何区别
  • 我正在使用 1024x1024 像素的 PNG 纹理图集

我觉得很奇怪,这个纹理会导致如此密集的 GPU 使用。

这是可以预料的吗?我究竟做错了什么?

编辑:我的代码:

编辑:我做了一些改进,但没有一个能够降低渲染利用率。我将纹理划分为 32x32 的部分,将坐标和纹理坐标的类型从 GLfloat 更改为 GLshort,并为退化三角形添加了额外的顶点。

更新内容是:

initState:( 顶点和纹理指针现在是 GL_SHORT)

绘制视图:

0 投票
1 回答
1531 浏览

iphone - glClearColor() 以 27% 的渲染利用率推动 iPhone

作为寻找这个问题的答案的结果,我遇到了一个相当不舒服的发现。

似乎仅以glClearColor()60 fps 的速度渲染会使 iPhone 的渲染利用率达到 27%。

这意味着几乎不做任何事情——仅仅刷新屏幕——使得 iPhone 使用了超过四分之一的渲染能力。

这是可以预料的吗?

根据文档,POWERVR 至少应该达到 270 兆像素/秒左右。正如下面正确展开的那样,60 fps 下的 480×320 等于大约 9.2 兆像素/秒,总性能约为 40 兆像素/秒,这很可疑。

0 投票
2 回答
1107 浏览

iphone - Opengl ES - z 轴上的渲染不正确?

我有一个从 .obj 文件加载的雪人模型。一切正常,除了当我使用 glRotatef() 旋转模型时,雪人的头部将始终呈现在身体前面。雪人的鼻子也会一直渲染到脑后。这会产生雪人在旋转时改变方向的效果,但实际上这些部件并未以正确的 z 顺序渲染。为什么会出现这种情况?

注意:雪人的所有部分都来自使用搅拌机创建的同一个 .obj 文件。

像这样渲染模型(在绘制循环中)

像这样旋转(在 touchesMoved 中)

0 投票
1 回答
2819 浏览

iphone - 如何制作 ibeer、imilk、ibug、ibeer 等 iPhone 应用程序

我正在使用很酷的动画应用程序访问这个网站。我想知道构建这样的应用程序的最简单方法是什么。我几乎打赌它使用某种 OpenGL ES。

cocos2d使用的好案例吗?

0 投票
1 回答
1078 浏览

opengl-es - 将任意大小的像素块复制到 OpenGL ES 纹理中……不知何故?

我正在编写一个绘图应用程序,绘图画布是一个 OpenGL 纹理。当您在画布上绘图时,它会确定画布纹理的哪个区域已更改,并在应用您所做的更改之前复制该像素数据(使用 glReadPixels)。

要撤消,我想使用复制出来的像素数据简单地恢复到以前的纹理状态。但是,OpenGL ES 不提供 glDrawPixels 命令。最好的方法是什么?

我考虑了两种选择,但我不确定是否有那么好:

  1. 使用我复制出来的像素创建一个临时纹理并将其绘制进去。(但是,复制的区域不是 2 的幂!)

  2. 完全解绑大画布纹理,手动修改纹理字节,然后放回OpenGL。我没有使用任何形式的压缩,所以这可能不是那么糟糕。但这似乎是一个黑客?

有人有什么想法吗?我真的很感激!

0 投票
2 回答
1235 浏览

iphone - iPhone:纹理大于 64x64?

我以 GLPaint 为例...我正在尝试将背景放入“PaintingView”中,这样​​您就可以在背景上绘制,最后将图像保存为文件......我迷路了。

我正在加载 PNG (512x512) 并尝试在程序一开始就“用它绘画”,但它被绘制为 64x64 而不是 512x512 ......

我之前尝试加载是作为绘画视图的子视图......但是,glReadPixels 没有按预期工作(它只考虑到绘画视图,而不是子视图)。此外,paintingView 没有像 initWithImage 这样的方法...我需要 glReadPixels 处理图像(以及修改中),但我真的不知道为什么当我加载它时,纹理的大小为 64x64。

0 投票
1 回答
3598 浏览

iphone - 在 OpenGL 中为曲面上的纹理设置动画

我正在使用 iPhone OpenGLES 实现,我希望在一个简单的表面(两个三角形组成一个矩形)上无休止地滚动纹理。这应该很简单,但这不是我以前做过的事情,而且我一定遗漏了一些东西。我可以很好地旋转纹理,但翻译根本不起作用。我有一个小的实现问题还是我做的事情根本上是错误的?

0 投票
2 回答
2384 浏览

opengl-es - 为什么在 OpenGL ES 中缩小对象会导致对象变轻?

为什么在 OpenGL ES 1.x 中缩放(均匀)对象会导致对象更轻?

更有意义的是它会变暗,因为法线不是按比例缩小也会使物体变暗吗?但由于某种原因,物体变得更轻了。当我放大时,物体变得更暗。在我看来,这应该是相反的。

请不要建议使用 GL_NORMALIZE 等。我只是好奇为什么 OpenGL 实现会这样工作。

0 投票
5 回答
5751 浏览

opengl-es - OpenGL ES 中 glNormal3f 的用途是什么?

OpenGL ES 中 glNormal3f 的用途是什么?如果 OpenGL ES 中没有可用的即时模式,我会使用 glNormal3f 做什么?示例代码会很好。

0 投票
3 回答
2472 浏览

iphone - 是否可以将 OpenGL ES 渲染视图放在 UIView 上,而 UIView 就像 OpenGL ES 是具有透明度的 PNG 一样闪耀?

我对此一无所知,但如果这是可能的(例如 Flash),那将非常酷。

我有一个基于视图的应用程序,我可能需要一些 OpenGL ES 功能,但不想拥有全屏 OpenGL ES。我只是在某些小区域需要它来绘制小图表和其他可能很难用核心图形完成的东西。