Questions tagged «opengl-es»

OpenGL 3D图形API的子集,专为嵌入式设备(例如手机)设计。

1
GLSL:如何将浮点数转换为int?
在GLSL片段着色器中,我试图将A投射float为int。编译器会引发错误: ERROR: 0:60: '=' : cannot convert from 'mediump float' to 'highp int' 我试图提高的精度int: mediump float indexf = floor(2.0 * mixer); highp int index = indexf; 但无济于事。 如何int正确投放?
40 opengl  glsl  opengl-es 

5
解决Android暂停时丢失OpenGL上下文的方法?
Android文档说: 在某些情况下,EGL渲染上下文将丢失。通常在设备进入睡眠状态后唤醒时会发生这种情况。当EGL上下文丢失时,与该上下文关联的所有OpenGL资源(例如纹理)将被自动删除。为了保持正确的渲染,渲染器必须重新创建仍然需要的任何丢失的资源。onSurfaceCreated(GL10,EGLConfig)方法是执行此操作的便捷位置。 但是在暂停后重新进入应用程序时,必须在OpenGL上下文中重新加载所有纹理既痛苦又伤及用户的游戏体验。我知道“愤怒的小鸟”会以某种方式避免这种情况,我正在寻找有关如何实现相同目标的建议? 我正在使用Android NDK r5(CrystaX版本。)确实找到了解决此问题的方法,但是我试图避免构建整个自定义SDK版本。



3
OpenGL ES 2.0点精灵大小
我正在尝试在OpenGL ES 2.0中绘制点精灵,但是所有点的大小最终都是1像素……即使在顶点着色器中将gl_PointSize设置为较高的值时也是如此。 如何使我的点子精灵变大?
15 opengl  3d  android  opengl-es 

2
OpenGL ES 2.0:设置2D投影
本文总体上介绍了如何使用固定功能管线绘制清晰的OpenGL 2D图形。 http://basic4gl.wikispaces.com/2D+Drawing+in+OpenGL 由于OpenGL ES 2.0具有某些ES 1.x功能不可用(例如:glOrtho()),因此必须在“片段/顶点”着色器中替换其功能。 我的问题是,如何在可编程功能管线中设置以下2D投影? const XSize = 640, YSize = 480 glMatrixMode (GL_PROJECTION) glLoadIdentity (); glOrtho (0, XSize, YSize, 0, 0, 1) glMatrixMode (GL_MODELVIEW) 如何配置片段和顶点着色器以完全替代上述固定功能2D投影设置?

5
要在OpenGL ES 2.0游戏中使用的完整数学库?[关闭]
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,使其成为Game Development Stack Exchange 的主题。 5年前关闭。 您是否知道用于OpenGL ES 2.0游戏的完整(或几乎完整)的跨平台数学库? 该库应包含: Matrix2x2,Matrix 3x3,Matrix4x4类 四元数 Vector2,Vector3,Vector4类 欧拉角类 上述类,转换等之间的操作。 3D图形中的标准数学运算(点积,叉积,SLERP等) 是否可以单独或作为任何软件包的一部分使用这样的Math API ? 编程语言:Visual C ++,但计划移植到OS X和Android OS。


4
OpenGL ES 2.0中的几何实例化
我打算在OpenGL ES 2.0中进行几何体实例化。基本上,我打算在场景中渲染相同的几何体(一把椅子)大约1000次。 在OpenGL ES 2.0中执行此操作的最佳方法是什么? 我正在考虑将模型视图mat4作为属性传递。由于属性是每个顶点数据,因此我需要传递相同的mat4,因此对于同一三角形的每个顶点都要传递三遍(因为modelview在三角形的各个顶点之间保持不变)。 这将导致发送到GPU的大量额外数据(2个额外的顶点* 16个浮点*(三角形数)数量的额外数据)。 还是应该每个三角形仅发送一次mat4?但是由于属性定义为“每个顶点”数据,使用属性怎么可能呢? 在OpenGL ES 2.0中进行实例化的最佳和有效方法是什么?

4
GLM:欧拉角与四元数
希望您知道GL数学(GLM),因为我遇到了问题,我无法中断: 我有一组欧拉角,我需要在它们之间进行平滑插值。最好的方法是将它们转换为四元数并应用SLERP算法。 我的问题是如何用Euler Angles 初始化 glm :: quaternion? 我一遍又一遍地阅读了GLM文档,但我找不到合适的文档Quaternion constructor signature,那需要三个欧拉角。我找到的最接近的是 angleAxis()函数,该函数获取角度值和该角度的轴。请注意,我正在寻找一种方法,如何解析RotX, RotY, RotZ。 供您参考,这是上面提到的angleAxis() 函数签名: detail::tquat< valType > angleAxis (valType const &angle, valType const &x, valType const &y, valType const &z)

1
glDrawArrays和glDrawElements的区别
在刷新OpenGL ES的想法时,我遇到了glDrawArrays和glDrawElements。 我了解它们的用法,并有点理解它们为何与众不同。 我似乎不明白的是,我看不到如何glDrawElements保存绘图调用(保存绘图调用是我所读过的大多数书籍都提到的描述,因此我在这里提到了)。 想象一个简单的场景,其中我尝试使用2个三角形绘制一个正方形。 使用glDrawArrays时glDrawElements,我需要使用6个顶点的集合,除了具有6个元素的索引数组之外,我只需要4 个顶点。 鉴于以上所述,这是我不了解的内容: glDrawElements如果仍然需要使用索引数组(在正方形的情况下为6个索引)来索引具有4个元素(6次)的顶点数组,如何保存绘图调用?换句话说,这glDrawElements是否仍意味着总共需要进行6次抽签glDrawArrays? glDrawElements如果一个仍然需要2个数组,即一个用于顶点,一个用于索引,该如何节省空间? 为了从2个三角形绘制一个正方形,为简单起见,分别需要多少次绘制调用glDrawElements(顶点数组中4个项目,而索引数组中glDrawArrays6个项目)和(顶点数组中仅6个项目)? 谢谢。

3
如何在OpenGL中弯曲对象?
有没有一种方法可以使用OpenGL弯曲物体,例如圆柱体或平面? 我是OpenGL初学者(我正在使用OpenGL ES 2.0,尽管这很重要,尽管我怀疑数学在这种情况下最重要,所以它在某种程度上与版本无关),我了解基本知识:平移,旋转,矩阵转换等我想知道是否有一种技术可以允许您实际更改对象的几何形状(在这种情况下,通过弯曲它们)? 欢迎任何链接,教程或其他参考!

2
如何在2.5D世界中同时使用深度测试和纹理透明度?
注意:我已经找到了答案(我将在这个问题之后发布)-我只是想知道我是否做对了,或者是否有更好的方法。 我正在使用OpenGL ES(JOGL)制作“ 2.5D”等距游戏。“ 2.5D”是指世界是3D,但使用2D等距图块进行渲染。 我必须解决的原始问题是必须按顺序(从后到前)渲染纹理,以便图块正确重叠以产生合适的效果。经过一番阅读,我很快意识到这是2D的“老帽子”方法。由于玩家可以修改3D世界(因此东西可以出现在3D空间中的任何地方),因此很难有效地做到这一点-因此,我利用深度缓冲区似乎是合乎逻辑的。这意味着我不必担心以正确的顺序渲染内容。 但是,我遇到了一个问题。如果将GL_DEPTH_TEST和GL_BLEND一起使用,则会创建一种效果,在将对象与背景混合之前,先按z顺序对其进行“排序”(这意味着您应该在透明度应达到的地方获得一种奇怪的重叠)。 这是一些应该说明问题的伪代码(顺便说一句,我在Android上使用libgdx)。 create() { // ... // some other code here // ... Gdx.gl.glEnable(GL10.GL_DEPTH_TEST); Gdx.gl.glEnable(GL10.GL_BLEND); } render() { Gdx.gl.glClear(GL10.GL_COLOR_BUFFER_BIT | GL10.GL_DEPTH_BUFFER_BIT); Gdx.gl.glBlendFunc(GL10.GL_SRC_ALPHA, GL10.GL_ONE_MINUS_SRC_ALPHA); // ... // bind texture and create vertices // ... } 所以问题是:如何解决透明度重叠问题?

2
在OpenGL中,如何发现深度缓冲区的深度范围?
我正在为iOS开发GL多遍渲染应用程序。第一遍渲染到深度缓冲区纹理。第二遍使用深度缓冲区中的值来控制片段着色器的应用。我想将深度缓冲区中的值重新缩放为有用的值,但是在执行此操作之前,我需要知道深度缓冲区值的深度值范围。我该怎么做呢?


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.