Showing posts with label webgl. Show all posts
Showing posts with label webgl. Show all posts

5/20/19

Week #18's Wednesday Evening Training: WebGL, a recap and continuing implementing WebGL graphics

In this session Quincy Jacobs gave a short recap of his previous Wednesday Evening Training sessions on WebGL (also see my previous posts) to refresh our knowledge on Shaders, Vertex Buffers, Attribute Pointers and various other techniques used in WebGL.




Afterwards this he continued his explanation on implementing textures using the same techniques as the Vertices and the Colors. Some simple math to move, scale and rotate our created shapes was discussed as well.

Just like in other Wednesday Evening Training  sessions, there was also sufficient room for Q&A and discussion and there were lots of code example available for each topic . Plenty to play around with!

Next session, we'll plan time for continuing our WebGL handson labs.

Thanks Quiny, for sharing your knowledge with us!


Further study

Do you want to read more on the topics in this post or play around with the technology? Here are some links…

Quincy Jacob's WebGL Github repository, with alle the docs and examples
https://github.com/QuincyJacobs/WebGLTutorial

WebGL
https://webglfundamentals.org/
https://webgl2fundamentals.org/
https://developer.mozilla.org/nl/docs/Web/API/WebGL_API

OpenGL (also handy for WebGL)
https://learnopengl.com/
https://open.gl/

On the Math
https://www.khanacademy.org/
https://www.symbolab.com/solver/matrix-calculator
https://academo.org/demos/3d-vector-plotter/

Examples and demo's
https://experiments.withgoogle.com/collection/chrome

Past Wednesday Evening Trainings on all topics

You 'll find post of previous sessions here: https://www.linkedin.com/search/results/content/?keywords=%23wednesdayeveningtraining

Work @Capgemini?

Do you want to join us? We're always looking for and well-motivated young professionals. Do you have a bachelor or master degree or extensive practical experience? Or do you have a relevant ICT / Informatics training and you have become curious about us? Please send me an mail. Working for us gives you access to all Wednesday Evening Trainings!

9/30/18

This week's Wednesday Evening Training: Taking a deep dive in WebGL coloring and continuing our BabylonJS labs

In this week's Wednesday Evening Training we continued our exploration of WebGL and BabylonJS.


A deep dive into coloring in WebGL and continuing our BabylonJS labs

Quincy Jacobs took us on a deep dive into WebGL and showed us how to add color to objects. Combining the Color and Position Vertex Buffers involves quite a bit of math. In order to polish up our mathematics in that area, we have planned a refresher hour for the Wednesday Evening Training on WebGL (that will be October 10th) . We also took plenty of time for our BabylonJS labs. Based on the labs we did last week, we experimented with diffferent camera's, light sources and materials. We also experimented with parent and child objects and did a bit of animation. More of that also on October 10th, then I'll give a demo of my BabylonJS prototype in which an Archimate model view (using the free Archi editor) is converted into a BabylonJS 3D model. For complex architectures, 3D modelling may give more insight than plain 2D models. Worth doing some experiments to see whether this is a good approach!


Further reading

Do you want to read more on the topics in this post? Here are some links…

Quincy's WebGL explanations and examples on GitHub: https://github.com/QuincyJacobs/WebGLTutorial
Building up a basic demo with Babylon.js: https://developer.mozilla.org/en-US/docs/Games/Techniques/3D_on_the_web/Building_up_a_basic_demo_with_Babylon.js
A practical intro to BabylonJS (presentation): https://www.slideshare.net/HansRontheWeb/a-practical-intro-to-babylonjs-115869611

See also the BabylonJS links in my previous posts in the Wednesday Evening Training.

Past Wednesday Evening Trainings

You 'll find post of previous sessions here: https://www.linkedin.com/search/results/content/?keywords=%23wednesdayeveningtraining

Next week 's Wednesday Evening Training

Next week 's Wednesday Evening Training In next week's Wednesday Evening Training, one of our security experts, Vince Corona, will give us some more examples of hacking and explain us the importance of security in ICT. In the previous session, we already had a great intro on security in which he explained and demoed some basic hacking scenario's.
This evening on october 3rd is also open for visitors! The location is our main office in Leidscherijn, Utrecht (The Netherlands). You can subscribe at the following URL: https://www.werkenbijcapgemini.nl/events/How-to-become-a-hacker

In the future, more of the Wednesday Evening Trainings will be opened for visitors. Make sure that you follow the #wednesdayeveningtraining on LinkedIn or my Blog.

9/22/18

This week's Wednesday Evening Training: Introduction to WebGL, BabylonJS and 3d/game engines

In this session, we continued our exploration of 3D modeling and animation with a deep dive into WebGL and BabylonJS. Quincy Jacobs and I gave explanation on the basic concepts and illustrated these with code walkthroughs of WebGL and BabylonJS examples. The class could also gain some experience with two handson labs in which graphics and animations were implemented.



WebGL 

WebGL (Web Graphics Library) is a JavaScript API for rendering interactive 2D and 3D graphics within any compatible web browser without the use of plug-ins. WebGL is integrated completely into all the web standards of the browser, allowing GPU-accelerated usage of physics and image processing and effects as part of the web page canvas.

In the WebGL part, Quincy explained us the Graphics pipeline that is used to draw graphics. The concepts of a Vertex array buffer, Element array buffer, Vertex shader, Fragment shader and a Shader program have all been explained and illustrated based on a code example in which a triangle object was drawn on the screen. An effective way of really getting to know technology. There is a lot of math involved, so we also needed some recap of stuff we learned a long time ago :).

Quincy has published his WebGL explanations and examples on his GitHub site: https://github.com/QuincyJacobs/WebGLTutorial



BabylonJS

This is complete JavaScript framework for building 3D games and experiences with HTML5, WebGL, WebVR and Web Audio (https://www.babylonjs.com). It's based on WegGL, so if you understand the nuts and bolts of WebGL, it increases understanding of BabylonJS.

First I explained the basic concepts of BabylonJS. Basically, a BabylonJS application consists of a webpage in which a canvas element (just an HTML tag) is used for drawing a model into. The model is a scene in which model objects are defined, a camera is positioned, a light source is added (since it's rather difficult to see your objects in the dark) and a "render loop" is added to continously update the model. In the render loop you can add interactivity. Well, that's a BabylonJS application in a nutshell, in reality this can be a bit more complicated.

Based on the handson lab provided by Mozilla (see resources), we did a code walkthrough of the lab code in which the concepts were explained more thoroughly. The basic objects (called "meshes", like cubes, spheres, etc.) were discussed, but also self-defined objects. This last category can be composed on the basis of vectors. We went into the use of light; different light sources and their effect on the display of objects. In addition, animations were discussed and the way in which this can best be implemented in a BabylonJS application.
We also paid attention to more advanced topics like performance optimization (necessary because a lot of calculation work is involved, especially when implementing animation) and tooling. Using Blender, for example, you can create 3D objects that you can import easily in your BabylonJS scene. 

I've published my intro on SlideShare, you'll find the link in the resources section below. Game engines Also, we did a very quick overview on the architecture of (online, multi user) gaming engines. This is a fairly extensive subject for which we will certainly need more time. We will therefore take that time in the coming months.


Further reading

Do you want to read more on the topics in this post? Here are some links…

Quincy's WebGL explanations and examples on GitHub: https://github.com/QuincyJacobs/WebGLTutorial
Building up a basic demo with Babylon.js: https://developer.mozilla.org/en-US/docs/Games/Techniques/3D_on_the_web/Building_up_a_basic_demo_with_Babylon.js
A practical intro to BabylonJS (presentation): https://www.slideshare.net/HansRontheWeb/a-practical-intro-to-babylonjs-115869611

See also the BabylonJS links in my previous posts in the Wednesday Evening Training.


Past Wednesday Evening Trainings

You 'll find post of previous sessions here: https://www.linkedin.com/search/results/content/?keywords=%23wednesdayeveningtraining

Next week 's Wednesday Evening Training

In next week's Wednesday Evening Training, we will continue on WebGL and BabylonJS. We have some additional topics to discuss and some extra labs to play with. I'll also give a demo and explanation on my Archimate 3D model generator. This is my pet project that I've been busy with the past months. It's not finished yet, but it's a nice example of a basic multi user BabylonJS model generator combined with a primitive multi player game engine.

Also worth mentioning is the Wednesday Evening Training of october 3rd. That evening, one of our security experts, Vince Corona, will give us some more examples of hacking and explain us the importance of security in ICT. In the previous session, we already had a great intro on security in which he explained and demoed some basic hacking scenario's.

This evening on october 3rd is also open for visitors! The location is our main office in Leidscherijn, Utrecht (The Netherlands). You can subscribe at the following URL: https://www.werkenbijcapgemini.nl/events/How-to-become-a-hacker

In the future, more of the Wednesday Evening Trainings will be opened for visitors. Make sure that you follow the #wednesdayeveningtraining on LinkedIn or my Blog.

#capgemini, #wednesdayeveningtraining, #lifeatcapgemini, #workatcapgemini #webgl, #babylonjs, #3d, #graphics, #animation