During this process I've realized that WebGL is basically a giant mess of abstraction layers and hiding underlaying interfaces (a certain level of this is necessary to ensure a minimum level of security... this is from a browser after all) but it makes it impossible to optimize anything at all like I would with OpenGL. Stay away from browsers if you want to do this right. God how I miss working in C.
I can definitely say that if you want to actually do a large-scale LDraw-based world, it MUST be written at a low level, and the shaders, etc. should be written specifically for LDraw (our needs are quite far removed from the needs of your average library intended for games). The only reason I'm still using WebGL is because I want to provide the community with a practical HTML5-and-related-technology based LDraw renderer. I believe that it would be a much better investment of my time to try to add concurrent multi-user editing capability (locks are fun!) to bricksmith (or preferably LDCad if it becomes open-source) than to try to do it in a browser (queue all the vomiting).
Multi-user simultaneous editing is a REAL pain though. When I started working on the project I was aiming for something like Etherpad except for WYSIWYG 3D LDraw. It took months and tons of research to design an efficient multi-user asynchronous editing model which I'm now realizing isn't as scalable as I'd hoped. It's a HUGE amount of work compared to the amount of free time I have, which is why I'm just trying to push the lite version right now.
Best of luck with your project. I would highly recommend giving the parsing portion of LDView and the rendering portion of Bricksmith (even if you're not familiar with Objective-C) a good read.
I can definitely say that if you want to actually do a large-scale LDraw-based world, it MUST be written at a low level, and the shaders, etc. should be written specifically for LDraw (our needs are quite far removed from the needs of your average library intended for games). The only reason I'm still using WebGL is because I want to provide the community with a practical HTML5-and-related-technology based LDraw renderer. I believe that it would be a much better investment of my time to try to add concurrent multi-user editing capability (locks are fun!) to bricksmith (or preferably LDCad if it becomes open-source) than to try to do it in a browser (queue all the vomiting).
Multi-user simultaneous editing is a REAL pain though. When I started working on the project I was aiming for something like Etherpad except for WYSIWYG 3D LDraw. It took months and tons of research to design an efficient multi-user asynchronous editing model which I'm now realizing isn't as scalable as I'd hoped. It's a HUGE amount of work compared to the amount of free time I have, which is why I'm just trying to push the lite version right now.
Best of luck with your project. I would highly recommend giving the parsing portion of LDView and the rendering portion of Bricksmith (even if you're not familiar with Objective-C) a good read.