摘要: 6月25日,由CSDN主办的“【VR技术开放日】VR开发从何入手”在北京辽宁大厦隆重举行,会议邀请到小米互娱VR技术专家房燕良、焰火工坊CTO王明杨、资深VR开发工程师王秋林、奥秘游戏CTO冀盼以及火石镇CEO卞安到场,以代码见代码,分享最为纯正的技术实践,详解如何开发出一款能真正供用户把玩的精品质游戏或应用。

自VR横空出世之后,一度受到外界热炒,从概念到技术再到生态布局,不仅成就了一场资本狂欢,业界也将2016年标榜为VR元年。但退去华丽的辞藻,归于本质,VR开发从何入手成为诸多入门级开发者面临的难题。

针对内容稀缺、工具选型、3D动画、性能优化等VR开发难题,全球最大中文IT社区CSDN于6月25日下午举办“【VR技术开放日】VR开发从何入手”,邀请到小米互娱VR技术专家房燕良、焰火工坊CTO王明杨、资深VR开发工程师王秋林、奥秘游戏CTO冀盼以及火石镇CEO卞安到场,以代码见代码,分享最为纯正的技术实践,详解如何开发出一款能真正供用户把玩的精品质游戏或应用。

首先,本次活动组织者CSDN唐小引分享了举办此次活动的初衷,以及CSDN一直以来为虚拟现实开发所做的种种努力,比如《程序员》杂志、VR知识库囊括的知识图谱等,从一定程度上解答了VR开发究竟该如何入手的问题。

用虚幻4在Gear VR上运行一个搭积木的游戏(PPT下载)、Demo源码

随后,开发3代自研引擎的小米互娱VR技术专家房燕良先生,直接以code形式展示了自己使用虚拟4开发VR游戏过程以及分享其开发中的宝贵经验。房燕良表示虚幻4相比虚幻3更加易学易用,与Unity并列成为国际顶尖引擎,且是免费开源的。无论设计游戏或开发VR应用,掌握引擎基础知识尤为重要。用虚幻4在Gear VR运行搭积木游戏,其核心为设计一些box并放置地上,配戴Gear VR运用视觉感官,移动盒子。

开发注意事项:

  1. 选用C++模板。若选用蓝图,后续打包会出现问题;
  2. 导入图片、表情等资源,工程属性以默认选项;
  3. 虚幻引擎中,材质编辑器采用基于节点方式,运用迭代可做出很多功能;
  4. 运用可视化方式打通内容开发流程。

VR场景中晕动症主要可从两个方面解析,一方面以开发者的角度,游戏及应用开发过程中,帧速率要匹配即视觉画面与头盔运动要一致;另一方面从产品设计角度考虑,采用顺移方式减少不适应的时间。

移动VR观影:如何用Unity开发一个虚拟影院(PPT下载)

购买VR设备最主要用途是什么?王明杨与其合作伙伴根据购买VR设备的用户调研结果显示:大多数用户购买VR设备用于观看视频。

那么在VR中如何建立虚拟影院?王明杨总结了如下步骤:

1. 设计一个虚拟影院模型,增强用户体验沉浸感;
2. 学习Unity开发知识;
3. 学习Android播放视频;

Android中有一个Media Player,调用一个函数就可以播放视频。Android与传统的Windows并不相似,应用不是直接将工具显示到屏幕上,而是显示到Surface上,这个称之为FBO,可以把现在所有的程序显示的东西渲染到FBO上,然后再由这两个类把每一个程序的图像叠加起来。Android并不是直接往屏幕上面显示。

如果在没有经过定制的Android系统上,天然的延迟很高。Android的Media Player可以把图像渲染到Surface的Surface Texture上,这是虚拟影院的技术核心。我们首先创建一个Media Player,然后把Media Player的内容指定一个Surface,渲染到Surface上,然后到Surface Texture,并且复制给Unity。

4. 视频与模型相结合在Unity中渲染出来。

Unity把所有的贴图包装成 Texture2D形式,其实是对标准格式的封装。标准格式下Unity把 Texture的生成和 Texture这样一个操作封的很死,但比较线性的是Unity 4.0以上增加了一个机制,该机制可以通过OpenGL生成一个外部贴图。这样在播放器中渲染出来的视频,我们可以轻松的将视频转成 Texture2D贴到模型表面上。

VR环境下独特的人机交互设计(PPT下载)

从硬件设计到电路焊接到硬件调试到程序编写、算法设计、通信协议算法以及监听的耳机也是自己做的,资深VR开发工程师王秋林以其独特的见解解析VR环境下人机交互设计。所谓的人机交互即人向电子设备进行输入,电子设备向人返回数据信息。VR环境下人机交互方式主要有:单VR头盔;带有操作元件的VR头盔;VR头盔+通用外部输入设备,可以盲操作;VR头盔+包含传统输入方式的体感输入设备;VR头盔+动感座椅。造成虚拟世界眩晕的根本原因是人在虚拟环境中与现实中运动不同步。其中以足够慢的匀速运动、极快的短时运动、瞬时跳跃、参照物距离玩家足够远时的飞行运动、有相对静止参照物,可有效减轻眩晕,改善用户体验。

VR环境中的UI设计注意事项:

  • 传统的在屏幕四周绘制2D UI的方法在VR环境下变得不再可用;
  • 凸透镜导致的画面的桶形畸变让画面边缘的内容被压缩而无法看清;
  • VR环境下人眼基本只会注视屏幕中心的一小片区域,难以注意到屏幕边缘的内容;
  • 需要将UI要表现的数据以3D的形式呈现出来,甚至和武器、虚拟肢体结合起来,当玩家想要了解这些数据时会主动转动头部、举起武器/手臂来注视这些3D UI获取这些数据。

基于HTC Vive的VR游戏开发入门(PPT下载、Demo源码)

到底选择哪个平台进行VR游戏开发,奥秘游戏CTO冀盼表示不用纠结。无论是HTC Vive、PS VR、Oculus还是Gear VR平台,VR开发很多时候是相通的。通过HTC Vive开发VR游戏,硬件需配备头显及双手柄,PC以i5 970为最低配置,设置Room Scale模式,内容分发平台有Steam、Vive及奥秘,开发引擎可使用Unity 3D和Unreal。VR开发两个关键点:眩晕与沉浸。

游戏开发过程中需重点关注:

  • 输入输出方式变化;
  • 近似无2D界面;
  • 数学和物理;
  • 音乐音效;
  • 场景的应用;
  • 联网和数据同步;
  • SteamVR API等方面。

使用Cocos开发一款简单的3D VR抓钱游戏(PPT下载)

使用Cocos也可以开发VR游戏?火石镇CEO卞安为开发者解开谜团。虚幻、Unity、Cocos三大引擎,卞安表示虚幻做出的画面更适合主机但其性能要求较高,Unity更适合中小团队,Cocos适合本身具有Cocos基础的团队。

使用Cocos创建VR游戏流程:

  • 获取VR引擎框架(基于Cocos2d-x 3.10以后版本)。
  • 安装JDK,保证Android手机能运行。
  • 安装Python,运行Setup.py检测环境变量,进行相应配置。
  • 运行命令行,新建VR游戏项目。
    Win32 : createNewProject.py –n ProjName–p ProjPath
  • 安装Oculus SDK,配置摸拟器,启动VR项目。
  • 使用VS2015或VS2013,打开Win32工程,编译运行即可。
  • Android :build_native.py –V cardboard 编译Android的APK

现场花絮

新颖便捷的微信摇一摇签到入场

丰富的茶歇

专家们与诸多小伙伴进行了合影

(文/屠敏,审校/唐小引)

VR开发从何入手的实战分享相关推荐

  1. 开发shell脚本检查Nginx实战分享

    开发shell脚本检查Nginx实战分享 点这里查看视频讲解 一.本脚本实现功能: 1.自动检查Nginx下面的代理节点是否正常 2.通过页面显示状态,有问题的节点给出页面报警及声音报警. 3.增加新 ...

  2. 程序员2016年5月:走进VR开发世界

    时至今日,VR技术仍处在一个萌芽期,Oculus.Gear VR.PlayStation VR在经过长时间的精细打磨后才逐渐为大众所触知.在硬件升级的同时,对于以游戏为主的内容开发而言,核心即在于Un ...

  3. 视频教程-虚幻4 VR开发指南-其他

    虚幻4 VR开发指南 房燕良,从2001年开始,自主研发3代游戏引擎,发布游戏超过10款.代表作品有<仙剑3><功夫世界><龙online><神兵传奇> ...

  4. 用Cocos走向移动VR开发之路|卞安演讲实录

    在6月18日举办的主题为"那些开发领域的新玩意"CVP系列开发者沙龙上,火石镇CEO卞安带来了<走向移动VR开发之路>的精彩分享,下面是整理的部分演讲实录. 火石镇CE ...

  5. 【实战分享2】:如何基于OpenXR@ unity + 华为VR Glass 6dof Quest 开发跨平台VR游戏/应用

    在上一篇中<[实战分享1]如何使用华为VR Glass 6dof 基于 OpenXR@ unity 开发VR游戏>最后小结中提到,基于openxr可以支持一套代码,达到跨平台部署: 使用o ...

  6. 访《VR开发实战》作者冀盼——VR 开发者的核心竞争力

    "一边是火焰,一边是深海",可谓是 VR 行业的真实写照,因资本而起又因资本而却的 VR ,一时之间宛如六月天.如今硬件不温不火持续地升级,应用也一步一步地向 B 端市场摸索前行, ...

  7. 《AR与VR开发实战》——2.7 3D物体识别

    本节书摘来自华章出版社<AR与VR开发实战>一书中的第2章,第2.7节,作者 张克发 赵兴 谢有龙,更多章节内容可以访问云栖社区"华章计算机"公众号查看. 2.7 3D ...

  8. 《AR与VR开发实战》——第1章AR技术简介

    本节书摘来自华章出版社<AR与VR开发实战>一书中的第1章,第1.1节,作者 张克发 赵兴 谢有龙,更多章节内容可以访问云栖社区"华章计算机"公众号查看. 第1章 AR ...

  9. 《AR与VR开发实战》——2.3 创建AR视频

    本节书摘来自华章出版社<AR与VR开发实战>一书中的第2章,第2.3节,作者 张克发 赵兴 谢有龙,更多章节内容可以访问云栖社区"华章计算机"公众号查看. 2.3 创建 ...

最新文章

  1. 用DataReader还是DataSet?
  2. ASP.NET MVC开发中常见异常及解决方案
  3. android 动态添加删除控件,求教Android,动态添加到控件能动态删除吗?
  4. string、wstring、cstring、 char、 tchar、int转换方法
  5. 一般单纯形法的matlab程序,实验报告(单纯形法的matlab程序)
  6. onlyoffice修改字号
  7. 1359C. Mixing Water
  8. 挂机宝和网站服务器,挂机宝SSD硬盘vs普通硬盘访问官网哪个快?
  9. 减少代码行数就是提高生产力!美国防部研究人员开源低代码量的机器学习框架:ktrain...
  10. inno setup 中文乱码问题_解决Inno Setup制作中文安装包在非中文系统上显示乱码的问题...
  11. lua正则替换_Lua 语言如何替换多个可选字符串
  12. CSS实现兼容性的渐变背景(gradient)效果(转)
  13. 命名空间:不只是代码封装
  14. 芯片之路: 海思半导体前世今生
  15. 回溯法中解空间树的组织
  16. 解决CCS中调用 printf 函数报错和警告的问题(error #10099-D:program will not fit into available memory.)
  17. 7-3 学生成绩录入及查询 (20分)__C++
  18. 使用树莓派与微信公众平台对接(python)
  19. ios 持续获取定位 高德地图_iOS 定位 高德地图
  20. Windows搭建青龙面板教程

热门文章

  1. 类中的关键字public、protected、private究竟是什么意思?
  2. ehcache config xml file
  3. 美国计算机科学厉害的大学,求推荐美国综合排名40~70间计算机科学较好的大学...
  4. leetcode算法题--两数相加
  5. java stringbuilder appendline_StringBuilder
  6. 多迪技术总监揭秘:普通UI设计师与顶级UI设计师的区别是什么?
  7. 团队-及格成绩查询系统-设计文档
  8. 软件工程作业 - wordcount
  9. 自动化发布-GitLab WEB Hooks 配置
  10. LeetCode——Contains Duplicate III