Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Learning WebGL and three.js [closed]

Tags:

three.js

webgl

People also ask

Should I learn WebGL or three js?

If you have plenty time, you could learn both, but note that WebGL is much lower level than Three. js. For a first 3d project, experts suggest using a library like Three. js in order to get used to the terms and the general 3d model.

Is it worth learning Three js?

If you want to find work, learn an engine. You really don't need to know how to work in raw webGL to use three. js (not at all really), and few jobs on the contract scene seem to require an in-depth knowledge of webGL itself.

How hard is WebGL?

It's very difficult at the beginning, but later you'll get the grasp of the pipeline and way of thinking. It takes time (1-2 months to learn only basics), but be persistent.


Since you have big ambitions, you have to invest the time to learn the fundamentals. It is not a matter of what you learn first -- you can learn them simultaneously if you want to. (That's what I did.)

This means that you need to understand:

  1. WebGL concepts
  2. Three.js
  3. The underlying mathematical concepts

Three.js. Three.js does an excellent job of abstracting away many of the details of WebGL, so personally, I'd suggest using Three.js for your project. But remember, Three.js is in alpha, and it is changing frequently, so you have to be prepared for that. Most people learn Three.js by studying the examples. Avoid outdated books and tutorials, and avoid examples from the net that link to old versions of the library.

WebGL. If you use Three.js, you don't need to know how to program in WebGL, you just need to understand the WebGL concepts. That means, that you just need to be able to read someone else's WebGL code and understand what you read. That is a lot easier than being expected to write a WebGL program yourself from scratch. You can learn the WebGL concepts sufficiently well using any of the tutorials on the net, such as the beginner's tutorial at WebGLFundamentals.org and Learning WebGL.

Math. Again, you at least need to understand the concepts. Three good books are:

  1. 3D Math Primer for Graphics and Game Development by Fletcher Dunn and Ian Parberry

  2. Essential Mathematics for Games and Interactive Applications: A Programmer’s Guide by James M. Van Verth and Lars M. Bishop

  3. Mathematics for 3D Game Programming and Computer Graphics by Eric Lengyel


There is a very good online course - Interactive 3D Graphics at https://www.udacity.com/course/cs291 on THREE.js. This course includes assignments also to get hands-on experience. It covers all the basic concepts of Three.js and Computer Graphics


My personal thoughts are the following:

  • If you have plenty time, you could learn both, but note that WebGL is much lower level than Three.js.
  • For a first 3d project, experts suggest using a library like Three.js in order to get used to the terms and the general 3d model.

Whichever direction you choose to go, I suggest you learn/polish up on your linear algebra skills. Then go ahead and learn or polish up your understanding about MVP dimensions (Model View Projection). Three.JS can abstract much of that away, but I think it's key that one understands those concepts well before getting serious about any 3D development.

I wrote an introductory article about MVP when I was first learning 3D programming with OpenGL. I realized that until I was able to explain what those transformation matrices are, and how they relate to the various dimensions/spaces, I really didn't know any 3D programming at all, though I could render objects to the screen.

Since your goal is to create games, I think you'll benefit much from learning some raw WebGL first, even if you end up using a framework like Three.js to help you write your code later.


Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!