2013-07-01 18 views
11

Próbuję zrozumieć, jak symulować console.log w shadery webgl, które są napisane w GLSL. Łatwo jest uzyskać komunikaty o błędach, ale nie mogę uzyskać informacji o drukowaniu niestandardowych wiadomości.Jak konsoleta.log w shadery webgl?

Zasadniczo chcę wydrukować rzeczy w konsoli przeglądarki:

<script id="shader-fs1" type="x-shader/x-fragment"> 
    void main(void) 
    { 
    //console.log doesn't work here since it's GLSL not javascript 
    gl_FragColor = vec4(0.0, 0.0, 0.0, 1.0); 
    } 
</script> 

Wszelkie sugestie?

Odpowiedz

1

Obecnie nie ma znanego sposobu na wyprowadzanie danych z GLSL w WebGL, z wyjątkiem rezultatu (kolor ekranu/obrazu). Chyba że już to zrobisz, sugeruję, abyś wypisał Learning WebGL, a także kick.js może ci się przydać.

3

Po kompilacji shadera można zrobić coś takiego:

if (!gl.getShaderParameter(shader, gl.COMPILE_STATUS)) { 
    alert(gl.getShaderInfoLog(shader)); 
} 

I pokaże żadnych komunikatów o błędach podczas kompilacji. GLSL nie może przesłać danych z powrotem do programu w żadnej innej formie, ale do bufora ramki/tekstury, dzięki czemu można tylko sprawdzić, co się dzieje, sprawdzając kolory wyjściowe. Inspektor WebGL może mi się przydać, jak wskazał Michael, ale nie tak dużo dla shaderów, ale dla ogólnego debugowania aplikacji webGL