

This function will add a wave-like motion to the x and y positions of the plane. To create the wave effect, we’ll use the sin function in the vertex shader. By modifying uProgress using GSAP, we’ll achieve a smooth easing effect for the animation. Next, we’ll add an uniform called uProgress to control the amount of the wave effect. We’ll calculate the scale by creating a proportion between the plane’s dimensions and those of the viewport: $. = viewport.width / width This uniform will be used to tell the position of the vertex shader how much to scale the x and y positions of our plane. So we add a new uniform called uZoomScale. We also need to implement the wave effect within the shader of the Plane. Therefore, after activating the zoom effect, we must display a new transparent plane with dimensions equivalent to the viewport, which allows us to click on the entire image and revert to the initial state.

It’s important to note that using a shader material to resize a mesh maintains the dimensions of the geometry space. Vec2 st = rs and enable us to manage the activation and deactivation of the zoom effect. To achieve this, we’ll make use of a glsl function that takes the proportions of the plane and image as conversion parameters: /*-įloat rs = s.x / s.y // Aspect plane sizeįloat ri = i.x / i.y // Aspect image size We’ll then use a shaderMaterial to insert our desired image into the material, modifying the UV positions to achieve a cover mode texture that fills the entire geometry surface. Part 1: Generating a 3D plane with a textureįirstly, let’s begin by creating a plane of any size, ensuring that it’s positioned at the origin (0, 0, 0) and facing the camera.

Implementing post-processing effects to enhance the carousel experience.Configuring a carousel of images with mouse scroll and drag functionality.The article will be divided into four parts: In this article, I will guide you through the process of creating a similar carousel using WebGL, React Three Fiber (R3F), and GSAP. It features a carousel that can be dragged or scrolled through, providing an interesting effect on the images. Have you ever come across a website with captivating visual effects and interactivity? One such website is .kr, created by Eum Ray. From our sponsor: Connect Design and Development to Deliver Better Customer Experiences with Applitools Centra.
