在做手游的时候,80%时间是在PC调试的,例如业务逻辑.AI算法.核心玩法等. 拿到魔镜提供的demo,晕了,必须得安装到Android机器上,才能调试,究其原因,有三: 需要用到手机陀螺仪 需要用到蓝牙手柄 需要用到魔镜的凸透镜 这些都是客观原因,但是每次打包后,安装Android,再戴到头上,Debug.log啥的都看不清,呵呵. 故就着手改造一下输入快捷键,从而可以方便的模拟手机陀螺仪输入.模拟蓝牙输入.模拟非VR Mode切换. 1 模拟手机陀螺仪输入 这个在mojing.cs有现成隐藏…
学习一个新技术,有三个法宝: 法宝1: 掌握厂家提供的用户API手册 法宝2: 掌握厂家提供的demo样例 法宝3:<每个研发人员都应树立的一个demo模式> 故,学习魔镜4技术,亦如是也. 暴风魔镜4是 硬件 + 暴风VR SDK软件的CardBoard VR解决方案. 硬件 魔镜4硬件提供了展示容器工具,主要由2个凸透镜和塑料头盔构成.故为了看到效果酷炫的VR效果,必须要依赖5寸以上Android手机–720P以上,把通过暴风魔镜SDK做的App放入里面,通过暴风魔镜凸透镜才能看到VR的效…
在VR应用中,有一个相对简单的虚拟现实体验,那就是360°全景照片浏览器, 他可以使得手机拍照的”全景”照片,  得以”恢复”当时拍照的场景全貌,  这个创意的确比单纯的2d图片更有震撼力一些,故本文就制作360全景照片的过程进行简单小结. Step 1:预期需求 可以通过手机的陀螺仪,在魔镜中查看360°图片:不用依赖任何蓝牙输入,仅通过Gaze Input进行选择下一张360°图片(盯着缩放图2s,进度条旋转完成后,就切换图片:用Gear VR的磁铁触发功能也可以实现选择下一张图片). St…
一年前,系统学习过3D数学,并记录了一篇博客<C#程序员整理的Unity 3D笔记(十):Unity3D的位移.旋转的3D数学模型>. 一年后,再次温习之. 坐标系:Unity3D使用左手笛卡尔坐标系(Descartes coordinate system) 世界坐标系(world space):在一个游戏场景中,唯一. 物体坐标系\局部坐标系(local\Object space):每个物体有各自的独立的坐标系.如桌子的物体坐标系中,扶手相对桌子腿位置.有时候,不需要对外暴漏太多细节. 摄像…
关于光照模型 所谓模型,一般是由学术算法发起, 经过大量实际数据验证而成的可靠公式 现在还记得2009年做TD-SCDMA移动通信算法的时候,曾经看过自由空间传播模型(Free space propagation Model),目的为了得出移动信号的传播损耗.当时是基于普通的PC实时运算,非常非常耗时–如北京五环内的传播模型渲染GIS图用了超过20分钟. 光照模型来源有2类: 一类是基于学术论文的算法,如Lambert模型.Phong模型. 另一类基于算法的变种–在实际生产实践中修正得到的模型,…
从西安到北京高铁上,一位VR老外团队的华人leader对VR技术做了画龙点睛: “3D游戏的核心部分在Render, 国内很多团队美术.程序中间缺失严重.所以3d游戏做不好. VR这块更是至关重要.” 故,欲VR,先Shader吧. 1 CG规范: 计算机图形学(英语:computer graphics) 在Windows下图像渲染是DirectX: 在Linux下图形渲染是OpenGL:在苹果下新出的Metal渲染.而作为Unity3D程序,跨平台的特性则无须对这些平台一一掌握,仅需要从CG规…
2016年伊始,有了VR虚拟现实硬件设备:  暴风魔镜4–好奇者的新玩具 . 2015年下半年的朋友圈中各种VR.AR的新闻层次不穷,搞的我也心痒痒的:好歹咱也是职业的Unity3D程序员,高大上的Oculus rift dk2咱玩不起,搞个廉价的VR产品也玩玩嘛! 故, 暴风魔镜 4刚发布就在网上预订了.    原估计春节前能到货,没有想到元旦前就到货了,高兴 — 业内良心嘛. 迫不及待玩了几天,小结如下: 1 魅蓝 Note 2 + 魔镜4 的VR效果不错,完全对得起159元的预订价,比预期…
LOD (Level of Detail), 远小近大思想. LOD,在Unity中是用到了空间换时间的优化方法:即程序加载2套模型,导致包会增大:在运行时刻,远处的用面数少的模型–模糊一些,近处用面数多的模型–清晰一些. 类似的原理,还有纹理的MipMap设置. Step1: 美术制作2份模型 针对需求策划,美术需要对同内容的2份,一个命名为***_LOD0 面数多的高模: 另外一个命名为***_LOD1面数少的低模. 高清晰度网格(L0D:0,当摄像机最接近时),和一个低分辨率网格(L0D:…
在Unity Editor下,当选择Camera组件后,可呈现出Camera视口区域锥体,非常方便.但是当选择其他物体,如Cube后,就无法得知是否在Camera市口区内了,这里我找到了雨松MOMO的一篇博客<Unity3D研究院之获取摄像机的视口区域>,他用Camera.fieldOfView和Camera.aspect算出屏幕比例,然后再得出width.height(摄像机)绘制了四边形,非常酷,可以解决这个痛点. 我在巨人肩膀上,做了一些拓展: 自动获得Camera的farClipPla…
使用暴风魔镜SDK来操作 将魔镜的摄像头拖放到项目中: 将MoJingVrHead的Script剪切到CamRoot中: 这个时候能看到显示2个物体了,不过使用的Canvas还是显示一个: 调整Canvas的属性,使其显示2份: 步骤一:将Render Mode改为Camera模式并且新建一个Camera进行测试,并且保证Canvas相对于飞机更靠近摄像头 调整测试的Camera并设置如下:相当于只看UI层 因为Canvas属于UI层,所以设置显示UI层: 设置Don't clear则表示会继续…