It appears that the issue in my case with IE 11 is not related to webGL, but rather how SceneJS loads OBJ files. The method used by SceneJS seems to be incompatible with IE.
Within obj.js, the load() function invokes
xhr.responseType = "arraybuffer";
, which triggers an error in IE causing the obj file not to load.
An easy fix is to modify the load function in obj.js (around line 75 non minified). Below is the revised function:
function load(url, ok, error) {
var xhr = new XMLHttpRequest();
//xhr.responseType = "arraybuffer"; // changed
//xhr.addEventListener('progress',
//function (event) {
//TODO: Update the task? { type:'progress', loaded:event.loaded, total:event.total }
//}, false);
xhr.addEventListener('load',
function(event) {
if (event.target.response) {
var s = event.target.response;
var uintArray = new Uint8Array(s.split('').map(function(char) {return char.charCodeAt(0);}));
ok(uintArray);
} else {
error('Invalid file [' + url + ']');
}
}, false);
xhr.addEventListener('error',
function() {
error('Couldn\'t load URL [' + url + ']');
}, false);
xhr.open('GET', url, true);
xhr.send(null);
}
})();
By commenting out xhr.responseType = "arraybuffer", it defaults the response type to "text". Then, you must manually convert the downloaded text string into an arraybuffer using the Uint8Array function. This approach seems to resolve the issue across all browsers I have tested.