I would actually just recommend diving into THREE.js.
It's truly one of the best documented and most "obvious" codebases out there. If all you've got is a solid understanding of JS, you can just start hacking up something nontrivial on THREE.js and you'll come out of it knowing most of WebGL.
And in doing so you'll eventually realize that even WebGL itself is quite "high level" -- there is a _huge_ amount of abstraction that you take for granted in the browser.
> you can just start hacking up something nontrivial on THREE.js and you'll come out of it knowing most of WebGL.
Sorry, but this is wildly untrue. I don't really know where to begin, but you wouldn't even need to touch shaders to accomplish that, so no, you wouldn't know most of WebGL. THREE.js is very much a thick abstraction over WebGL.
> And in doing so you'll eventually realize that even WebGL itself is quite "high level" -- there is a _huge_ amount of abstraction that you take for granted in the browser.
Also not accurate. WebGL is a -very- thin wrapper over OpenGL ES, which is itself as low level as you can go without stepping into something like Vulkan. There's almost no abstraction.
This is true. From experience I can say that the core experience of using WebGL in JS is very similar to using OpenGL ES in C.
That being said, WebGL and the browser do a little more work for you than the GL API does in C, things you'd otherwise need a helper library for. In particular, there's no shared library or header file hell, context creation is easy, image import is easy, and JS will handle memory allocation for you. It eliminates a lot of the annoying stuff needed to get to writing the actual GL code, though you still have to go through the state machine hell of GL itself :)
While true, only beginners actually use raw GL calls, even in C.
Anyone with experience quickly builds up their mini-engine to handle loading shaders, images, fonts, models, handling everything together for each model, in a mini scene graph way, handling driver and GPU specific bugs...
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:
I'd argue that THREE.js is more of a graphics engine by itself. It makes a lot of choices for you (typical forward renderer, classic wasteful cubemap shadow map rather than doing any frustum culling). People confuse it with a "light-weight wrapper" probably because of the generic name and ".js" suffix but don't get confused. You'll learn as much about WebGL as you will using Unity.
I really enjoy THREE.js, but I don't think it gives you the same level of understanding of WebGL that this link does. This is like taking a course on how OpenGL works in the browser.
That being said, the amount of code needed to make a hello world in WebGL2, not including learning GLSL, is a bit daunting, and if you showed this tutorial to me first, I might not have gotten interested in doing any 3D coding in the browser. The Three.js WebGL abstraction library makes the task much less daunting and gives you some force multipliers that WebGL does not, it makes a lot of assumptions for you, and still gives you a fair amount of control over the action.
The person checking out the book is a program, so they aren't the brightest.
They check out the book called "how to go to facebook.com". Then they check out "how to type a password". Then they check out "Typing '1234' for Dummies".
I bet you'll never figure out how to get into their facebook account.
If the yardstick for Mozilla's mission is how fast they can make a browser, why do we need Mozilla? There are arguably better equipped entities doing that.
Their whole mission is to have better judgement and management, advocating for the user instead of a corporation (or foundation). So it sounds like you're in agreement with the GP that Mozilla's decay is not news.
> If the yardstick for Mozilla's mission is how fast they can make a browser, why do we need Mozilla? There are arguably better equipped entities doing that.
Are there? I see no evidence to support that assertion and a lot of evidence against it.
Market share matters. The last vote at the W3C about DRM video being the most recent example.
I mean, I probably qualify as reasonably savvy, and I have used exactly 4 browsers in the last 10 years: Firefox, Chrome, IE/Edge, and Safari.
> I mean, I probably qualify as reasonably savvy, and I have used exactly 4 browsers in the last 10 years: Firefox, Chrome, IE/Edge, and Safari.
I probably don't count as savvy, but my browser experience over the last 10 years has been a somewhat broader list. Having started with Firefox at V2, I switched (around '06) to my primary browser being Opera, with SeaMonkey as a secondary - especially when I want IRC; Firefox, K-Meleon, and Links are all in the background ready to go. I also used QtWeb for a brief period.
When Opera switched to being a Chrome clone, I jumped ship. SeaMonkey didn't provide the ease-of-use I wanted for an everyday browser, so I went back to Firefox. I'm now more often on Pale Moon.
>>The last vote at the W3C about DRM video being the most recent example.
Which Mozilla enthusiastically and Fully supported Google, MS, and Netflix in support of DRM.
Their fake unwillingness from 2014 was about as transparent as netflix's where by netflix claims it is "all the MPAA/Studios" why at the same time closing down all Open Access API's, and Locking down all their own wholey owned content behind DRM
This is not the first time user privacy has been invaded on Firefox or by Mozilla and it will not be the last
The fact that these Data Reporting features, and allowing FF to run "studies" on you is a OPT-OUT setting not a OPT-IN setting is all the proof I need that the Mozilla of old is long dead.. A Privacy respecting company would make such things OPT-IN, not OPT-OUT..
That is with out even getting into the whole Orwellian Ministry of Truth they are creating, or about 100 other things
I think the the term “non-profit” is more about how an organization spends the money, rather than how they make it. Non profits and charities definitely bring in money through channels other than donations...
I merely challenge the notion that a nonprofit -- which proudly tumpets its benevolence and non-profitness -- should get a free pass for covertly installing advertising arrangements, just because they need to "make money".
Their charter and marketing is all about defending the internet from the companies doing shady things to make money, so they can't have their cake and eat it.
There is a difference between a non-profit and a non-for-profit (most health insurance companies are the later; go try and figure that out).
Firefox gets most of its donations from corporate sponsors. That's why the default search and switched back and fourth between Yahoo and Google; it's all about the amount of money they contribute for that. I'm not sure, but Pocket might be another example.
User contributions are actually pretty low. They don't go out and request them though like NPR or Wikipedia.
You're confusing mozilla foundation and mozilla corporation here. The default search with google and yahoo is not donations for the foundation but a commercial contract with the corporation.
I'm not sure mozilla even gets a significant amount of donations compared to their commercial contracts.
That would be a valid complaint if this was an advertising arrangment, rather than one where if you watch the TV show, you learn that you can activate a firefox addon to participate in an small AR game that changes your normal web experience into a Mr Robot style web experience for the duration.
The addon itself does not advertise for Mr. Robot, Mr. Robot advertises for this addon.
Sure, but why install it on random people's installs, even in some sort of disabled state? Viewers should be called on to install it themselves. I'd be cool with, say, an about: page that makes it easy for users to discover it, but pre-installing the addon in people's browser's seems a bit much.
I'd charitably call it "Augmented Memory", but it's definitely not "Augmented Reality".
And I'd hardly call it a game, just a parasitic advertising gimmick that slows and bloats the browser. It just injects a bunch of JavaScript code, DOM elements and CSS effects into every tab.
There's really no game there, and it's pretentious to call it an "Alternate Reality Game", which is defined as "intense player involvement with a story that takes place in real time and evolves according to players' responses":
This extension just wraps all occurrences of a set of keywords (now including "fuck") in a span with some css animations and a tooltip that links to their web page.
But in terms of memory usage, CPU and battery consumption, it's not that small, either.
It injects a blob of CSS and some JavaScript into every tab, then it does a regular expression search of every text node on each page, filtering out everything but paragraphs, then for each occurrence of a keyword in the text, it creates a new text node to split the current text node, then inserts a new span element between them, containing its own text node, then it creates an additional tooltip element containing six text nodes, five br elements, and one anchor element linking to https://support.mozilla.org/kb/lookingglass , and it also configures css class names to associate all those new nodes it created with the blob of css styling and animations that it injected.
This extension isn't the best example of their technology for Mozilla to be promoting and distributing, if they're really serious about delivering a fast memory efficient browser.
While I agree with you on that, your previous comment was simply wrong. Non-profits are very much allowed to just "take money" (legal restrictions aside, but for-profit businesses also have legal restrictions). They're not allowed to take that money and distribute it to shareholders as profit.
Non-profit orgs are such due to legal designations that give them favorable tax treatment. In return they promise to organize and operate only to fulfill a charitable mission. The mission of Mr. Robot (content sniffing) has nothing to do with the charitable mission of Mozilla, "Our mission is to ensure the Internet is a global public resource, open and accessible to all."
The charitable mission of mozilla ended with their deal with google in 2004.
Let's not forget that mozilla had frozen 15 millions dollars because of the IRS audit related to this deal and mozilla status, ending up settling outside of court for 1.5 millions.
This is a very common misconception about non-profits that is not true.
The details depend on local laws, but generally a non-profit only means that the owner of the non-profit can't take the all of the actual profit (money) directly out of the non-profit via dividends.
Things like non-profits must be focused public good or they can't pay high (or any) salaries are urban legends that have no basis in reality.
That's not a misconception I share. I understand Mozilla can and should make money to further its mission.
But unlike a for-profit, making money isn't the mission of Mozilla. So needing to make money can't be used as a justification for doing naughty things against the public good.
Making money may not be the mission of the mozilla foundation, but it is the mission of the mozilla corporation fully owned by the mozilla foundation.
And money it makes, in the hundred of millions, for serving its users to the worst known worldwide privacy offender, collecting and profiling user to sell advertising.
The "good" non profit charity foundation is governing the "evil" for profit corporation giving away users to the worst opponent of the mission of the charity. Quite a contradiction in this.
They also have limits on political speech. The IRS gives them breaks. One of the big misunderstandings/myths is that a church cannot support a political candidate.
Some people cry "free speech violation" but they can endorse a candidate, they just need to give up their tax privileges. This is why the ACLU is split into two parts. One you can donate to and get tax dedications for, but the other is their lobbying arm, and therefore cannot allow tax deductions for their donors.
"non-profit" isn't a magical incantation that means they can run with a revenue deficit forever though. They have expenses and there has to be enough revenue coming in to cover those expenses, or they will go out of business. That's true for any business, whether it's for-profit or non-profit.
Mozilla foundation (the non profit) set up Mozilla Corporation (the for profit raking in hundreds of millions of dollars) when the IRS investigated the foundation about tax fraud.