occlusion culling.docx

Upload: jonathan-goncalves

Post on 06-Jul-2018

240 views

Category:

Documents


0 download

TRANSCRIPT

  • 8/17/2019 Occlusion Culling.docx

    1/12

    La Ventana de La Eliminación

    Selectiva de Oclusión(Occlusion

    Culling Window)La eliminación selectiva de oclusión (Occlusion Culling) es una característica que

    desactiva la renderización de objetos cuando estos no están vistos por la cámara ya

    que son oscurecidos por otros objetos. sto no sucede automáticamente en las

    grá!cas computacionales "# ya que la mayoría del tiempo los objetos más lejos de la

    cámara son dibujados primeros y los objetos más cercanos son dibujados encima de

    ellos (esto se llama $overdra%&). La oclusión selectiva(Occlusion Culling) es di'erente de

    rustum Culling. rustum Culling solamente desactiva los renderizadores de objetos

    que están a'uera del área visual de la cámara pero no desactiva nada oculto por unoverdra%. enga en cuanta que cuando utilice la Oclusión *electiva+ usted todavía se

    bene!ciará de rustum Culling.

    A maze-like indoor level. This normal scene view shows all visible Game Objects.

  • 8/17/2019 Occlusion Culling.docx

    2/12

    Regular frustum culling only renders objects within the cameras view. This is automatic

    and always ha!!ens.

    Occlusion culling removes additional objects from within the camera rendering work if

    they are entirely obscured by nearer objects.

    l proceso de la eliminación selectiva de oclusión(occlusion culling) va a ir a trav,s de

    la escena usando una cámara virtual para construir una jerarquía de un conjunto deobjetos potencialmente visibles. sta in'ormación es usada en el tiempo de ejecución

  • 8/17/2019 Occlusion Culling.docx

    3/12

    por cada cámara para identi!car qu, es visible y qu, no es. quipado con esta

    in'ormación+ -nity asegurará que solo los objetos visibles se van a enviar para ser

    renderizados. sto reduce el nmero de las llamadas de dibujo(dra% calls) y aumenta

    el rendimiento del juego.

    La in'ormación para la eliminación selectiva de oclusión está compuesta por c,lulas.

    Cada c,lula es una subdivisión de la totalidad del volumen de delimitación de la

    escena. /ás especí!camente las c,lulas 'orman un árbol binario. La eliminación

    *electiva de Oclusión usa dos árboles+ uno para 0ie% Cells(Objetos estáticos) y la otra

    para arget Cells(Objetos en /ovimiento).Las 0ie% Cells se asignan a una lista de

    índices que de!nen los objetos estáticos visibles que da un resultado de eliminación

    selectiva más preciso para objetos estáticos.

    s importante tener esto en cuenta cuando cree sus objetos porque usted necesita un

    buen balance entre el tama1o de sus objetos y el tama1o de sus c,lulas. 2dealmente+usted no debería tener c,lulas que son muy peque1as en comparación con sus

    objetos+ pero igualmente usted no debería tener objetos que cubren muc3as c,lulas.

    -sted a veces puede mejorar la eliminación selectiva rompiendo objetos grandes en

    peque1as piezas. 4o obstante+ usted todavía puede 'usionar objetos peque1os juntos

    para reducir las llamadas de dibujo(dra% calls) y+ siempre que todos ellos pertenezcan

    a la misma c,lula+ la eliminación selectiva de oclusión no se verá a'ectada. La colección

    de c,lulas y la in'ormación de visibilidad que determina qu, c,lulas son visibles de

    cualquier otra c,lula es conocida como 50* (Potentially Visible Set).

    6ou can use t3e 7overdra%8 scene rendering mode to see t3e amount o' overdra% t3at

    is occuring+ and t3e stats in'ormation pane in t3e game vie% to see t3e amount o'

    triangles+ verts+ and batc3es t3at are being rendered. 9elo% is a comparison o' t3ese

    be'ore and a'ter applying occlusion culling.

     "otice in the Overdraw scene view# a high density of overdraw as many rooms beyond

    the visible walls are rendered. These arent visible in the game view# but nonetheless

    time is being taken to render them.

  • 8/17/2019 Occlusion Culling.docx

    4/12

    $ith occlusion culling a!!lied# the distant rooms are not rendered# the overdraw is

    much less dense# and the number of triangles and batches being rendered has dro!!ed

    dramatically# without any change to how the game view looks.

    Ajustando la Eliminación Selectiva de Oclusión

    Con el !n de utilizar la liminación *electiva de Oclusión+ 3ay un ajuste manual

    involucrado. 5rimero+ su nivel de geometría debe ser roto en piezas con un tama1o

    sensato. ambi,n es til dise1ar sus niveles en áreas peque1as bien de!nidas+ que

    están ocluidos entre sí por grandes objetos tales como paredes+ edi!cios+ etc. La idea

    aquí es que cada mes3 individual sera prendido o apagado basado en la in'ormación

    de oclusión. ntonces si usted tiene un objeto que contiene todos los muebles de su

    cuarto+ entonces+ o todo o nada+ del conjunto de muebles será eliminado. sto no

    tiene casi tanto sentido como 3acer que cada pieza de mueble sea su propio mes3+

    entonces cada uno individualmente puede ser eliminado basado el punto de vista dela cámara.

    -sted necesita etiquetar todos los objetos de escena que usted quiere que sean parte

    de la oclusión a Occluder Staticen el Inspector. La manera más rápida de 3acer esto

    es multi:seleccionar los objetos que usted quiere que est,n incluidos en calculaciones

    de oclusión+ y marcarlos como Occluder Static y Occludee Static.

    %arcando un Objeto !ara Oclusi&n

  • 8/17/2019 Occlusion Culling.docx

    5/12

    Cuándo debería utilizar Occludee Static; Los objetos transparentes que no ocluyen+

    así como objetos peque1os que di'ícilmente ocluyan otras cosas+ deberían ser

    marcados como Occludees+ pero no Occluders. sto signi!ca que serán considerados

    en oclusión por otros objetos+ pero no serán considerados como oclusores(occluders)

    ellos mismos+ lo que ayudará a reducir la computación.

    La Ventana de La Eliminación Selectiva de

    Oclusión(Occlusion Culling Window)

    5ara más operaciones que tratan con la liminación *electiva de Oclusión(Occlusion

    Culling)+ usted debería utilizar la Occlusion Culling Occlusion

    Culling)

    n la 0entana de la liminación *electiva de Oclusión(Occlusion Culling enderer seleccionado en su escena+ usted puede modi!car las banderas

    estáticas(*tatic ?ags) relevantes.

    Occlusion 'ulling $indow !ara un

    %esh Renderer 

    *i usted está en la pesta1a Object del Occlusion Culling Window y tiene

    una Occlusion =rea seleccionada+ usted puede trabajar con propiedades de

    Occlusion=rea relevantes (para más detalles vaya a la sección Occlusion =rea)

    http://docs.unity3d.com/es/current/Manual/class-OcclusionArea.htmlhttp://docs.unity3d.com/es/current/Manual/class-MeshRenderer.htmlhttp://docs.unity3d.com/es/current/Manual/class-MeshRenderer.htmlhttp://docs.unity3d.com/es/current/Manual/class-OcclusionArea.htmlhttp://docs.unity3d.com/es/current/Manual/class-OcclusionArea.htmlhttp://docs.unity3d.com/es/current/Manual/class-OcclusionArea.htmlhttp://docs.unity3d.com/es/current/Manual/class-MeshRenderer.htmlhttp://docs.unity3d.com/es/current/Manual/class-MeshRenderer.htmlhttp://docs.unity3d.com/es/current/Manual/class-OcclusionArea.htmlhttp://docs.unity3d.com/es/current/Manual/class-OcclusionArea.htmlhttp://docs.unity3d.com/es/current/Manual/class-OcclusionArea.html

  • 8/17/2019 Occlusion Culling.docx

    6/12

    Occlusion 'ulling $indow !ara la

    Occlusion Area

    TENA EN C!ENTA" 5or de'ecto si usted no crea ningn área de oclusión+ la

    eliminación selectiva de oclusión será aplicada a toda la escena.

    TENA EN C!ENTA" n cualquier momento que su cámara est, a'uera del área de

    oclusión+ la occlusion culling (eliminación selectiva de oclusión) no será aplicada. simportante ajustar sus @reas de Oclusión para cubrir los lugares en dónde la cámara

    puede potencialmente estar+ pero 3acer las áreas demasiado grandes incurre en un

    precio durante el baAing.

    Occlusion Culling (Eliminación Selectiva de

    Oclusión) # $a%e

  • 8/17/2019 Occlusion Culling.docx

    7/12

    (a !esta)a *ake del ins!ector

    Occlusion 'ulling

    3e occlusion culling baAe %indo% 3as a $*et #e'ault 5arameters& button+ %3ic3 allo%s

    you to reset t3e baAe values to -nity8s de'ault values. 3ese are good 'or many typical

    scenes+ 3o%ever you8ll o'ten be able to get better results by adjusting t3e values to suit

    t3e particular contents o' your scene.

    P&o'iedades

    5ropiedades   Función:

    Smallest

    Occluder

    3e size o' t3e smallest object t3at %ill be used to 3ide ot3er

    objects %3en doing occlusion culling. =ny objects smaller t3an

    t3is size %ill never cause objects occluded by t3em to be culled.

    or eBample+ %it3 a value o' + all objects t3at are 3ig3er or %idert3an meters %ill cause 3idden objects be3ind t3em to be culled

    (not rendered+ saving render time). 5icAing a good value 'or t3is

    property is a balance bet%een occlusion accuracy and storage

    size 'or t3e occlusion data.

    Smallest Hole 3is value represents t3e smallest gap bet%een geometry

    t3roug3 %3ic3 t3e camera is supposed to see. 3e value

    represents t3e diameter o' an object t3at could !t t3roug3 t3e

    3ole. 2' your scene 3as very small cracAs t3roug3 %3ic3 t3ecamera s3ould be able to see+ t3e *mallest Dole value must be

  • 8/17/2019 Occlusion Culling.docx

    8/12

    5ropiedades   Función:

    smaller t3an t3e narro%est dimension o' t3e gap.

    Backface

     Tresold

    -nity8s occlusion uses a data size optimization %3ic3 reduces

    unnecessary details by testing bacA'aces. 3e de'ault value o'

    EFF is robust and never removes bacA'aces 'rom t3e dataset. =

    value o' %ould aggressively reduce t3e data based on locations

    %it3 visible bacA'aces. 3e idea is t3at typically+ valid camera

    positions %ould not normally see many bacA'aces : 'or eBample+

    t3e vie% o' t3e underside o' a terrain+ or t3e vie% 'rom %it3in a

    solid object t3at you s3ould not be able to reac3.

  • 8/17/2019 Occlusion Culling.docx

    9/12

    (a !esta)a visualization del ins!ector

    Occlusion 'ulling

    odos los objetos en la escena a'ectan al tama1o del volumen de delimitación

    entonces trate de mantenerlos todos dentro de los límites visibles de la escena.

    Cuando usted está listo de generar la in'ormación de oclusión+ 3aga clicA en el

    botón Bake+ >ecuerde en escoger !emor" #imit en la pesta1a Bake. 0alores menores3ace la generación más rápida y menos precisa+ valores más altos se van a utilizar para

    la calidad de la producción cercana al lanzamiento.

    enga en cuenta que el tiempo necesario para crear los datos de oclusión dependerá

    de los niveles de c,lulas+ el tama1o de los datos y la calidad que usted 3a elegido.

    -nity mostrará el estatus de la generación 50* en la parte in'erior de la ventana

    principal.

    #espu,s de que el procesamiento es 3ec3o+ usted debería ver algunos cubos de color

    en el 0ie% =rea. Las áreas coloreadas son regiones que comparten la mismain'ormación de oclusión.

    Daga clicA en Clear si usted quiere quitar toda la in'ormación pre:calculada para la

    liminación *electiva de Oclusión(Occlusion Culling).

    Occlusion A&ea (Sólo en P&o)5ara aplicar occlussion culling a objetos en movimiento tienes que crear un Occlusion

    $rea y luego modi!car su tama1o para que se ajuste al espacio donde van a estarubicados los objetos en movimientos (por supuesto+ los objetos en movimiento no

  • 8/17/2019 Occlusion Culling.docx

    10/12

    pueden ser marcados como static). 5uedes crear Occlusion =reas agregando el

    componente Occlusion $reaa un Game Object vacío Component->%endering-

    >Occlusion $rea en el men).

    #espu,s de crear el Occlusion $rea+ marca el c3ecAboB Is Target Volume para ocluir

    objetos en movimiento.

    Propiedad: Función:

    Si&e #e!ne el tama1o del Occlusion =rea.

    Center Coloca el centro del Occlusion =rea. 5or de'ecto+ será F+F+F y

    estará localizada en el centro de la caja.

    Is 'iew

    'olume

    #e!ne en dónde puede estar la cámara. 0eri!ca esto para ocluir

    objetos estáticos que están dentro de este Occlusion Area.

    +ro!iedades de Occlusion Area !ara objetos en movimiento.

  • 8/17/2019 Occlusion Culling.docx

    11/12

    Luego de que 3ayas agregado el Occlusion =rea+ necesitas ver cómo se divide la caja

    en celdas. 5ara ver cómo será calculado el Occlusion =rea+ selecciona (dit y enciende

    el botón 'iew en el Occlusion Culling )re*iew )anel.

    Com'&oación de la oclusión gene&ada

    #espu,s de que tu oclusión est, con!gurada+ puedes probarla 3abilitando Occlusion

    Culling  (en el Occlusion Culling )re*iew )anel en el modo 0isualize) y moviendo

    la !ain Camera alrededor de la vista de escena.

    ,l modo Occlusion iew en la vista cene

    = medida que muevas la cámara principal alrededor (si estás o no en el modo 5lay)+

    verás varios objetos des3abilitándose. Lo principal que tienes que estar viendo aquí es

    algn error en los datos de la oclusión. >econocerás un error si ves objetos que de

    repente aparecen en la vista a medida que te mueves. *i esto ocurre+ las opciones que

    tienes para corregir el error son cambiar la resolución (si estás ejecutando con target

    volumes) o mover los objetos alrededor para cubrir el erro. 5ara depurar problemas

    con la oclusión+ puedes mover la cámara principal a la posición problemática para

    revisar sobre el terreno.

  • 8/17/2019 Occlusion Culling.docx

    12/12

    Cuando el procesamiento es realizado+ debes ver algunos cubos de colores en el 0ie%

    =rea. Los cubos azules representan las divisiones por celdas para los Target 'olumes.

    Los cubos blancos representan las divisiones por celdas para los 'iew 'olumes. *i los

    parámetros no estuvieran colocados correctamente+ debes ver algunos objetos que no

    están siendo renderizados. so ocurre porque están por 'uera del campo de visión dela cámara o porque ya está siendo ocluido de la vista porque está siendo tapado por

    otros objetos.

    #espu,s que la oclusión se complete+ si no ves que nada est, siendo ocluido en tu

    escena+ entonces prueba dividiendo tus objetos en pedazos peque1os para que

    puedan ser completamente contenidos dentro de las celdas.

    Occlusion Po&tals2n order to create occlusion primitives %3ic3 are openable and closable at runtime+

    -nity uses Occlusion )ortals.

    Propiedad 

    :  Función:

    Open 2ndicates i' t3e portal is open (scriptable).

    Center Coloca el centro del Occlusion =rea. 5or de'ecto+ será F+F+F y estará

    localizada en el centro de la caja.

    Si&e #e!ne el tama1o del Occlusion =rea.