Life x Interaction Life x Interaction
tutorial

About WebGL Projects

About WebGL Projects

About First Tutorial, We introduce the Learning Making a Project about the WebGL 3D realms.

1. HTML/CSS/Web Knowledge

First, we need to understand basic HTML/CSS. In my opinion, the "Canvas" topics is the most important part of HTML/CSS for Web3D. When you start to "Hello World" project, try to figure out the "Canvas". It's will Help you a lot.

Whe you start to realize how "Canvas" Work, try to draw somthing on "Canvas", e.g. Drawing Something on "Canvas" like Line, Circle, Square, etc.

Study Resources:
HTML/CSS: W3C School, MDN

2. Development tools

Microsof VSCode is a cross platform tool for coding. I use it for many projects in many programming languge. In this case, we use the javascript development evironment.

This great development tools has a lot of plug-ins for developers, and the price is free for all. I recommand that to learn how to basically use the VSCode.

There are so many introduction of VSCode and VSCode Plugins tutorials on Youtube like the following.

3. Server Side Development Environment

When you have a HTML/CSS Static files, you'll need a server tools to host on local side. So, I choose the node.js for my server side development environment, Because node.js is also base on Javascript language. Therefore, you don't neet to learn other server side prgramming tools lik PHP, JSP, C#, ASP, e.g.

4. Development Programming Language

JavaScript is the main development programming language. Now, the JavaScript version is coming for ES 6.0 Standard. So many function inside this version about "Module", "Class", "Arrow Functions", e.g.

These newest features can help our code more modulize, easy read, and organization.

5. Choose a 3D Engine Framework

Finally here talk about 3D Engine. There are 2 main WebGL 3D Engine now are "three.js" and "babylon.js".

We Choose "three.js" is that the main language is also "JavaScript", "Babylon.js" using "typeScript" for programming language. By the way, three.js has a lot of communities support and sufficient examples to explore. I'm lazy for learning a new technique. All "JavaScript" is good.

6. Understand 3D Realtime Render basic knowledge

In 3D Realtime Render, we hava to know the following knowledge.

1. Polygon, Triangle, and Mesh.
2. Camera
3. 3D Scene Graph Hierachy.
4. Material
5. Texture
6. Lighting/Shadow
7. Render
8. Shader

Every part is the same important, but "Material" is the most vital part to let your project stylish and more different looks.

Every part can let you jump into one realm. For example, "Lighting" have Knowledge we should learn but not only for programming technigue. It combine Physics, Math, and Aethetic photography know-how that let you can dive in all month.

Great Example for "Stylish" Project

7. Practice

Just do it.

In this day, we fortunatly have so many tools on the Web like ShaderToy, CodePen, Stack Overflow, e.g. These on-line platforms can help you testing on-line. By the way, never be shy, discuss with comunities and everyone can help you.

8. Publish to Web Server
( Cloud Space Knowledge )

intro

We use Google Cloud "App Engine" to publish for everyone. It's super simple for setting up for "node.js" user.

Share this article
Lee Chih Min

Life with Interaction  --  Digital Creator. Design, Art, Game, Life and Interaction.

View articles