Tag: opengl es

使用Jeff Lamarches脚本加载模型

我试图使用Jeff Lamarches python脚本将3D模型加载到场景中,以将3D模型导出到Blender中的Objective C头文件中。 我正在使用Blender版本:2.63a 从这里得到了Lamarche的脚本: https : //github.com/jlamarche/iOS-OpenGLES-Stuff 我做了什么 按照说明中的说明安装脚本 打开与默认多维数据集的搅拌机 试图导出默认3D的Objective C头文件 头文件生成没有任何顶点数据,为什么会发生这种情况? 请提供任何可能帮助我将3D模型加载到具有纹理的iOS GL上下文中的参考。

内存警告后,崩溃在iOS上运行OpenGL

我在iPad上遇到OpenGL组件崩溃的问题。 该应用程序抛出一个内存警告和崩溃,但似乎并没有使用那么多的内存。 我错过了什么吗? 该应用程序基于Vuforia增强现实系统(借鉴ImageTargets示例)。 我有约40个不同的模型,我需要包括在我的应用程序,所以为了记忆保护的利益,我正在加载对象(和渲染纹理等)dynamic在应用程序,因为我需要他们。 我试图复制UIScrollView延迟加载的想法。 这三个4mb分配是当用户select不同的模型显示时,我已经加载到内存中的纹理。 这里有什么奇怪的东西? 我对OpenGL知之甚less(我selectVurforia引擎的部分原因)。 这个屏幕下面的任何内容应该关注我吗? 请注意,Vurforia的ImageTagets示例应用程序也有未初始化的纹理数据(每帧大约一个),所以我不认为这是问题。 任何帮助,将不胜感激!! 以下是生成3D对象的代码(在EAGLView中): // Load the textures for use by OpenGL -(void)loadATexture:(int)texNumber { if (texNumber >= 0 && texNumber < [tempTextureList count]) { currentlyChangingTextures = YES; [textureList removeAllObjects]; [textureList addObject:[tempTextureList objectAtIndex:texNumber]]; Texture *tex = [[Texture alloc] init]; NSString *file = [textureList objectAtIndex:0]; [tex loadImage:file]; [textures […]

填充antialiased聚cocos2d

我怎样才能在Cocos2D框架中绘制填充多边形? 下面的代码绘制聚合,但没有antialiasing.What我应该改变? void ccFillPoly( CGPoint *poli, int points, BOOL closePolygon ) { // Default GL states: GL_TEXTURE_2D, GL_VERTEX_ARRAY, GL_COLOR_ARRAY, GL_TEXTURE_COORD_ARRAY // Needed states: GL_VERTEX_ARRAY, // Unneeded states: GL_TEXTURE_2D, GL_TEXTURE_COORD_ARRAY, GL_COLOR_ARRAY glDisable(GL_TEXTURE_2D); glDisableClientState(GL_TEXTURE_COORD_ARRAY); glDisableClientState(GL_COLOR_ARRAY); glVertexPointer(2, GL_FLOAT, 0, poli); if( closePolygon ) // glDrawArrays(GL_LINE_LOOP, 0, points); glDrawArrays(GL_TRIANGLE_FAN, 0, points); else glDrawArrays(GL_LINE_STRIP, 0, points); // restore default state […]

如何在设备上合法显示DICOM 16位无符号整数是否支持8位无符号整数?

我正在iOS上开发一个医疗应用程序。 iOS设备只支持GL_UNSIGNED_BYTE和GL_LUMINANCE,或者通常只支持每个组件8位。 现在我有一些灰度图像是16位无符号整数,我想显示它们。 我发现我们不能显示16位无符号整数,所以我应该将它们转换为8位无符号整数。 但是在医疗方面,我不应该丢失数据或者应该有最小的数据丢失。 现在,我的问题是:如何通过在医疗合法转换16位无符号整数转换为8位无符号整数? 现在我用最简单的方法来做到这一点。 把它分成256:-O。 一些其他的商业软件正在这样做,他们正在使用的行动。 先谢谢你。

是否可以从RoboVM访问OpenGL ES而不使用LibGDX?

不使用LibGDX ,可以从RoboVM访问iOS上的OpenGL ES吗? 如果是这样,有没有有用的参考? 我能find的唯一的事情就是2年前的这个超级简单的演示: http://robovm.com/ios-opengles-in-java-on-robovm/ 但是除了glClearColor和glClear之外,它不提供任何函数。 虽然,苹果GLKit框架似乎已经实施。 我只是无法find所有的实际glWhatever(…)function…

Cocos2D 2.0 OpenGL错误?

在我的应用程序,它在Cocos2D版本1.1工作正常。 当我升级到2.0rc0a,我现在只是看到一个黑屏,直到我退出应用程序,我得到以下4个错误不间断: OpenGL error 0x0506 in -[CCSprite draw] 532 OpenGL error 0x0506 in -[CCParticleSystemQuad draw] 461 OpenGL error 0x0506 in -[CCTextureAtlas drawNumberOfQuads:fromIndex:] 543 OpenGL error 0x0506 in -[CCGLView swapBuffers] 280 所以我GOOGLE了这一点,似乎应用程序无法find着色器文件 。 什么着色器文件? 有没有一个特定的名称,或者它是所有的 Cocos2D文件? 另外我将如何解决这个问题? 我目前在我的项目中没有警告或错误。 谢谢!

如何在开放的gl纹理的alpha中编码发射或镜面reflection信息

我有一个OpenGL纹理与UV地图上。 我已经读过关于使用alpha通道来存储一些其他的值,从而节省了需要从某个地方加载额外的地图。 例如,您可以在alpha中存储高光信息(发光度)或发射贴图,因为您只需要一个浮点数而不使用alpha。 所以我试了一下。 写着色器不是问题。 我已经完成了所有这一部分。 问题就是让我想要的所有4个通道进入纹理。 我有PSD中的所有地图,我把基本地图放在rgb中,排放地图放在a中。 但是,当你保存为png的alpha不是保存(如果你把它添加为一个新的频道),或通过预先将透明度乘以rgb(如果您将地图作为蒙版)来破坏rgb。 显然PNG文件支持透明度,但本身不支持alpha通道。 所以似乎没有办法控制所有4个通道。 但是我已经读过关于这样做。 那么,我可以从PSD保存它,我可以在iPhone中加载我的图像加载器的格式? NSString *path = [[NSBundle mainBundle] pathForResource:name ofType:type]; NSData *texData = [[NSData alloc] initWithContentsOfFile:path]; UIImage *image = [[UIImage alloc] initWithData:texData]; 此方法是否接受其他文件格式? 像TIFF,这将允许我控制所有4个频道? 我可以使用纹理工具来制作一个PVR ..但是从文档看来,它似乎也采用PNG作为input。 编辑: 首先要清楚这是在iPhone。 这可能是psd的错。 就像我说的,在我可以find的psd(cc 14.2 mac)版本中,有两种方法来设置文档。 一个是手动添加一个新的频道,并粘贴在那里的地图。 它显示为一个红色的覆盖。 第二个是添加一个蒙版,选项点击它并粘贴在那里的阿尔法。 在这种情况下,它显示与阿尔帕作为一个透明的棋盘在阿尔法零区。 当我保存为PNG的alpha选项灰色。 当我把png加载到psd时,它似乎是预乘。 我不能回到我在Photoshop中的完整RGB数据。 是否有一个不同的工具,我可以用来将两个地图合并成一个PNG,将其存储在PNG 32? TIFF将无法正常工作,因为它不会存储alpha。 也许我在想TGA。 我也在我的装载机中注意到了这一点 GLuint […]

在SceneKit中使用着色器修改器对纹理进行animation处理会导致长时间的抖动纹理

我正在为iOS的SceneKit写一个场景。 我正在尝试使用精灵表应用纹理到一个对象。 我用这个代码遍历该表中的图像: happyMaterial = [SCNMaterial new]; happyMaterial.diffuse.contents = happyImage; happyMaterial.diffuse.wrapS = SCNWrapModeRepeat; happyMaterial.diffuse.wrapT = SCNWrapModeRepeat; happyMaterial.shaderModifiers = @{ SCNShaderModifierEntryPointGeometry : @"_geometry.texcoords[0] = vec2((_geometry.texcoords[0].x+floor(u_time*30.0))/10.0, (_geometry.texcoords[0].y+floor(u_time*30.0/10.0))/7.0);" }; 一切都很好。 除了随着时间的推移,纹理开始变得随机抖动,特别是沿着x轴。 有人提到这可能是因为“浮点精度问题”,但我不知道如何诊断或修复这个问题。 另外:我不知道如何logging来自着色器代码的数据。 能够查看诸如“u_time”之类的variables并查看到底发生了什么真是太棒了。

如何在iOS上使用OpenGL ES实现多层次的绘图?

我很快想为iOS制作一个简单的绘图应用程序,但是我无法完成绘图工作,而是保存每个图层上的内容并还原图层。 它看起来像所有的图层保存相同的像素.. 这个想法是有三层,使用OpenGL ES绘制每一层。 在这个问题上没有任何经验,我只是平铺了三个UIViews,并向每个UIView(本教程的一个修改版本的PaintingView)添加了一个OpenGL绘图canvas。 当用户交换绘图层时,我只是禁用其他层的用户交互。 通过这种方法,我经历了很多古怪的东西,我认为是源于我的方法。 所以现在,我认为我应该在同一个PaintingView中制作三个全屏缓冲区,并在它们之间切换OpenGL。 我在做什么? 有没有人有办法可行? 任何话题都可能有帮助。 谢谢。

GLPaint画笔效果与模糊和斜angular

我正在研究基于GLPaint代码的绘图应用程序。 有人知道如何得到这样的效果吗? 我已经尝试过不同的宽度和刷高度值,但仍保持不变。 我需要考虑glBlendFunc()吗? 或者是否可以彻底改变画笔的宽度和高度。 提前致谢。