El Frame Debugger le permite a usted congelar la reproducción de un juego que se está ejecutando en un frame en particular y ver los draw calls (llamados de dibujos) individuales que usted está utilizando para renderizar ese frame. Al igual que listar los drawcalls, el depurador también le permite a usted pasar a través de ellos uno por uno para que usted pueda ver en gran de detalle cómo la escena es construida desde sus elementos gráficos.
The Frame Debugger window (menu: Window > Analysis > Frame Debugger) shows the drawcall information and lets you control the “playback” of the frame under construction.
La lista principal muestra la secuencia de drawcalls (y otros eventos como framebuffer clear) en la forma de una jerarquía que identifica de dónde fueron originados. El panel a la derecha de la lista da detalles adicionales acera del drawcall tal como detalles de geometría y el shader utilizado para renderizar.
Al hacer click en un item de la lista, se muestra la escena (en el Game View) como aparece e incluye ese drawcall. Los botones de flecha izquierda y derecha en la barra de herramientas se mueven hacia adelante y hacia atrás en la lista en un solo paso y usted también puede utilizar las teclas de las flechas para el mismo efecto. Adicionalmente, el deslizador en la parte superior de la ventana le permite a usted pasar rápidamente a través de los drawcalls para ubicar un item de interés rápidamente. Dónde un drawcall corresponde a la geometría de un GameObject, ese objeto será resaltado en el panel principal de jerarquía para ayudar a su identificación.
Si una renderización sucede en una RenderTexture en el draw call seleccionado, entonces el contenido de esa render texture se muestra en el Game View. Esto es útil para inspeccionar cómo varios objetivos de renderización afuera de la pantalla son construidos, por ejemplo el diffuse g-buffer en un deferred shading:
O mirar cómo los shadow maps son renderizados:
To use Frame Debugger remotely, the player has to support multithreaded rendering (for example, WebGL doesn’t support it, thus frame debugger cannot be run on it), most of the Unity platforms support it, secondly you have to check ‘Development Build’ when building.
Recomendaciones para plataformas Desktop: asegúrese de marcar la opción ‘Run In Background’ antes de construir, de lo contrario, cuando usted conecte el Frame Debugger al reproductor, este no va a reflejar cambios de renderizado hasta que tenga foco, asumiendo que usted está ejecutando ambos el Editor y el reproductor en la misma maquina, cuando usted controle el Frame Debugger en el Editor, usted tomara el foco del reproductor.
Inicio rápido:
En la parte superior del panel de información hay una barra de herramientas que le permite aislar los canales rojo, verde, azul y alpha para el estado actual del Game View. Similarmente, usted puede aislar áreas de la vista de acuerdo a los niveles del brillo utilizando el deslizador Levels a la derecha de estos botones de los canales. Estos son solamente habilitados cuando se renderice a una RenderTexture.
Cuando renderice en varios objetivos render a la vez usted puede seleccionar cuál mostrar en el game view. Mostrados aquí son diffuse, specular, normals y emission/indirect lighting buffers en el modo 5.0 deferred rendering, respectivamente:
Adicionalmente, usted puede ver el contenido del depth buffer al escoger “Depth” del desplegable:
Al isolar el canal alpha de la render texture, usted puede ver occlusion (almacenado en RT0 alpha) y smothness (almacenado en RT1 alpha) del deferred g-buffer:
La iluminación de emisión y ambiente/indirecta en esta escena es bastante oscura; podemos hacerla más visible cambiando el deslizador de Niveles:
Para Draw calls, el Frame Debugger también puede mostrar valores de propiedad del shader que son utilizados. Oprima en la pestaña “Shader Properties” para mostrarlas:
Para cada propiedad, el valor se muestra, al igual en qué fases fue utilizado (vertex, fragment, geometría, hull, dominio). Tenga en cuenta que cuando utilice OpenGL (e.g. En un Mac), todas las propiedades shader se consideran parte de la fase del vertex shader, debido a cómo funcionan los shaders GLSL.
En el editor, los thumbnails para las texturas se muestran también, y oprimiendo en ellas, se resalta las texturas en la ventana del proyecto.
Usted también puede utilizar herramientas externas para depurar el rendering. La integración del Editor existe para ejecutar fácilmente el RenderDoc para inspeccionar la Escena o Game View en el Editor.
Usted también puede construir un standalone player y ejecutarlo en cualquiera de los siguientes:
Cuando haya hecho esto, capture un frame del rendering, luego pase a través de los draw calls y otros eventos de de rendering para ver lo qué sucede. Esto es un enfoque muy poderoso ya que las herramientas le pueden proporcionar a usted mucha información para profundizar.