opengl-es-2.0相关内容

对齐在 iOS 中的 opengl 顶点数据中有多重要

OpenGL ES 编程指南讨论了您应该避免未对齐的顶点数据,并给出了将数据对齐到 4 字节块的示例. OpenGL ES 编程指南 然而,在我在网上找到的大多数演示材料和教程中,我没有看到有人这样做.以下示例来自 71 Squared 的演示项目: static const SSTexturedVertexData3D EnemyFighterVertexData[] = {{/* ..
发布时间:2021-11-25 03:28:40 移动开发

Android OpenGLES 2 从触摸坐标拾取光线,稍微关闭投影计算

我正在尝试通过交叉光线测试实现基于触摸坐标的对象拾取.我无法找到有关将触摸坐标转换为世界中使用的坐标系以构建此射线的信息. 到目前为止,我的理解是应用于场景中每个顶点的矩阵是: projectionMatrix * viewMatrix * modelMatrix 这里是我反转该过程以尝试在场景中找到光线的端点以及我的绘图循环的过程,以防我只是错误地应用了不同的矩阵: public ..
发布时间:2021-11-25 02:54:50 Java开发

优化渲染是否需要从前到后绘制?

我偶尔看到一篇文章,建议在将顶点发送到 OpenGL(对于任何 OpenGL 变体)时,从离相机最近到最远的顺序进行排序.这样做的原因是如果顶点位于另一个已经渲染的顶点之后,OpenGL 将不会完全处理/渲染顶点. 由于按深度对顶点进行排序是任何项目的昂贵组成部分,因为这种排序通常会经常更改,因此这种设计有多常见或必要? 我以前认为 OpenGL 会“查看"所有提交的顶点并在它们上处理 ..
发布时间:2021-11-25 02:19:24 C#

如何有条不紊地选择透视投影的近剪裁平面距离?

我有一个 3D 场景和一个使用 gluPerspective.我有一个固定的 FOV,我知道任何几何体到相机的最小距离(它是第一人称视角,所以这是从视点到角色碰撞体积的最小距离). 我如何选择最远的近剪裁平面(以获得最佳深度缓冲分辨率),无论玩家如何移动和看起来如何都不会导致任何剪裁? 这些距离不是简单的相等,因为近平面的角离原点比离中心更远. 解决方案 公式: near ..
发布时间:2021-11-25 01:25:20 C#

什么样的 2D 游戏着色器(即超级马里奥)

我一直在尝试弄清楚如何将 OpenGL ES 2.0 用于 2D.到目前为止,我认为我可以处理大多数事情.但我还没有想出的一件事是着色器要做什么? 我知道您在着色器中设置了相机/视图和灯光,但我不想要阴影或任何类型的照明迹象.基本上我只想在屏幕上移动精灵,让精灵看起来和我在 Photoshop 中绘制它们时完全一样. 有没有人有一个可以做到这一点的着色器的例子?或者可能是一篇讨论这个的 ..
发布时间:2021-11-24 22:21:18 C#

使用 OpenGL ES 2.0 绘制 2D 图像

我一直在努力使用适用于 Android 的 openGL ES 2.0 从 jpg/png 文件中绘制 2D 图像.我到处看的教程都是为 3D 图像制作纹理,因此很难弄清楚如何绘制常规的 2D Sprite.我有一个正方形要绘制和旋转,但是一旦涉及到纹理,我一定是在某个地方搞砸了,因为我不断收到错误消息,说 DrawElements 未绑定到任何数据,但是如果我注释掉任何与纹理相关的代码,它就可以 ..
发布时间:2021-11-24 21:46:34 移动开发

在 OpenGL-ES 2.0 中渲染多个 2D 图像

我是 OpenGL 的新手,正在尝试学习 ES 2.0. 首先,我正在开发一款纸牌游戏,我需要在其中渲染多张纸牌图像.我跟着这个 http://www.learnopengles.com/android-lesson-四介绍-基本纹理/ 我创建了一些类来处理数据和操作. MySprite 保存纹理信息,包括位置和比例因子.Batcher 一次性绘制所有精灵.这是粗略的实现. S ..
发布时间:2021-11-24 21:37:44 移动开发

Framebuffer FBO 渲染到纹理很慢,在 Android 上使用 OpenGL ES 2.0,为什么?

我正在使用 opengl es 2.0 编写一个 Android 2d 游戏.在将精灵绘制到后台缓冲区后,我将灯光绘制到 FBO 并尝试再次将其混合到后台缓冲区.当我将 FBO 绘制到帧缓冲区时,即使没有任何颜色,帧率也会从 60 下降到 30(三星 Galaxy w(它的 GPU 为 adreno 205)).我到处搜索并尝试了所有方法,即使我在场景中绘制单个精灵并将透明的 FBO 纹理混合到屏 ..
发布时间:2021-11-24 21:22:18 移动开发

为什么我的对象列表都一样?

为了在我编写的游戏中制作多个对象,我已经制作了一段时间的对象列表.直到现在我都没有问题.我使用 for 循环创建 3 个对象,为每个对象赋予自己的值,然后将它们添加到数组列表中.不幸的是,当我尝试这个时,每个对象都有相同的值,我通过日志发现这些值是列表中最后一项的值.我不确定我做错了什么.这是我正在使用的代码(我很抱歉.它非常草率,我目前只是在尝试编写这个项目的核心.有很多无用的代码/编程不良的代 ..
发布时间:2021-11-18 00:43:19 移动开发

为什么我的对象列表都一样?

为了在我编写的游戏中制作多个对象,我已经制作了一段时间的对象列表.直到现在我都没有问题.我使用 for 循环创建 3 个对象,为每个对象赋予自己的值,然后将它们添加到数组列表中.不幸的是,当我尝试这个时,每个对象都有相同的值,我通过日志发现这些值是列表中最后一项的值.我不确定我做错了什么.这是我正在使用的代码(我很抱歉.它非常草率,我目前只是在尝试编写这个项目的核心.有很多无用的代码/编程不良的代 ..
发布时间:2021-11-18 00:35:29 移动开发

如何在 android 的单独线程上运行 GLES20.glReadPixels?

我目前正在使用 ARCore 对图像进行分类并将对象放在图像上.但似乎 ARCore 相机没有提供任何获取像素缓冲区的方法.然后我遇到了如何使用 ARCore 用相机拍照根据这一点,我们可以使用 GLES20.glReadPixels 从 OpenGL 复制帧.如果我一次传递每一帧,我的分类器工作正常,但是当我将 GLES20.glReadPixels 放在单独的线程中以获取像素缓冲区时,我得到的 ..
发布时间:2021-11-17 03:31:04 移动开发

如何在 WebGL 中创建合适的圆角矩形?

我试图实现 这个问题 的答案,但似乎有有点问题.如果您打开他们的 ShaderToys 并尝试更改边框半径,则圆角矩形的大小(宽度和高度)也会发生变化. 我正在寻找一种解决方案,例如 this shadertoy,其中更改边框半径不会't 改变形状的大小.不幸的是,在这个着色器玩具中,它是一个填充的圆角矩形. 是否有可能有一个未填充的圆角矩形(因此,只有边框),但也有它,如果您更改边框 ..
发布时间:2021-09-23 18:37:03 其他开发

WebGL/OpenGL 文本标签动画实例化形状

我正在使用实例化在平面中渲染可变大小、颜色和位置的可变数量的圆.我希望达到 10k-100k 圈/标签的数量. in float instanceSize;在 vec3 实例颜色中;在 vec2 实例中心; 支持 instanceCenter 属性的缓冲区每帧都会改变,为圆圈设置动画,但其余部分大部分是静态的. 每个圆都有一个四边形,我正在片段着色器中创建圆. 现在我正在研究用字 ..
发布时间:2021-06-12 20:15:14 其他开发

OpenGL ES 2.0 照明在 iOS 应用程序中不起作用

我目前正在学习 OpenGL 2.0,我正在创建一个基本的 iPhone 应用程序.我在搅拌机中创建了一个模型并将其导出到 .obj 文件并编写了一个解析器来提取坐标.形状显示正常但没有颜色(黑色).这意味着法线有问题.但是我检查了法线,蚂蚁发现它们有什么问题.我的代码中是否缺少某些内容? 我将非常感谢您对此的任何帮助! 屏幕截图 这是我的 OpenGL 代码 glEnable ..
发布时间:2021-06-12 20:15:10 移动开发

使用 OpenGL 着色器绘制多边形的边

我想知道是否可以使用片段着色器绘制具有特定颜色的渲染多边形的边缘,如本示例图片所示: 或者我应该单独渲染它们? 解决方案 查看此页面上的相关工作:http://web.archive.org/web/20120527185124/http://cgg-journal.com/2008-2/06/index.html 顶点着色器应该渲染多边形,其中到每条边的距离都是彩色的. ..
发布时间:2021-06-12 20:12:27 其他开发

对于制服和顶点属性,OpenGL 索引和位置是否相同?

在 OpenGL 参考页面中,一些函数被标记使用统一位置,而其他函数被标记为使用统一指数.这些是同一回事吗? 与顶点属性类似,一些函数被标记为使用顶点属性索引,而 other 函数被标记为使用顶点属性位置.这些都一样吗? 解决方案 在你的第一种情况下,Uniform 的 location 与 index 不同>glGetActiveUniform(). 对于 glGetActi ..
发布时间:2021-06-12 20:08:07 其他开发

在当前线程中找不到OpenGL上下文

我正在使用 LibGDX 制作游戏.我想同时根据需要动态加载/卸载资产.但是,等待资产加载到主线程中会导致延迟.为了解决这个问题,我创建了一个后台线程,该线程监视需要加载哪些资产(纹理,声音等),并适当地加载/卸载它们. 不幸的是,当从该线程调用 AssetManager.update()时,出现以下错误. com.badlogic.gdx.utils.GdxRuntimeExcepti ..
发布时间:2021-05-29 20:34:30 其他开发

如何传递非插值数据OpenGL ES(GLSL)

我正在尝试将简单的FLOAT值从顶点传递到片段着色器.如何不进行插值就“按原样"传递它?在桌面上,我可以使用平面变化来禁用插值,openGL es中是否有类似的东西,或者唯一的方法是通过纹理? 解决方案 GLSL ES当前不支持 flat 关键字,因此唯一的方法是在所有三角形顶点中使用相同的float值. 这里给出了相同的答案:在opengl ES 2中是有一种方法可以防止变化的内插 ..
发布时间:2021-05-11 19:04:45 移动开发