加载HDRI的地图,Cocos3D(Loading HDRi maps in Cocos3D)

2019-10-30 11:43发布

我想加载一个iPhone应用程序的HDRI图(类似于谷歌地图),然后我希望能够加载一些3D人物在现场玩耍。

你可以在这里看到的我想加载的内容示例:

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

目前我使用Cocos3D从搅拌机加载3D模型通过POD导出文件,所以也许有一种方法在Cocos3D加载HDRI。 我发现这个类CC3STBImage可以用来加载HDR类型,但我不知道究竟如何使用它(并没有发现例子)。 我见过CC3Texture2DContent有initFromSTBIFile:方法“PHDR”文件扩展名,所以或许HDRI可以加载作为纹理?

[编辑]

我设法装入球形网与图像, 一看便知与下面的评论 。 结果特此一些截图通过在天空盒一个CC3Camera寻找:

Answer 1:

至于你提到的,HDRI支持是由提供CC3STBImage类。 使用这个类的文件扩展名的名单可在CC3STBImage useForFileExtensions方法。 如果你不希望你的文件重命名为*.phdr ,你可以添加你想要这个集合的文件扩展名。

一旦你确保你的HDRI文件扩展名是上述集合中,您可以加载HDRI文件转换成CC3Texture通过简单地使用:

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

CC3STBImage使用所提供的第三方库stb_image.c文件。 看一看在该文件以获得更多关于HDRI支持票据,以及任何潜在的局限性。

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

[info] Maximum texture size: 4096

这表明最大的OpenGL纹理的宽度和高度由平台支撑。



文章来源: Loading HDRi maps in Cocos3D