A lot went into building this portfolio site, but here I’ll focus on the aspects related to interactive 3D elements.
Specifically, the Eye Tracking, the Dissolve Shader, and the 3D Animated Avatar.
The process of creating an animated 3D avatar of myself involved a few steps:
Base Model: I started with a base model created using the website Avaturn. I also experimented with FaceBuilder and Unreal MetaHumans, but I ran into several issues.
Editing in Blender: I refined the base model in Blender, adding details like a mouth, eyes, and eyelashes.
Rigging and MoCap: Using the Faceit add-on in Blender, I rigged the face and recorded animations with the "Live Link Face" app
Blinking Animations: To create realistic blinking, I used tween.js to animate the model’s eyelid Morph Targets (aka Shape Keys) in my Three.js scene .
Initially, I tried writing the shader directly in GLSL, but finding all the material properties and linking them to the correct shader uniforms was a headache. Luckily, I found this great library Three Custom Shader Materialswhich handles this process automatically, making it so much easier. You can try out the shader effect using the demo link or check out the code on GitHub. For post-processing, I added a touch of bloom and FXAA (anti-aliasing).