最近一直在做steamVR的一些项目的开发,遇到了挺多的一些问题,一些基本的,能通过看demo或者随便百度下就能解决的,也就不聊了,其中有几个个人比较奇怪的问题在着提一下,刚开始遇到这些问题时,真的是一头雾水,完全没有头绪,步骤从何下手。但是经过长时间的尝试,寻找可能性原因,排除猜想,缩小范围,最后终于都找到原因了。先写几个现在遇到的,以后再有,再添加。

 

1.模型在VR中会偏灰,颜色不正常

在VR中,有时候会发现,场景会偏灰色,颜色光照等不太正常,那可能是Color Space设置和你的材质不匹配,Color Space在Palyer Setting/Other Setting/Rendering/Color Space,它有两个选项:Gamma和Linear,VR导入时会有推荐设置,如果接受这边的Color Space自动修改成Linear,Linear是用多张贴图(主贴图,光照贴图,法线贴图等,不太懂,听美术说的)来呈现材质效果的,相对来说,这种材质,在VR中效果会好很多,但是很多模型不是这种模式的,这时在VR中渲染出来的模型就会偏灰,改为Gamma即可。但是如果时间充足,美术技术达标的情况下,还是选用Linear,效果会更好。

 

2.spotLight在编辑器中运行时正常,导出时没有手电筒的光晕了

昨天在编辑器改完bug,运行项目没有啥问题,导出在平台上连服务器跑了一下,发现SpotLight的手电筒光晕没了,就只能看到一墙壁的光,有的时候还到处是光。。。。。今天想了一天,做了一天的测试,在排除了一个个不可能之后终于是找到了问题所在,其实这个问题应该不属于VR,应该都不属于软件。。。。。。在Light组件中有一个Render Mode属性,渲染属性,一般是默认是Auto 自动选择,还有Important和NotImportant两个选项,下面的图是官网API文档给出的解释

unity 把图片变成灰色 unity中场景变灰色_VR

自动就是根据你运行的机器的性能啥的,软件自动选取,Important是采用逐像素的方式,NotImportant是不采用逐像素的方式,也就是用逐顶点渲染的方式。逐顶点光照,简单地说就是先对每个顶点计算一次光照颜色,然后在通过顶点在多边形所覆盖的区域对像素颜色进行线形插值,在某些情况下会产生明显的棱角现象 .。现实逐顶点光照的计算量往往要小于逐像素光照 。但是逐像素光照会更加精细,看起来也更舒服。具体的我也不太精通,有兴趣的可以去查查资料。我们需要手电筒光一样的明显光圈,当然得选精细的Important,直接强制进行逐像素光照计算。这也是我之前说的,不属于软件问题的原因,选Auto,并不一定错,你的电脑够好的话应该会默认是逐像素的(猜测的,没试过,毕竟公司电脑真心不咋的)。

 

 

 

 

这些只是我这个菜鸟的一些看法,写的不对或者不好的地方,希望各位大佬勿喷,也欢迎能帮我指出来。谢谢。工作中有发现新的问题再更新。