我正处于一个艰难的选择中.我想学习一种语言,可以帮助我创建具有强大的艺术/创意/图形组件的应用程序,并将其用于我的客户的商业项目.
我的第一选择是OpenGL ES,我认为它是"标准"的方式.但是,与此同时,我发现了这个网站:http://www.creativeapplications.net/我在其中发现了许多很酷的ios应用程序,对于大多数使用OpenFramewors和Cinder构建的应用程序.
我的问题是:为什么选择这个2"包装"而不是OpenGL?我需要了解利弊.
我不确定使用这些框架我可以以简单(和标准)的方式混合(对于OpenGL)UIKit/Cocoa和Graphics.目前我仍然更喜欢OpenGL,因为我知道这是苹果建议的方式(我的意思是......由Apple提出),我确信我也可以为我的客户利用它.虽然我不确定使用OF和Cinder我可以毫不费力地完全管理UIKit和Cocoa.
我似乎无法在我的Android NDK项目中包含glu.h.
我正在尝试将现有的C++代码移植到NDK,它在一些地方使用glu(特别是gluErrorString).
OpenGLES没有胶水吗?
我有可以使用的端口吗?
如果不是,我可以删除对类似gluPerspective等事情的调用,但我该怎么办gluErrorString?
需要帮助
如何Surface(OpenGL)在Android中播放视频?我试着在播放视频mySurfaceView extends SurfaceView的帮助方法setSurface()中MediaPlayer.
SurfaceTexture mTexture = new SurfaceTexture(texture_id);
Surface mSurface = new Surface(mTexture);
MediaPlayer mp = new MediaPlayer();
mp.setSurface(mSurface);
Run Code Online (Sandbox Code Playgroud)我只播放音频 - 不播放视频.
OpenGL?GLTexture?
在ios中是否有可用于将图像转换为卡通图像的过滤器,如上图所示?
我必须开发一个可在Windows,Linux,MacOSX,Android和IOS上运行的跨平台多媒体应用程序.此应用程序必须能够播放音频/视频内容,显示照片和图形,并可能显示简单的2D动画.经过大量的搜索,似乎问题的"最便携的方法"是C++用作语言和OpenGL ES绘图API,因为几乎任何一对设备/操作系统都支持它们,性能水平会很好并且视觉外观应该在每个(一组)设备上几乎相同.
显然,我知道我必须调整应用程序的外观,以便在具有不同显示尺寸和分辨率的不同设备上"缩放".我也知道,对于这种不同架构上的任何代码要求完全相同的行为是不现实的.我只想最小化编写的代码(例如,首先在C++中重写一个接口,然后在Java中必须避免).
我不是OpenGL ES编程的专家,但是看一些样本,似乎我需要一个框架来制作一些现成的小部件(菜单,按钮,文本框).我宁愿不重新发明轮子.
这是一个低预算项目,所以我需要一个完全免费且开源的框架.当重要的东西丢失或行为不端时,后一个要求也允许自由添加/修改框架的API.我不是要求多用途框架(例如Qt),能够处理输入,网络,存储等,只是因为我强烈怀疑我提到的平台不存在这样的框架.我只想要一种OpenGL包装器能够抽象出它的许多低级细节,但也提供了一些像Qt那样的UI小部件.我将分别处理输入,网络,存储,传感器,可能使用其他跨平台开源库,如此处所示.
我在Stackoverflow和Gamedev上已经阅读了很多类似的问题,我听说过很多框架(Unity,Corona SDK,LÖVE,LibGDX,Ogre,Cocos2D-x),主要是为游戏开发而创建的.例如,Ogre和Cocos2D-x似乎符合我的一些要求,但如果我决定使用其中一个,我将必须编写几乎所有的UI元素(没有这么大的负担,有人可能会争辩).
几点评论:
任何帮助或建议将不胜感激.
关于OpenGL字体渲染有很多问题,其中许多问题都是由纹理图集(快速但错误)或字符串纹理(仅限固定文本)所满足.
然而,这些方法很差,似乎已经过时了(使用着色器更好/更快地做到这一点怎么样?).对于OpenGL 4.1,有一个很好的问题,看看"你今天应该使用什么?":
那么,今天我们应该在iOS GL ES 2上使用什么?
我很失望,似乎没有开源(甚至是商业解决方案).我知道有很多团队把它搞砸了,花了几周的时间重新发明这个轮子,逐渐学习如何克服和空间等(呃) - 但必须有一个比重写整个"字体"更好的方法从头开始?
据我所知,这有两个部分:
对于1(如何渲染),Apple提供了许多方法来获得"正确的"渲染输出 - 但"简单"的方法不支持OpenGL(也许其他一些方式 - 例如是否有一种简单的方法来映射CoreText输出到OpenGL?).
对于2(如何显示),我们有着色器,我们有VBO,我们有字形纹理,我们有查找纹理,以及其他tecniques(例如上面链接的OpenGL 4.1内容?)
以下是我所知道的两种常见的OpenGL方法:
我也看过,但听到了好的和坏的事情:
在Apple自己的OS /标准库中,我知道几种文本呈现源.注意:我已经在2D渲染项目中详细使用了大部分这些,我关于它们输出不同渲染的陈述是基于直接经验
我试图通过片段着色器调整纹理颜色.我的片段着色器非常简单:
uniform sampler2D sampler;
void main() {
vec4 tex = texture2D ( sampler, uvVarying );
gl_FragColor = vec4(tex.r, tex.g, tex.b, tex.a);
}
Run Code Online (Sandbox Code Playgroud)
这按照预期绘制了我的狗纹理:

如果我然后将着色器更改为
gl_FragColor = vec4(tex.r, tex.g, tex.b, 1.0);
Run Code Online (Sandbox Code Playgroud)
结果是我的预期,透明度信息丢失:

但如果我把它设置为:
gl_FragColor = vec4(tex.r, tex.g, tex.b, 0.0);
Run Code Online (Sandbox Code Playgroud)
我期待它完全消失,但我得到:

到底是怎么回事??
对于我原来的问题:我想在我的纹理中添加一点红色:
gl_FragColor = vec4(tex.r + 0.5, tex.g, tex.b, tex.a);
Run Code Online (Sandbox Code Playgroud)
现在,我希望它与原始纹理具有相同的透明度信息,但我得到了这个:

我在这里想念的是什么 纹理使用引擎的默认混合src = GL_ONE, dst = GL_ONE_MINUS_SRC_ALPHA.
我正在研究自定义图像过滤器项目.我遇到了一个具有挑战性的任务,我应该应用扭曲过滤器,这可以在Funny face effect app中看到.我想开发Funny Face Effects中提供的前3个滤镜.
所以为了实现这样的效果,我开始使用GPUImageView GPUImage,在这里,它使用搜索条来扭曲来自中心的图像.我已经实现了Bulge失真.但有什么方法可以实现拖动过滤器,我可以通过拖动手势扭曲我的图像?
我们试图搜索除GPUImage之外的任何其他第三方类.但我们找不到有用的东西.
我们的查询如下: -
1)是否可以使用拖动手势应用拖动过滤器?(任何代码片段或参考可感知)
2)除GPU之外的任何其他第三方类可以帮助我们获得上述结果.
提前致谢!
我EAGLContext presentRenderbuffer在iOS 11上遇到了很多崩溃,但仅限iPhone 6/6 +及更早版本.
根据这篇文章,我认为我们已经通过重写所有不使用VBO/VAO来排除与VBO相关的问题,但崩溃并没有解决.
还有一些关于此问题的其他问题,但没有解决方案 - 还有其他人看到过这次崩溃的上升并且能够解决它吗?
TL; DR:
这是我们目前所知道的:
到目前为止我们尝试了什么:
一些线索(可能相关但不一定):
这是堆栈跟踪:
libGPUSupportMercury.dylib gpus_ReturnGuiltyForHardwareRestart
1 AGXGLDriver gldUpdateDispatch
2 libGPUSupportMercury.dylib gpusSubmitDataBuffers
3 AGXGLDriver gldUpdateDispatch
4 GLEngine gliPresentViewES_Exec
5 OpenGLES -[EAGLContext presentRenderbuffer:]
Run Code Online (Sandbox Code Playgroud) 我正在尝试将.obj文件加载到我的Android应用程序中并使用OpenGL 2显示它.
你可以在这里找到这个文件:编辑:我删除了文件,你可以使用任何包含下面提到的值的.obj文件进行测试.
stackoverflow上有很多类似的问题,但我没有找到一个不需要一些大型库的简单解决方案.
该文件仅包含以下值类型:
我试过libgdx,它运行正常,但它对我需要的东西有点过分.
我在没有LWJGL的情况下尝试了oObjLoader https://github.com/seanrowens/oObjLoader.解析似乎有效,但如何在简单场景中显示值?
下一步是将图像作为纹理附加到对象.但是现在我很乐意按原样显示文件.
我对不同的解决方案持开放态度,例如预转换文件,因为它只会在应用程序中出现.
谢谢!
状态更新 基本加载和显示现在可以正常工作,如我自己的答案所示.