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.