Udemy
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
Turn what you know into an opportunity and reach millions around the world.
Learn More
Your cart is empty.
Keep shopping
Learn Three.Js and Shaders from scratch
Rating: 4.6 out of 5(289 ratings)
2,472 students

Learn Three.Js and Shaders from scratch

Learn everything you need to master Three JS and Shaders to build immersive and creative Websites
Last updated 11/2024
English
English [Auto],Spanish [Auto],

What you'll learn

  • How to install ThreeJs library and import it into your project
  • Learn the basics of ThreeJs with many demonstrations and example code
  • Learn about the ThreeJs Scene, Camera and Renderer
  • Creating our very first scene in ThreeJs
  • How to move and animate the Objects
  • Learn about Webpack, NodeJs ,and serving ES6 modules to the browser clients.
  • We will talk about Gsap Package and how we can use it
  • How to scale a 3D scene and be responsive due to the display screen
  • Learn about Geometries such as Box, Sphere, Plane, Torus, TorusKnot and more
  • Learn about Geometries such as Box, Sphere, Plane, Torus, TorusKnot and more
  • Learn the secrets in which some projects were made
  • Learn about the Basic, Normal, Lambert, Phong, Standard, Matcap and other materials
  • Learn about the Bumpmap and Displacement Maps
  • Learn Dat GUI panels
  • Everything related to Lights and Shadows will be covered
  • We will dive deep into OrbitControls
  • We also will learn how to create a stunning Scene using Particles
  • Learn about the model loaders such as the OBJ, GLTF, DRACO, FBX and more
  • How to use Raycaster and how to use it for mouse picking 3D objects in the scene
  • Create Custom Animations and Export From Blender
  • Learn Shaders (GLSL ) to create immersive and creative websites
  • How to create vertex and fragment shaders in detail
  • We are also going to talk about GLSL Built in function, Noises and how to import textures into your shade
  • Post Processing will also be explained
  • And so much more . . .

Course content

4 sections31 lectures9h 22m total length
  • 1 - Hello To Your Course3:29

    Learn three.js from scratch to build 2D and 3D graphics on the web, explore lights, shadows, particles, 3D models, animation, and shader programming with glsl.

  • 2 - What is WebGL and ThreeJs8:02

    Discover how WebGL enables the GPU to render 2D and 3D graphics by processing points, lines, and triangles, and how Three.js provides a JavaScript API with ready-made shaders.

  • 3 - Hello Cube34:01
  • 4 - Transformation24:33

    Learn how to transform Three.js objects using Object3D inheritance, adjusting mesh and camera's position, scale, and rotation with Vector3 and Euler angles, and group with Group and AxesHelper and CameraHelper.

  • 5 - Animation18:07

    Learn to build a basic three.js animation using a scene, mesh, camera, and renderer. Drive rotation with a clock and elapsed time to keep motion consistent across devices.

  • 6 - Webpack10:50

    Explore how the webpack bundler replaces script-based loading of the Three.js library with a local dev server, npm dependencies, and import workflows.

  • 7 - Power Of Mathmatics And Gsap27:33

    Learn how mathematics underpins animation in three.js, from linear motion and elapsedTime to sin, cos, and tan patterns, and explore gsap as an external alternative for smooth, timed movements.

  • 8 - LookAt14:08

    This lesson shows how to use the lookAt method on Object3D to make a mesh face another mesh or the mouse, using Vector3 targets and normalized cursor coordinates.

  • 9 - Responsive8:49

    Make the canvas responsive by handling the resize event and updating the canvas size, camera aspect and projection matrix, and renderer size, then set the pixel ratio with renderer.setPixelRatio(Math.min(window.devicePixelRatio, 2)).

  • 10 - Cameras6:35

    Explore the camera types in three.js, especially orthographic and perspective cameras. See how orthographic projection keeps object sizes constant for 2D games, with left, right, bottom, top, near, far parameters.

  • 11 - OrbitControl8:05

    Import OrbitControls and attach to camera and canvas, so camera orbits a target with updates in animation loop. Adjust autoRotate, autoRotateSpeed, and enableDamping (dampingFactor) to control rotation and damping.

  • 12 - Geometries19:23

    Explore key three.js geometries—box, plane, sphere and more—and how vertices, segments, and attributes shape 3d models. Learn to build and inspect buffer geometry with positions and custom attributes using Float32Array.

  • 13 - Textures14:46

    Explore textures that add detail to 3D geometry in Three.js, including color, displacement, normal, and bump maps, load them via TextureLoader, and understand UV mapping with a loading manager.

  • 14 - Materials27:38

    Explore common three.js materials—from basic to physically based rendering—and learn essential properties like map, color, opacity, side, visible, bump maps, displacement maps, and environment maps.

  • 15 - Debugging9:01

    Learn to speed up debugging in three.js by using a dat.gui panel to adjust mesh position, color, and wireframe. Connect GUI changes to material properties with onChange for precise control.

  • 16 - Lights23:51

    Explore how different lights in Three.js affect a scene, from ambient and directional to hemisphere, point, rect area, and spot lights, including helpers and GUI controls.

  • 17 - Shadow10:25

    Explore how three.js renders core and drop shadows to boost realism, using directional, point, or spot lights casting shadows on a plane via shadow maps.

  • 18 - Particles16:17

    Learn to create particle scenes from a plane geometry using PointsMaterial and the Points class, generate random vertices, animate snowfall, and render with an alpha map and camera rotation.

  • 19 - Raycaster15:10

    Cast a ray from the camera with a Three.js raycaster using normalized mouse coords to detect intersections with meshes, color first intersected mesh red, and return to white when idle.

  • 20 - 3d models part one58:05

    Learn to load and render 3d models in three.js using obj, gltf, and glb formats. Use blender for prep, and loaders like OBJLoader and GLTFLoader with draco compression and animation.

  • 21 - 3d models part two12:10

    Import a model and its animations with the FBX loader, then use a mixer to switch animations with keys 1 and 2. Traverse to a hair mesh to modify color.

Requirements

  • A device that you can install VSCode or any Code Editor
  • Basic JavaScript knowledge, you should be familiar with let, const, loops, arrays, functions
  • And the most two important things are to be patient ( please be patient ), and to have a desire to build 3D Web Applications

Description

Welcome to my course on ThreeJs and Shaders, where you will learn how to build immersive and creative 3D websites

In this course we will learn all about Three.js and Shaders , we are also going to share some of the project's secrets soon

The course is in 3 main sections,

  1. the Introduction Section : Where we will learn everything related to this library, starting with how to create a cube inside the scene and then how to animate that cube, how to add lights, shadows, particles and so much more.

  2. the Shaders Section : we will learn shaders from scratch and you will be amazed by the things that you will be able to do when you master shaders, all you have to do is one thing which is be patient while learning

  3. the Projects Section : in this section, we will share some of the project's secrets

All code is provided in the resources folder where you can find the Startup folder which is the code at the beginning of the lecture, and the Last Code folder which is the written code after we finished the lesson.

If you encounter any questions regarding a particular lesson, I hope that you will ask the question in the questions section I will answer all questions, so don't be afraid to ask any question


Thanks for participating in my course, and I will see you there.

Ahmad

Who this course is for:

  • Beginner Web developers who wants to learn about ThreeJs
  • Front end developers wanting to learn about ThreeJs concepts
  • Web developers who wants to create immersive and creative 3D websites