Unity 5.4大赞:HTC Vive经典The lab渲染器开源
HTC Vive提供了一个不错的免费VR demo,最近1周仔细体验了一番。
![]()
仔细看了其安装文件,竟然是Unity 5.4beta版本(通过查log,知道Valve公司用的是最新的5.4.0b11版本开发的),的确令人信心大振:
要知道,某些创业公司为了打差异化竞争,提高技术门槛,对外称Unreal 4的画质比Unity 5优秀很多,这让很多在Unity技术栈下的公司有些郁闷–多年来Unity画质始终不如Unreal逼格高啊。
The Lab
程序路径:Steam\steamapps\common\The Lab\TheLab\win64
![]()
Secret Shop
程序路径:Steam\steamapps\common\The Lab\SecretShop\win64
![]()
LONGBOW
![]()
![]()
射箭,新破的记录:3565分
上面这3个demo,均符合VR体验沉浸感三要素:
- 触觉:手柄震动反馈
- 视觉:画质沉浸感强
- 听觉
仔细找了一些资料,发现1个月前,Valve把The Lab 渲染器开源了,竟然。
The Lab Renderer (Requires Unity 5.4.b15 or newer)
- SteamVR plugin for Unity(HTC Vive开发必备)
The lab渲染器有下面几个特点:
- Single-Pass Forward Rendering and MSAA
- Adaptive quality
- Custom Shaders
- GPU Flushing
- 使用步骤
步骤1:场景设置
// Scene setup:
// – Enable forward renderer in Player Project Settings
// – Set Color Space to Linear in Player Project Settings
// – Enable GPU Skinning in Player Project Settings
// – Add the ValveCamera.cs script to the main camera
// – Add the ValveRealtimeLight.cs script to all runtime lights
// – In Project Quality Settings, set Shadow Cascades to No Cascades
// – In Project Quality Settings, set Pixel Light Count = 99
步骤2:切换Shader
![]()
- 方便转换已有的材质–其实是使用Valve提供的Shaders(代替Unity 5 Standard Shader)
步骤3:查看HTC Vive运行过程中VR的FPS!
![]()
- HTC 要求的Refresh Rate是90Hz。
- 核心C#脚本就2个文件,ValveCamera.cs、ValveRealtimeLight.cs
- 提高VR画质和刷新率的平衡,是设置这2个Unity VR参数:
VRSettings.renderScale
VRSettings.renderViewportScale
其中Adaptive quality的启发思想是,通过观察过去10帧的VRStats.gpuTimeLastFrame平均值,来动态设置。 这个动态的优化思想,从软件算法看,的确很酷:
- 依据电脑硬件,运行不卡,renderScale设置大一些,画质慢慢变好;
- 依据电脑硬件,运行卡了,renderScale设置小一些,画质变差就行。
小道消息:我通过Twitter咨询Unity QA Leader,他给我的反馈是原定于2016.6月发布的Unity 5.4,因为目前还有2个渲染的严重bug,故5.4会延期到7月底发布–好事多磨,希望5.4正式版越来越给力,尤其是在VR渲染上。
创业广告:
1 承接VR/AR内容应用定制需求: 楼盘销售展示系统、建筑建设、旅游体验、课件教学系统、交通车辆仿真,模拟驾驶系统、游戏等。
2 各类最新VR设备,例如GearVR、HTC vive、Oculus CV1、LONG VR 魔镜等
3 可公对公签正规合同,开发票。
4 我们是北京专业团队公司;
5 提供售后服务,保证产品质量,有业务需求可以进行一对一的技术指导。
联系QQ: 2137-2550
参考博客:
Unity3D for VR 学习(5): VR Gaze Input
Unity3D for VR 学习(11): 后期屏幕渲染特效(Image Effect)
Unity3D for VR 学习(9): Unity Shader 光照模型 (illumination model)
Unity3D for VR 学习(8): Unity Shader概述
Unity 5.4大赞:HTC Vive经典The lab渲染器开源的更多相关文章
- Unity正式发布首个“实验性”VR编辑器,支持HTC Vive和Oculus Rift
Unity今天正式推出"实验性"VR编辑器.据悉,EditorVR是Unity游戏引擎中的一个组件,可让开发者在虚拟现实环境中开发游戏.为何要称之为"实验性"? ...
- unity htc vive使用
本文介绍如何在Unity中使用HTC vive设备,当前VR作为市场比较火热的热点,HTC VIVE设备作为三大供应商之一,许多人购买了该设备,却不知道如何使用,本文通过图文并茂的形式,进行手把手的讲 ...
- 用 Unity 和 HTC Vive 实现高级 VR 机制(1)
原文:Advanced VR Mechanics With Unity and the HTC Vive Part 1 作者:Eric Van de Kerckhove 译者:kmyhy VR 从来没 ...
- HTC vive VR设备软硬件安装+运行unity开发的VR程序
总结在HTC vive VR开发过程中的HTC vive的安装调试 1.首先确保电脑的配置满足要求: 进入官网,测试电脑是否满足要求 链接:https://www.vive.com/us/produc ...
- 用Unity开发HTC VIVE——手柄控制篇
写这篇文章的原因主要是因为现在虚拟现实非常的火爆但目前主流的虚拟现实设备(HTC VIVE)的教程却少的可怜,这个我深有体会.所以,我想将我平时开发中遇到的问题以及解决方法记录下来,分享给大家,若其中 ...
- Unity的HTC VIVE SDK研究(手柄按键功能的研究,比较详细)
http://blog.csdn.net/ystistheking/article/details/51553237 想交流的朋友我们可以微博互粉,我的微博黑石铸造厂厂长 ,缺粉丝啊 .....求粉求 ...
- 如何低成本的打造HTC Vive虚拟演播室直播MR视频?
http://m.toutiao.com/i6298923859378700802/?tt_from=weixin&utm_campaign=client_share&from=gro ...
- 如何透过HTC Vive拍摄Mixed Reality (混合现实)影片
https://www.vive.com/cn/forum/1706?extra=page%3D1 也许你是一位开发者,想为自己的HTC Vive游戏制作酷炫的宣传片:或者你是游戏主播,想为观众带来高 ...
- HTC Vive小场地与大场景空间的解决方案
本文章由cartzhang编写,转载请注明出处. 所有权利保留. 文章链接:http://blog.csdn.net/cartzhang/article/details/52780621 作者:car ...
随机推荐
- Laravel入门笔记
Laravel 是一款简洁,优雅的一款框架,可以说是入门TP后的第二款可以选择的框架. 目录部分: app -> 自己写的代码 http -> Controller -> 控制器 b ...
- UML图示与代码对照
本文转载:http://www.cnblogs.com/iamlilinfeng/archive/2012/08/29/2662740.html 一.类继承 1 public class Father ...
- 关于Struts2的客户端校验的FreeMarker template error!
把<s:form action="login" namespace="/" validate="true" >改为 <s: ...
- 【转】adns解析库——域名解析实例(C++、linux)
转自:http://blog.csdn.net/fty8788/article/details/7480334 adns是一个开源的dns解析库 官方文档:http://www.chiark.gree ...
- C语言用static限制函数以及全局变量的作用域
今天才发现这个东西! C语言中没有public private之类的东西. 如果一个函数或者一个全局变量只想在一个.c文件中使用,可以在前面加上static! 以前我还傻傻的每个.c文件中的函数都加一 ...
- 设计模式六大原则——合成/聚合复用原则(CARP)
1.定义 简而言之,对于合成/聚合复用原则的定义就是:要尽量使用合成和聚合,尽量不要使用继承. 2.释义 为什么"要尽量使用合成和聚合.尽量不要使用继承"呢? 这是由于: 第一,继 ...
- cocos2dx3.2 画图方法小修改之 C++ final学习
今天用cocos2dx 3.2版本号学习画图功能, 于是我重载Node 的draw方法.发现报错, watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQ ...
- delphi label1 文字在窗体上水平来回移动
//文字在窗体上水平来回移动 procedure TForm1.Timer1Timer(Sender: TObject);{ Timer1.Interval:=10;}begin if label1 ...
- ListView添加项目带序列
ListView添加项目带序列 function AddSelItems(listview1:TListView;ListView2:TListView):Boolean;var s: st ...
- IOC(依赖注入)原理
IoC,直观地讲,就是容器控制程序之间的关系,而非传统实现中,由程序代码直接操控.这也就是所谓"控制反转"的概念所在.控制权由应用代码中转到了外部容器,控制权的转移是所谓反转.Io ...