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来在屏幕上跟随另一个相机看到的一个物体,那么可以先将这个物体转换成屏幕坐标,再将屏幕坐标转换成另一个相机下的世界坐标。

  • 相关阅读:
    利用dockerfile定制镜像
    发布Docker 镜像到dockerhub
    Docker 停止容器
    133. Clone Graph
    132. Palindrome Partitioning II
    131. Palindrome Partitioning
    130. Surrounded Regions
    129. Sum Root to Leaf Numbers
    128. Longest Consecutive Sequence
    127. Word Ladder
  • 原文地址:https://www.cnblogs.com/xiaoahui/p/11027393.html
Copyright © 2011-2022 走看看