Unity3D虚拟现实交互制作(拓展) Unity3D虚拟现实交互制作(拓展) Unity WebGL中的底层插件.docxVIP

Unity3D虚拟现实交互制作(拓展) Unity3D虚拟现实交互制作(拓展) Unity WebGL中的底层插件.docx

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Unity WebGL中的底层插件 本文我们一起来看看Unity WebGL平台如何使用底层插件,如果您曾想过在网页中重用现有的C/C++代码,例如OpenGL ES实现的图形效果,请不要错过本文。我们从插件类型、实现插件、插件示例与演示几个方面进行阐述。 插件类型 Unity支持两种类型的插件:Managed托管插件和Native原生插件。对于托管插件来说,WebGL与其它平台支持托管插件的方式一致,唯一的区别在于插件的托管程序集与引擎及用户的托管代码会一起转换为JavaScript,这里指asm.js/wasm。 对于原生插件来说,针对网页来谈“原生”真的有意义么?如果原生特指例如Mac,Win 32/64等底层架构,当然没有意义。然而,Unity WebGL也支持几种其它类型的插件:JavaScript、C/C++以及预编译的LLVM字节码。 Unity用户手册中有几个WebGL平台下JavaScript和C语言插件的例子,并且演示了如何通过脚本与它们进行交互。既然可以使用C/C++源代码,那就可以访问底层插件接口用来渲染。Unity 5.5就可以通过新加的代码钩子,来注册底层插件。 如您所见,我们需要添加较多代码,下面来看看实现插件需要哪些步骤。 实现插件 首先,需要将Unity安装目录下Editor/Data/PluginAPI中的Plugin API头文件,复制到插件源文件所在的目录。 插件使用头文件IUnityInterface.h和IUnityGraphics.h来声明所需的接口。由于这些头文件适用于特定的Unity版本,所以保持与编辑器版本同步至关重要。注册插件需要调用函数UnityRegisterRenderingPlugin。 无论如何,首先需要实现加载和卸载的回调函数来获取IUnityGraphics接口,并注册或注销用于底层渲染的图形设备回调函数。示例如下: 实现了以上接口,就可以注册插件了。 最后,启动时需要添加C#绑定并注册插件,以保证UnityRegisterRenderingPlugin确实执行了。 然后需要实现OnGraphicsDeviceEvent并添加渲染代码。 注意,如果不同的平台使用相同的插件源文件,可以检查__EMSCRIPTEN__或UNITY_WEBGL (仅限Unity 5.6及以上版本)来条件编译代码。 最后,如果需要浏览系统头文件,如:gl2.h,可以在Unity安装目录下找到: Editor/Data/PlaybackEngines/WebGLSupport/BuildTools/Emscripten/system/include 插件示例 如果有兴趣尝试制作渲染插件,Unity开源库Bitbucket上的NativeRenderingPlugin是一个非常棒的起点。它已经设置注册了所需的回调,编译了自己的着色器,并且演示了如何在简单的Unity场景中渲染一个三角面。 注意,在Unity WebGL中不需要单独建立C/C++插件。该示例中的Unity项目包含一个简单的文件(Plugins / WebGL / RenderingPlugin.cpp),其中包含了插件的具体实现,如下所示: 演示 如果在支持Unity WebGL的浏览器或者设备上浏览此页面,请查看下面的Demo,它展示了用OpenGL ES写的Mandelbrot分形效果,这是通过原生渲染插件调用的。 最初的OpenGL 2.0 Demo是用C++和GLSL写的,所以只需做一些修改,使其与前面的原生渲染插件Demo完美兼容。您可以点击【阅读原文】下载Demo的Unity项目及插件源代码。 总结 本文介绍了Unity WebGL中底层插件的实现办法。考虑到Unity WebGL平台的调试工具并不丰富,建议可以在不同的GLES2/3 API平台上制作原型,以保证WebGL平台一旦构建成功,也可以在iOS,Android或PC端正常运行。了解更多详情,请访问Unity官方中文社区()。

您可能关注的文档

文档评论(0)

WanDocx + 关注
实名认证
文档贡献者

大部分文档都有全套资料,如需打包优惠下载,请留言联系。 所有资料均来源于互联网公开下载资源,如有侵权,请联系管理员及时删除。

1亿VIP精品文档

相关文档