Animation OpenGL中眼睛模型瞳孔收缩/扩张的基本方法

Animation OpenGL中眼睛模型瞳孔收缩/扩张的基本方法,animation,opengl-es,blender,3d-modelling,Animation,Opengl Es,Blender,3d Modelling,我是OpenGL ES新手,正在寻找创建瞳孔可以扩张和收缩的眼睛的真实模型的最佳方法,因此在阅读教程时,我有一个计划 我在blender中制作了一个网格,它基本上是一个带孔的球体(“极点”或中心顶点被移除,周围有一对圆边) 我计划将虹膜纹理直接添加到围绕孔的球体多边形中 要更改瞳孔大小,我是否只需要一个函数来重新定位孔的顶点,以便孔扩张或收缩 我将在Objective-C应用程序中使用OpenGL。我有。仅从blender导出网格,然后在xcode的代码中添加纹理,这是标准做法吗?还是先在ble

我是OpenGL ES新手,正在寻找创建瞳孔可以扩张和收缩的眼睛的真实模型的最佳方法,因此在阅读教程时,我有一个计划

  • 我在blender中制作了一个网格,它基本上是一个带孔的球体(“极点”或中心顶点被移除,周围有一对圆边)

  • 我计划将虹膜纹理直接添加到围绕孔的球体多边形中

  • 要更改瞳孔大小,我是否只需要一个函数来重新定位孔的顶点,以便孔扩张或收缩

  • 我将在Objective-C应用程序中使用OpenGL。我有。仅从blender导出网格,然后在xcode的代码中添加纹理,这是标准做法吗?还是先在blender中的网格上设置纹理并将更多成品的数据导出到xcode更容易/更好


  • 你的问题有点老了,所以我不确定你取得了多大的进步,但随着我自己在学习曲线上不断攀升,我想我应该尝试回答一下

    如果要为模型的各个顶点设置动画,我相信您需要的方法是顶点蒙皮。虽然这是一种仅在OpenGLES2.0中可用的技术,但我还没有理由对它进行试验,所以我不能在这方面说太多。(无论如何,这可能是您想要开始的地方,1.1增加的灵活性比任何额外的学习曲线倾斜都更有价值。)

    你的纹理问题的答案有点复杂。您需要在OpenGL中实际应用纹理。但是Blender可以为您做的是确定纹理坐标。网格的每个顶点都有一个与其关联的纹理坐标。纹理坐标将是映射到纹理图像上某个位置的X、Y坐标。坐标在0.0到1.0之间——因此,由于图像纹理是矩形,纹理坐标{0,0}映射到左下角;{1,1}映射到右上角;{0.5,0.5}映射到图像的精确中心

    因此,在blender中,您需要继续使用UV映射对对象进行纹理处理。导出时,尽管导出的网格不包含任何图像内容,但它将保留映射到图像内容的纹理坐标。这将允许您在OpenGL中应用纹理,以便以与blender中相同的方式应用纹理

    我个人在让Jeff Lamarche的脚本吐出纹理坐标时遇到了一些麻烦,因为Blender api似乎在每个版本中都会发生显著的变化。我使用.obj转换器更成功。所以我一直在从blender导出到.obj,并使用命令行工具从.obj导出到C头文件

    如果您在Lamarche的脚本中遇到类似的问题,本文可能有助于解决此问题:

    对于.obj到.h脚本来说,这是一个很好的资源:

    谢谢你的建议!最后我选择了一个效果很好的。