我有问题能够将骨骼和骨骼动画从Maya导入到Blender到iPhone.这就是我所做的:
我可以导入模型并显示它.许多这些进程都会响应该问题,并让开发人员以编程方式操作游戏对象.我的主要问题是找到在现有游戏旁边将动画导入iphone的最佳定义过程?我不需要整个游戏或整个场景,只需要一个动画模型和一些步骤.
此动画旨在循环播放.还有3种动画可以在不同的游戏状态下运行(好动,坏动等).所以我担心LeMarche的关键帧解决方案(基本上意味着将每个关键帧导出为.h文件)将是非常耗费时间和内存密集的.我绝对愿意这样做,但是经过我所做的所有研究(不包括其他链接),除了手动导出每个关键帧并导入它们之外,我还不知道下一步该去哪里.
编辑:
我已经为任何能给我一个明确定义的从3D应用程序导入动画到iPhone的流程的人添加了奖励.不是整个应用程序本身(即Unity,Sio2等),而只是在应用程序中显示3D叠加层(就像宝石迷阵游戏旁边的动画模型,不与世界互动.)
人们不断说,"创建自己的模型加载器".是否有脚本,示例,教程,从3D应用程序(最好是Maya或Blender)的EXPORTING遍历此"模型加载器"过程的任何内容,并导入此动画并在Objective-C中呈现它?
我正在跟踪谷歌的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 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) 我有一个顶点着色器,它接受以下属性:
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) 我已经使用这个ES扩展了一段时间,但我仍然不太了解这些阴影采样器是什么以及可以使用它们.谷歌搜索并没有给我带来任何漂亮,可读的结果,所以我在这里发帖.
我正在寻找能够帮助我真正了解这些可以做些什么的东西.这可以是真实用例,也可以显示这些与普通采样器的不同之处.我的意思是,他们存储深度数据.但是这些数据是如何产生的?它是由一个绑定到深度附件的纹理制成的吗?
另外,我的问题同样适用于DT(桌面)GL和ES,也可能适用于WebGL; 我并不真正关心确切的调用或枚举,因为它们很容易在规范中找到.
我尝试了如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) 我有一个问题是在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)

我试图找到一个好的解决方案,所以我写了另一个测试代码:
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) 我知道模拟器在SDK工具17和Android 4.0.3中支持OpenGL ES 2.0,但这是在2012年4月推出的.
Android模拟器是否支持OpenGL ES 3.0,还是我们还在等待?
如果没有,是否有任何其他第三方仿真器/模拟器(例如Genymotion)支持OpenGL ES 3.0?
在使用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支持的版本?
我正在寻找帮助解决我使用Grafika的CameraCaptureActivity代码所面临的问题.我想构建一个可以记录相机并显示预览的应用程序,所以这个样本和代码看起来就像我想要的那样,到目前为止它很棒,这个问题appart.
我的问题是,当相机预览尺寸与GLSurfaceView我用于显示预览的确切尺寸不匹配时,它会显示拉伸预览.
以下是它的外观:
你可以看到它是水平拉伸的,因为音符表是一个完美的正方形.
用于在三星Galaxy S4这种精确为例,相机预览大小1280x720(从使用预览可用大小提取Camera2API),并且GLSurfaceView是1920x1080覆盖整个屏幕.
什么时候出现?
当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)