0

我想在 iPhone 应用程序中加载 HDRi 地图(类似于 Google 地图),然后我希望能够加载一些 3D 角色在场景中播放。

你可以在这里看到一个我想加载的例子:

在此处输入图像描述

http://www.hdri-hub.com/hdrishop/freesamples/freehdri/item/117-hdr-041-path-free

目前我正在使用 Cocos3D 通过 POD 导出文件从 Blender 加载 3D 模型,所以也许有一种方法可以在 Cocos3D 中加载 HDRi。我发现了这个类 CC3STBImage 可以用来加载 HDR 类型,但我不知道如何使用它(也没有找到示例)。我已经看到 CC3Texture2DContent 具有 initFromSTBIFile: 'phdr' 文件扩展名的方法,所以也许 HDRi 可以作为纹理加载?

[编辑]

我设法用图像加载了一个球形网格,请参阅下面的答案和评论。特此通过 CC3Camera 在天空盒中查看结果的一些屏幕截图:

在此处输入图像描述 在此处输入图像描述 在此处输入图像描述

4

1 回答 1

1

正如你提到的,HDRi 支持是由CC3STBImage课程提供的。该方法中提供了使用此类的文件扩展名列表CC3STBImage useForFileExtensions。如果您不想将文件重命名为*.phdr,可以将所需的文件扩展名添加到此集合中。

一旦您确保您的 HDRi 文件扩展名在上述集合中,您可以CC3Texture通过简单地使用以下方法将 HDRi 文件加载到 a 中:

[CC3Texture textureFromFile: @"myFile.phdr"];

CC3STBImage使用文件中提供的第三方库stb_image.c。查看该文件中的注释以了解有关 HDRi 支持以及任何潜在限制的更多信息。

请记住,iOS OpenGL 实现会限制纹理的大小。Cocos3D在应用启动期间记录当前平台的最大纹理大小。在日志中查找条目,例如:

[info] Maximum texture size: 4096

表示该平台支持的最大 OpenGL 纹理宽度和高度。

于 2014-07-04T16:04:27.563 回答