我想加载一个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寻找:
至于你提到的,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纹理的宽度和高度由平台支撑。