En Visual Studio 2012, Microsoft ha introducido un Depurador de Gráficos, usted lo puede utilizar para capturar un frame de plataformas como el Editor de Unity, Windows Standalone o Windows Store Apps.
Se recomienda utilizar Visual Studio 2013, ya que contiene varios arreglos para el Depurador de Gráficos.
Nota: El Editor de Unity contiene varias ventanas hijas dentro, esto podría causar que el Depurador de Gráficos capture un frame de la ventana incorrecta, para asegurar que la ventana correcta será capturada, marque la pestaña ‘Maximize on Play’, y presione el botón de Play antes de capturar, pero incluso ahí no hay garantía que la ventana correcta será captura, esta es la razón por la cual no se recomienda usar el Editor de Unity para capturar un frame.
Nota: Los Frames solo se pueden capturar si Unity está ejecutándose bajo DirectX 11, usted puede seleccionar DirectX 11 de los Player Settings (PC, Mac & LinuxStandalone) -> Other Settings.
Pasos para capturar el frame desde el Editor de Unity o Windows Standalone:
Pasos para depurar el DirectX 11 shader:
Su shader (Sombreador) debería verse así:
Shader "Custom/NewShader" {
Properties {
_MainTex ("Base (RGB)", 2D) = "white" {}
}
SubShader {
Tags { "RenderType"="Opaque" }
LOD 200
CGPROGRAM
#pragma surface surf Lambert
#pragma enable_d3d11_debug_symbols
sampler2D _MainTex;
struct Input {
float2 uv_MainTex;
};
void surf (Input IN, inout SurfaceOutput o) {
half4 c = tex2D (_MainTex, IN.uv_MainTex);
o.Albedo = c.rgb;
o.Alpha = c.a;
}
ENDCG
}
FallBack "Diffuse"
}
Si todo se hace correctamente, debe ver el siguiente frame capturado, haga clic derecho y seleccione Pixel History y seleccione el píxel de un objeto que tenga asignado su shader personalizado.
Haga clic en el botón play junto al Vertex Shader (rodeado en rojo en la captura de pantalla anterior), debe poder depurar el vertex shader.
Para Windows Store Apps, es un poco más fácil, ya que no necesita crear un proyecto dummy de Visual Studio, el proyecto ya está creado por Unity.
Los pasos para capturar el frame y la depuración de shader son iguales para el Editor de Unity o para Windows Standalone.
En el Editor de Unity, usted puede también usar RenderDoc para depurar los shaders, al capturar la escena dentro del editor y depurar la herramienta standalone.