标签: opengl-es

在iPhone中显示OpenGL动画的最佳流程

我有问题能够将骨骼和骨骼动画从Maya导入到Blender到iPhone.这就是我所做的:

  1. 安装ColladaMaya插件以导出DAE以便Blender导出
  2. 使用J eff LeMarche的脚本能够导出模型的单个关键帧并将此.h文件导入iPhone游戏
  3. 使用Jeff LeMarche的更多步骤设置GLView并将其渲染到我们的游戏中,因此该模型显示在实际游戏旁边(不是3D).
  4. 研究oolongngine,sio2(申请但尚未收到他们的电子邮件),其他SO q的解决方案,包括我的游戏开发
  5. 使用FBX SDK内容管道审核动态生成动画的类文件.

我可以导入模型并显示它.许多这些进程都会响应该问题,并让开发人员以编程方式操作游戏对象.我的主要问题是找到在现有游戏旁边将动画导入iphone的最佳定义过程?我不需要整个游戏或整个场景,只需要一个动画模型和一些步骤.

此动画旨在循环播放.还有3种动画可以在不同的游戏状态下运行(好动,坏动等).所以我担心LeMarche的关键帧解决方案(基本上意味着将每个关键帧导出为.h文件)将是非常耗费时间和内存密集的.我绝对愿意这样做,但是经过我所做的所有研究(不包括其他链接),除了手动导出每个关键帧并导入它们之外,我还不知道下一步该去哪里.

编辑:

我已经为任何能给我一个明确定义的从3D应用程序导入动画到iPhone的流程的人添加了奖励.不是整个应用程序本身(即Unity,Sio2等),而只是在应用程序中显示3D叠加层(就像宝石迷阵游戏旁边的动画模型,不与世界互动.)

人们不断说,"创建自己的模型加载器".是否有脚本,示例,教程,从3D应用程序(最好是Maya或Blender)的EXPORTING遍历此"模型加载器"过程的任何内容,并导入此动画并在Objective-C中呈现它?

iphone opengl-es maya blender oolong-engine

13
推荐指数
1
解决办法
3889
查看次数

是否可以围绕自己的轴而不是围绕基准坐标轴旋转对象?

我正在跟踪谷歌的OpenGL es旋转示例,在我的Android应用程序上旋转一个简单的方形(不是多维数据集),例如这段代码:

gl.glRotatef(xrot, 1.0f, 0.0f, 0.0f);   //X
gl.glRotatef(yrot, 0.0f, 1.0f, 0.0f);   //Y
gl.glRotatef(zrot, 0.0f, 0.0f, 1.0f);   //Z
Run Code Online (Sandbox Code Playgroud)

如果只绕一个轴旋转,它可以正常工作.

但是,如果围绕一个轴旋转,然后围绕另一个轴旋转,则旋转不公平.我的意思是旋转是围绕基础(全局)坐标系的轴而不是方形自己的坐标系完成的.

编辑Shahbaz的代码

public void onDrawFrame(GL10 gl) {
    //Limpiamos pantalla y Depth Buffer
    gl.glClear(GL10.GL_COLOR_BUFFER_BIT | GL10.GL_DEPTH_BUFFER_BIT);    
    gl.glLoadIdentity();
    //Dibujado
    gl.glTranslatef(0.0f, 0.0f, z);         //Move z units into the screen
    gl.glScalef(0.8f, 0.8f, 0.8f);          //Escalamos para que quepa en la pantalla
    //Rotamos sobre los ejes.
    gl.glRotatef(xrot, 1.0f, 0.0f, 0.0f);   //X
    gl.glRotatef(yrot, 0.0f, 1.0f, 0.0f);   //Y
    gl.glRotatef(zrot, 0.0f, 0.0f, 1.0f);   //Z
    //Dibujamos el cuadrado
    square.draw(gl);    
    //Factores …
Run Code Online (Sandbox Code Playgroud)

opengl opengl-es

13
推荐指数
1
解决办法
4万
查看次数

OpenGL ES 2.0渲染到纹理

我正在尝试使用OpenGL ES 2.0渲染到纹理,但我似乎无法使其工作.

这就是我的进展方式:

    struct RenderTexture
    {
        GLuint framebuffer;
        GLuint tex;
        GLint old_fbo;


        RenderTexture(GLuint width, GLuint height)
        {
            glGetIntegerv(GL_FRAMEBUFFER_BINDING, &old_fbo);

            glGenFramebuffers(1, &framebuffer);
            glGenTextures(1, &tex);

            glBindFramebuffer(GL_FRAMEBUFFER, framebuffer);
            glBindTexture(GL_TEXTURE_2D, tex);
            glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, 
                         width, height, 0, GL_RGBA, 
                         GL_UNSIGNED_BYTE, NULL);
            glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, 
                                   tex, 0);

            glClearColor(1, 0, 0, 1);
            glClear(GL_COLOR_BUFFER_BIT);

            GLuint status = glCheckFramebufferStatus(GL_FRAMEBUFFER);
            if (status != GL_FRAMEBUFFER_COMPLETE) {
                cout << status << endl; // this is not called
            }

            glBindFramebuffer(GL_FRAMEBUFFER, old_fbo);
        }

        void begin()
        {
            glGetIntegerv(GL_FRAMEBUFFER_BINDING, &old_fbo);
            glBindFramebuffer(GL_FRAMEBUFFER, framebuffer);
        }

        void end() …
Run Code Online (Sandbox Code Playgroud)

opengl-es ios opengl-es-2.0 glkit

13
推荐指数
2
解决办法
9691
查看次数

OpenGL:多个顶点的单顶点属性?

我有一个顶点着色器,它接受以下属性:

  • a_posCoord:顶点位置
  • a_texCoord:纹理坐标(传递给片段着色器)
  • a_alpha:透明度因子(传递给片段着色器)

我正在渲染的对象都是"广告牌"(一对直角三角形来制作一个矩形).

我正在使用单个调用来glDrawArrays渲染许多广告牌,每个广告牌都可能具有唯一的alpha值.单个广告牌有6个顶点.这里有一些伪代码来说明我如何为单个广告牌组织顶点属性缓冲区:

vertexAttributes = [

  px1,py1,pz1, // vertex 1: a_posCoord
  tx1,ty1,     // vertex 1: a_texCoord
  alpha,       // vertex 1: a_alpha

  px2,py2,pz2, // vertex 2: a_posCoord
  tx2,ty2,     // vertex 2: a_texCoord
  alpha,       // vertex 2: a_alpha

  px3,py3,pz3, // vertex 3: a_posCoord
  tx3,ty3,     // vertex 3: a_texCoord
  alpha,       // vertex 3: a_alpha

  px4,py4,pz4, // vertex 4: a_posCoord
  tx4,ty4,     // vertex 4: a_texCoord
  alpha,       // vertex 4: a_alpha

  px5,py5,pz5, // vertex 5: …
Run Code Online (Sandbox Code Playgroud)

shader opengl-es webgl vertex

13
推荐指数
1
解决办法
4419
查看次数

什么是OpenGL中的影子采样器以及它们的可能用途?

我已经使用这个ES扩展了一段时间,但我仍然不太了解这些阴影采样器是什么以及可以使用它们.谷歌搜索并没有给我带来任何漂亮,可读的结果,所以我在这里发帖.

我正在寻找能够帮助我真正了解这些可以做些什么的东西.这可以是真实用例,也可以显示这些与普通采样器的不同之处.我的意思是,他们存储深度数据.但是这些数据是如何产生的?它是由一个绑定到深度附件的纹理制成的吗?

另外,我的问题同样适用于DT(桌面)GL和ES,也可能适用于WebGL; 我并不真正关心确切的调用或枚举,因为它们很容易在规范中找到.

opengl opengl-es glsl shadow

13
推荐指数
1
解决办法
3351
查看次数

OPENGL ES无法正常工作:无当前背景

我尝试了如OpenGL ES2 for Android中所示的程序,但它不能正常工作!

我在Odroid E,三星s3,三星y,三星之星测试过!!

the gl version suported returns 2, but i get
11-22 15:09:45.804: E/oGl-es v(9047): 2.0:131072
11-22 15:09:45.804: E/libEGL(9047): call to OpenGL ES API with no current context     (logged once per thread)
11-22 15:09:45.804: E/unable to(9047): createShader
11-22 15:09:45.804: E/libEGL(9047): call to OpenGL ES API with no current context (logged once per thread)
11-22 15:09:45.804: E/unable to(9047): createShader
11-22 15:09:45.804: E/libEGL(9047): call to OpenGL ES API with no current context (logged once per thread)
11-22 15:09:45.804: …
Run Code Online (Sandbox Code Playgroud)

android opengl-es egl

13
推荐指数
1
解决办法
3万
查看次数

libGDX中的慢模型批处理渲染

我有一个问题是在libGDX中是否有一种特殊模式用于分组模型.我创建了一个实现的简单类来ApplicationListener显示我的问题.我正在使用每晚构建的libGDX.

我读了两个使用相同纹理的不同模型.该应用程序分别呈现每种类型的250个模型.这就是呈现代码的部分:

  mModelBatch.begin(camera);
  for(int y=0; y<50; y++)
  {
     for(int x=-5; x<5; x++)
     {
        ModelInstance instance;
        if(x%2 == 0) instance = modelInstance1;
        else instance = modelInstance2;

        instance.transform.setToTranslation(x, 0, -y);
        mModelBatch.render(instance);
     }

  }

  mModelBatch.end(); 
Run Code Online (Sandbox Code Playgroud)

我的手机上有大约12 FPS(Sony Xperia mini pro).

我试图找到一个好的解决方案,所以我写了另一个测试代码:

public void getRenderables(Array<Renderable> renderables, Pool<Renderable> pool)
{
  for(int y=0; y<50; y++)
  {
     for(int x=-5; x<5; x++)
     {
        ModelInstance instance;
        if(x%2 == 0) instance = modelInstance1;
        else instance = modelInstance2;

        instance.transform.setToTranslation(x, y%3, -y);

        Renderable renderable = pool.obtain();
        renderable = instance.getRenderable(renderable);
        renderables.add(renderable);
     }
  }
Run Code Online (Sandbox Code Playgroud)

}

我使用它,如下所示:

mModelBatch.begin(camera); …
Run Code Online (Sandbox Code Playgroud)

performance android rendering opengl-es libgdx

13
推荐指数
1
解决办法
4288
查看次数

Android模拟器是否支持OpenGL ES 3.0?

我知道模拟器在SDK工具17和Android 4.0.3中支持OpenGL ES 2.0,但这是在2012年4月推出的.

Android模拟器是否支持OpenGL ES 3.0,还是我们还在等待?
如果没有,是否有任何其他第三方仿真器/模拟器(例如Genymotion)支持OpenGL ES 3.0?

android opengl-es android-emulator opengl-es-3.0

13
推荐指数
2
解决办法
1万
查看次数

获得支持的GLSL版本

在使用intel显卡的笔记本电脑上进行开发时,在编译顶点着色器时,我得到了这个:

0:1(10): error: GLSL 3.30 is not supported. Supported versions are: 1.10, 1.20, 1.30, 1.00 ES, and 3.00 ES
Run Code Online (Sandbox Code Playgroud)

好吧,所以我调整着色器使用版本300 ES.同时,我想检查当前驱动程序/卡支持的GLSL版本,所以我用它:

glGetString ( GL_SHADING_LANGUAGE_VERSION )
Run Code Online (Sandbox Code Playgroud)

令我沮丧的是,只返回"1.30".

我如何获得完整列表?或者即使它不是完整列表,我如何获得标准的GL支持版本和GLES支持的版本?

opengl opengl-es opengl-es-2.0

13
推荐指数
1
解决办法
1万
查看次数

使用Grafika CameraCapture代码拉伸Android相机预览

我正在寻找帮助解决我使用Grafika的CameraCaptureActivity代码所面临的问题.我想构建一个可以记录相机并显示预览的应用程序,所以这个样本和代码看起来就像我想要的那样,到目前为止它很棒,这个问题appart.

我的问题是,当相机预览尺寸与GLSurfaceView我用于显示预览的确切尺寸不匹配时,它会显示拉伸预览.

以下是它的外观:

预览拉伸

你可以看到它是水平拉伸的,因为音符表是一个完美的正方形.

用于在三星Galaxy S4这种精确为例,相机预览大小1280x720(从使用预览可用大小提取Camera2API),并且GLSurfaceView1920x1080覆盖整个屏幕.

什么时候出现?

当SurfaceView与Camera输出相比进行放大时,即使我始终确保比率保持正确(1920x1080= 1.5*1280x720),也会出现此问题.

你用的是什么代码?

我使用Grafika的代码,包括:

有些日志?

这是SurfaceFlinger转储的样子:

Hardware Composer state (version 01030000):
  mDebugForceFakeVSync=0
  Display[0] configurations (* current):
    * 0: 1080x1920, xdpi=442.450989, ydpi=439.351013, secure=1 refresh=16666667
  numHwLayers=3, flags=00000000
    type   |  handle  | hint | flag | tr | blnd |  format     |     source crop(l,t,r,b)       |           frame        |      dirtyRect         |  name 
------------+----------+----------+----------+----+-------+----------+-----------------------------------+---------------------------+-------------------
       HWC | b3b12ba0 …
Run Code Online (Sandbox Code Playgroud)

android opengl-es glsurfaceview android-camera grafika

13
推荐指数
1
解决办法
1276
查看次数