zoukankan      html  css  js  c++  java
  • Unity 相机

    相机属性

    1.相机的Clear属性:
    Skybo背景会渲染天空盒;
    solid color背景为颜色;
    depth only仅仅深度,相当于优先级;
    Don`t Clear背景是上一帧的图像;
    2.Projection投影方式:
    Perspective透视模式,这里相机看到的和人眼类似,是一个由角度的视野范围,这个模式下相机会出现Filed of View,用于设置相机视野的角度;
    Othographic正交模式,相机渲染平行区域,这里最佳例子是2D游戏的方式,这个模式下会出现Size属性,主要用于设置平行区域的大小。
    3.Clipping Planes裁剪平面:
    这里主要用于设置相机渲染世界区域的前后两个裁剪平面的位置。
    4.Depth相机的深度:
    这里相当于多个相机的渲染优先级,定义谁先渲染。
    5.Viewport Rect:
    用于设置裁剪区域的宽高和在屏幕上的偏移。默认情况下xy为0,hw为1刚好铺满整个屏幕。否者屏幕的其他区域均为黑色。

    6.Rendering Path:
    这里是相机的渲染路径,这里主要和shader一些特殊效果有关。
    7.Target Texture目标贴图:
    如果如果这里添加了Renderer Texture(渲染贴图),那么相机的获得的内容会渲染到Render Texture上,而不是屏幕上,可以新建一个材质,让材质的贴图为Render Texture,就能在使用该材质的物体上看到相机内容,但是还需要另一个相机来渲染世界中的物体到屏幕上,用途如在场景中制作一个电视机来播放场景中另一个地方发生的事。这个材质对UI同样有效,可以用来制作小地图。


    8.Occlusion Culling遮挡剔除:
    主要用于场景中的渲染优化,选择性的不渲染某些物体,提高机器速度。

    9.Allow HDR(Hight Dynamic Range):
    相机将会识别更多的颜色,渲染将更真实。
    10.Allow MSAA:
    允许硬件抗锯齿。
    11.Target Display:

    这个属性可以用来设置分屏幕,实现两个硬件屏幕显示同一个场景中不同的内容。

    相机的操作与应用

    1.遮挡剔除的操作

    要使用遮罩裁剪,首先要打开Occlusion Culling面板,在Windows->Occlusion Culling选项中。
    00
    将需要进行遮罩裁剪的场景物体进行设置,选中右上角Static中的Occluder Static和Occludee Static两个选项。

    01
    随后在Occlusion面板中有三部分内容,分别是Object、Bake和Visualization。

    在Object选项中,我们可以设置遮罩方式,一般使用默认设置即可,如果使用了Occlusion Areas,在场景中如果未对Area进行设置,则默认为Area是整个场景。

    02
    在Bake面板中,有三个选项,分别是Smallest Occluder、Smallest Hole和Backface Threshold。

    Smallest Occluder可以设置能够遮挡其他物体的物体最小尺寸,当物体的长、宽、高中的某个尺寸大于这个最小尺寸时,便可以对后边的物体发生遮挡。

    Smallest Hole可以设置相机通过最小间隙或孔洞可以看到之后的物体,当相机前方的物体间隙或孔洞小于最小值时,其后方的物体将可能不会进行渲染。

    Backface Threshold可以设置物体的背面是否可见,当设置为100时,则所有物体的背面都是可见的,当小于100时,物体的背面将从Occlusion的数据集中删除,一般可以使用默认值100。

    所有设置完成后,即可对当前场景进行渲染,点击Bake选项执行操作。

    03
    当完成Bake操作后,可以选择Visualization面板,在Scene中观察遮罩剔除的效果,如果不满意,可以重新设置选项中的值,并将原始的数据Clear掉,重新Bake即可。

    如果在Bake时你选择了Occlusion Areas,需要对Areas进行大小设置,在设置完成后选择Bake,便会对所选区域进行Bake操作。


    2.相机的渲染层次问题

    一般情况下例如,可以让一个相机渲染UI,另一个相机专注在场景中的操作,UI相机的depth应该大于场景相机的depth,才能正确渲染UI,但是渲染UI的相机的clear tag需要设置为depth Only,否则将看不到场景相机的内容,因为在渲染上,天空和会被当做一个无限大的物体,因此会遮挡场景相机的内容,设置depth Only相当于裁剪掉对天空盒的渲染。
    3.相机的同屏幕分屏问题

    如果要将屏幕分割成左右两个部分,来实现两个玩家同时游戏,或者其他的应用,那么有两个方式:第一个是使用Render Texture,将其作用到左右两个UI上,让两个相机渲染到两个UI上;第二个方式是设置相机viewport Rect的属性,让两个相机分别使用屏幕的两个部分。

    3.相机之间的转换

    相机属于一个物体,但是相机之间的有着屏幕的关联,比如用一个相机的下的UI来在屏幕上跟随另一个相机看到的一个物体,那么可以先将这个物体转换成屏幕坐标,再将屏幕坐标转换成另一个相机下的世界坐标。

  • 相关阅读:
    Daemon Tools手工完全卸载方案
    不要轻易删除/windows/install下文件
    Dumpbin命令的使用
    v4l2 视频捕获
    2瓶4两酒,1个1.5两的酒杯
    n个平面分空间最多可分成多少份
    &#65279导致页面顶部空白一行解决方法
    Base64编码原理分析
    浏览器中“JavaScript解析器”工作原理
    IList转化为DataSet,解决了System.nullable()的问题
  • 原文地址:https://www.cnblogs.com/xiaoahui/p/11027393.html
Copyright © 2011-2022 走看看