Ответ 1
Не уверен, что это возможно, но вы можете проверить библиотеку WebGL Inspector для целей отладки.
Я пытаюсь понять, как имитировать console.log в шейдерах webgl, которые написаны в GLSL. Легко получить сообщения об ошибках, но я не могу получить, как печатать пользовательские сообщения.
В основном я хочу печатать материал в консоли браузера:
<script id="shader-fs1" type="x-shader/x-fragment">
void main(void)
{
//console.log doesn't work here since it GLSL not javascript
gl_FragColor = vec4(0.0, 0.0, 0.0, 1.0);
}
</script>
Любые предложения?
Не уверен, что это возможно, но вы можете проверить библиотеку WebGL Inspector для целей отладки.
После компиляции шейдера вы можете сделать что-то вроде:
if (!gl.getShaderParameter(shader, gl.COMPILE_STATUS)) {
alert(gl.getShaderInfoLog(shader));
}
И он покажет вам любые сообщения об ошибках во время компиляции. GLSL не может отправлять данные обратно в программу в любой другой форме, кроме фреймбуфера/текстуры, поэтому вы можете только проверить, что происходит, проверяя цвета вывода. Инспектор WebGL мог бы мне помочь, как указал Майкл, но не так много для шейдеров, но для общей отладки приложений webGL.
В настоящее время нет известного способа вывода данных из GLSL в WebGL, кроме как через его назначенный результат (цвет экрана/изображения). Если вы этого не сделаете, я предлагаю вам проверить Learning WebGL, а также kick. js может быть вам полезен.