If you don't need to touch shaders, then you're doing something trivial, like drawing models with a camera.
Once you dip your toes into even something like alpha transparency, or z fighting, depth buffer precision, or texture upload hitches, you start to unpack the shader pipeline under the hood. Which THREE.js makes it super easy to do, because it's much more of a broad library than it is a thick one.
> Also not accurate. WebGL is a -very- thin wrapper over OpenGL ES
Conceptually it seems thin, but it's all a lie. WebGL's most awesome feature is that for simple cases you don't realize how much of a lie this is.
In practice, there is shader recompilation, sentinel rewrites and caching, sync fences, format decodes, a full-blown message queue protocol to a render thread, automatic frame flipping and composition, CPU rendering, and the end of the pipe isn't even necessarily OpenGL at all!
But I agree it appears very thin until you actually look at what's happening (or are forced to due to leaky abstractions).
One of the best resources I've read on this is WebGL Insights:
Once you dip your toes into even something like alpha transparency, or z fighting, depth buffer precision, or texture upload hitches, you start to unpack the shader pipeline under the hood. Which THREE.js makes it super easy to do, because it's much more of a broad library than it is a thick one.
> Also not accurate. WebGL is a -very- thin wrapper over OpenGL ES
Conceptually it seems thin, but it's all a lie. WebGL's most awesome feature is that for simple cases you don't realize how much of a lie this is.
In practice, there is shader recompilation, sentinel rewrites and caching, sync fences, format decodes, a full-blown message queue protocol to a render thread, automatic frame flipping and composition, CPU rendering, and the end of the pipe isn't even necessarily OpenGL at all!
But I agree it appears very thin until you actually look at what's happening (or are forced to due to leaky abstractions).
One of the best resources I've read on this is WebGL Insights:
https://github.com/WebGLInsights/WebGLInsights.github.io/rel...