Как загрузить внешний шейдер в javascript? - PullRequest
1 голос
/ 12 декабря 2011

Я хочу загрузить фрагментный шейдер из внешнего файла, но он не работает.(после загрузки шейдера окно предупреждения не появляется.)

var fs = document.createElement('script');
fs.setAttribute("type","x-shader/x-fragment");
fs.setAttribute("src", "shader.fs");

fs.onload = function() {alert('done');}
document.getElementsByTagName("head")[0].appendChild(fs);

1 Ответ

4 голосов
/ 12 декабря 2011

Хранение шейдера в теге скрипта - это просто соглашение, которое было выбрано несколькими учебниками по WebGL, чтобы дать шейдеру простое место для «жизни». Его не нужно помещать в тег скрипта для работы.

XHR, вероятно, самый простой способ снять его.

var shaderXhr = new XMLHttpRequest();
shaderXhr.open("GET", "shader.fs", true);
shaderXhr.onload = function() {
    yourShaderParsingRoutine(this.responseText);
};
shaderXhr.send(null);
...