← Tất cả bài viết
Thuê Lập Trình Viên WebGL / Three.js (Cẩm Nang)
Cách thuê lập trình viên WebGL hoặc Three.js cho trải nghiệm web 3D — họ làm gì, cần tìm gì, dấu hiệu đỏ, chi phí, và cách viết brief đúng.

Nếu designer đưa cho bạn một concept có sản phẩm xoay 3D, một hero 3D, hay hình ảnh biến dạng và loang chảy khi cuộn — bạn đã chạm tới giới hạn của một front-end developer thông thường. Để làm được điều đó, bạn cần thuê lập trình viên WebGL — một chuyên gia làm việc trên GPU, không chỉ trên DOM. Bài viết này giải thích lập trình viên WebGL / Three.js thực sự làm gì, khi nào bạn cần họ thay vì một front-end dev thường, cách đánh giá portfolio, các dấu hiệu đỏ cần tránh, và chi phí ra sao. Tôi viết với tư cách người trực tiếp làm nghề: tôi là Hon Tran, một creative developer, thành viên ban giám khảo Awwwards, và 8 lần đoạt Awwwards Developer Award — tôi vừa xây những sản phẩm này vừa chấm hàng trăm sản phẩm khác.
Lập trình viên WebGL / Three.js thực sự làm gì
WebGL là API trình duyệt cho phép JavaScript truy cập trực tiếp GPU, để render 3D thời gian thực và những hiệu ứng hình ảnh mà không thuộc tính CSS nào tạo ra được. Three.js là thư viện giúp WebGL khả dụng, và React Three Fiber (R3F) đóng gói nó thành các component React khai báo. Một dev thạo stack này sẽ làm những thứ như:
- Cảnh 3D tương tác — sản phẩm xoay được, configurator, logo hay hero 3D phản ứng với con trỏ và cuộn.
- GLSL shader tùy chỉnh — những chương trình GPU nhỏ đứng sau hiệu ứng chuyển cảnh dạng lỏng, hệ hạt, gradient nhiễu, hiệu ứng tan rã.
- Hiệu ứng displacement & hover ảnh — hình ảnh biến dạng, tan chảy, lệch màu RGB bạn thấy trên các site đoạt giải (đây là cách dựng hiệu ứng displacement ảnh WebGL).
- 3D theo cuộn — geometry, camera và material được animate theo vị trí cuộn ở 60fps.
- Tối ưu hiệu năng cho GPU — ngân sách draw call, nén texture, instancing, và fallback hợp lý để cảnh chạy được trên điện thoại tầm trung, không chỉ laptop gaming.
Điểm cuối mới là phần việc thật sự. Ai cũng thả được một file .glb nặng lên trang; người chuyên nghiệp làm cho nó vừa đẹp vừa nhanh cùng lúc.
Bạn cần dev WebGL, hay chỉ cần front-end dev thường?
Đa số dự án không cần WebGL — và một chuyên gia tử tế sẽ nói thẳng điều đó. Dùng quy tắc đơn giản này:
| Bạn cần... | Khi phần khó là... |
|---|---|
| Front-end developer | Dữ liệu, form, CMS, routing, layout, UI responsive — cỗ máy |
| Creative developer | Chuyển động, cuộn, transition trang, "cảm giác" — chủ yếu DOM/SVG/Canvas |
| Lập trình viên WebGL / Three.js | 3D thời gian thực, shader tùy chỉnh, hình ảnh từ GPU — phần render |
Nếu khoảnh khắc nổi bật của dự án là một sản phẩm 3D, một visual generative, hay hình ảnh do shader điều khiển — đó là lúc cần thuê dev WebGL. Nếu chỉ là chuyển động mượt và sự tinh tế mà không có 3D thật, một creative developer đã đủ — và trên thực tế nhiều người trong chúng tôi là cả hai. Dấu hiệu thẳng thắn: nếu bỏ phần 3D/shader đi mà dự án không tệ hơn, có lẽ bạn chưa cần chuyên gia WebGL.
Cần tìm gì khi thuê lập trình viên Three.js
Portfolio chính là buổi phỏng vấn. Hãy dành thời gian ở đó.
1. 3D đã ship, link sống — không phải reel
Showreel che giấu giật lag. Hãy mở những site WebGL thật của họ trên điện thoại của chính bạn, dùng mạng di động. Cảnh có load mà không đơ trang không? Có giữ 60fps khi cuộn không? Có fallback hợp lý khi GPU yếu không? Giá trị thật của WebGL là cảm giác nhẹ nhàng trên phần cứng thật — nên hãy test trên phần cứng thật.
2. Kỷ luật hiệu năng trên mobile
WebGL là nơi những bản dựng cẩu thả "chết" — điện thoại nóng máy, hao pin, load 12 giây. Hỏi cách họ quản ngân sách draw call, nén texture (KTX2 / Basis), và lazy-load phần 3D để nó không chặn first paint. Một chuyên gia coi Core Web Vitals của một site nhiều chuyển động là một phần của thiết kế, không phải việc tính sau.
3. Chiều sâu GLSL / shader thật sự
Có một khoảng cách lớn giữa dùng Three.js và viết shader. Nhiều dev load được model và thêm OrbitControls; ít người viết được ShaderMaterial tùy chỉnh để có một diện mạo riêng. Nếu concept của bạn cần một visual độc bản, hãy xác nhận họ viết được GLSL — yêu cầu xem một shader tùy chỉnh trong sản phẩm đã ship.
4. Gu chuyển động
3D thiếu gu trông như một bản demo kỹ thuật. Khác biệt giữa "ấn tượng" và "đẳng cấp" nằm ở easing, nhịp timing, sự tiết chế, và việc 3D phục vụ thương hiệu thay vì khoe kỹ thuật. Bạn đang thuê một con mắt nhiều như thuê một bộ kỹ năng — portfolio phải toát ra sự chỉn chu, không chỉ nặng về công nghệ.
5. Sự công nhận từ bên thứ ba
Ai cũng nói được "đoạt giải". Hãy tìm sự công nhận được ban giám khảo chấm — Awwwards, CSS Design Awards, FWA, GSAP showcase — do chính các đồng nghiệp trong nghề đánh giá. Để tham khảo, bản dựng thương mại 3D trong case study DeepSee Commerce — website 3D e-commerce là kiểu bằng chứng đã ship, mổ xẻ được mà bạn nên yêu cầu mọi ứng viên đưa ra.
Câu hỏi giúp lộ ra một dev WebGL thực thụ
Trong một cuộc gọi 30 phút, những câu này tách người nói về 3D khỏi người ship được 3D:
- "Bạn giữ cảnh 3D này 60fps trên Android tầm trung bằng cách nào?" Lắng nghe draw call, instancing, nén texture, và clamp
dpr— không phải lời nói chung chung. - "Three.js thuần hay React Three Fiber — và vì sao?" Không có đáp án sai, nhưng bạn muốn nghe một sự cân nhắc có lý do, không phải mặc định.
- "Kể tôi nghe một shader tùy chỉnh bạn từng viết." Chiều sâu GLSL thật lộ ra ngay tại đây.
- "Fallback là gì khi WebGL lỗi hoặc thiết bị yếu?" Người chuyên nghiệp luôn có sẵn.
- "Cho tôi xem một bản dựng 3D từng hỏng và bạn đã sửa thế nào." Kinh nghiệm nằm trong những câu chuyện sự cố, không phải reel hoàn hảo.
Nếu bạn đang tuyển rộng hơn, bài cách thuê creative developer bàn về phiên bản không-3D của cuộc trò chuyện này.
Các dấu hiệu đỏ
- Không có link sống — chỉ render, video, hoặc "NDA, không cho xem được."
- Mơ hồ về hiệu năng mobile — không giải thích được cách đạt ngân sách khung hình trên điện thoại thật.
- Model nặng, không tối ưu — thả một file
.glb40MB lên trang là dấu hiệu nghiệp dư. - Không có chiến lược fallback — nếu câu trả lời cho "lỡ WebGL lỗi thì sao?" là ánh mắt ngơ ngác, hãy rời đi.
- Thẩm mỹ kiểu tech-demo — lòe loẹt nhưng vô gu; phần 3D chống lại thương hiệu thay vì phục vụ nó.
Một chút về tay nghề
Đây là kiểu code tách một dev WebGL khỏi một dev đa năng — một cảnh R3F tối giản với shader material tùy chỉnh và clamp device-pixel-ratio hợp lý để chạy nhanh trên mobile:
import { Canvas, useFrame } from "@react-three/fiber";
import { useRef } from "react";
import * as THREE from "three";
function ShaderPlane() {
const mat = useRef<THREE.ShaderMaterial>(null!);
// Điều khiển shader bằng thời gian — animation chạy trên GPU.
useFrame((_, dt) => { mat.current.uniforms.uTime.value += dt; });
return (
<mesh>
<planeGeometry args={[2, 2, 64, 64]} />
<shaderMaterial
ref={mat}
uniforms={{ uTime: { value: 0 } }}
vertexShader={/* glsl */ `
uniform float uTime;
varying vec2 vUv;
void main() {
vUv = uv;
vec3 p = position;
p.z += sin(p.x * 4.0 + uTime) * 0.1; // gợn sóng trên GPU
gl_Position = projectionMatrix * modelViewMatrix * vec4(p, 1.0);
}`}
fragmentShader={/* glsl */ `
varying vec2 vUv;
void main() { gl_FragColor = vec4(vUv, 0.5, 1.0); }`}
/>
</mesh>
);
}
export default function Scene() {
// Clamp DPR: render 3x trên điện thoại là nguyên nhân #1 gây giật WebGL.
return (
<Canvas dpr={[1, 1.5]} camera={{ position: [0, 0, 3] }}>
<ShaderPlane />
</Canvas>
);
}
Cố tình để nhỏ, nhưng nó cho thấy tư duy: animation chạy trên GPU, một shader tùy chỉnh, và một lớp bảo vệ hiệu năng — tất cả trong cùng một hơi thở. Nếu muốn tự học nền tảng, hãy bắt đầu với hướng dẫn React Three Fiber cho người mới cùng tài liệu React Three Fiber và tài liệu three.js chính thức.
Mô hình hợp tác, chi phí & thời gian
WebGL là kỹ năng chuyên sâu nằm trên nền front-end, nên được định giá tương ứng. Người làm độc lập thường khoảng ~$75–100/giờ, với các gói dự án thường bắt đầu từ khoảng $1.500–$3.000+ và tăng theo độ phức tạp của cảnh, lượng shader tùy chỉnh, và mức tối ưu mà thiết bị mục tiêu đòi hỏi. GLSL tùy chỉnh và 3D tương tác nằm ở đỉnh khoảng giá đó — cao hơn nhiều so với animation cuộn thường. Xem chi tiết theo phạm vi tại chi phí làm website chuyển động hết bao nhiêu.
Hợp tác thường có một trong ba dạng:
- Dự án phạm vi cố định — site ra mắt, configurator sản phẩm, hay microsite chiến dịch với một điểm nhấn 3D rõ ràng.
- Retainer — lặp lại, phát triển liên tục một trải nghiệm "sống".
- White-label cho agency — bạn giữ quan hệ với khách; tôi làm phần WebGL/3D dưới thương hiệu của bạn. Đây là một kênh lặp lại: nhiều agency có thiết kế và có khách nhưng không có chuyên gia GPU trong nội bộ.
Thời gian chạy từ 2–4 tuần cho một hero 3D hay một tác phẩm shader tập trung, tới 6–12+ tuần cho một site đầy đủ với điểm nhấn 3D tương tác — phụ thuộc chủ yếu vào khâu chuẩn bị asset và các vòng tối ưu cần thiết để đạt ngân sách hiệu năng.
Vì sao nên làm việc với tôi
Tôi là Hon Tran — một creative developer và thành viên ban giám khảo Awwwards với 8 giải Awwwards Developer Award cùng các sản phẩm WebGL đã ship khắp châu Âu, Trung Đông và châu Á. Tôi xây những trải nghiệm 3D tương tác và shader vừa đoạt giải vừa đạt Core Web Vitals trên điện thoại thật — sự kết hợp mà hầu hết các đội khó tìm được ở một người. Xem các bản dựng WebGL đã ship và đoạt giải trong kho dự án, và khi sẵn sàng, đây là cách bắt đầu một dự án trên trang hire.
Câu hỏi thường gặp
Khác nhau gì giữa dev WebGL và dev Three.js?
Trên thực tế gần như không có gì đáng bận tâm. WebGL là API cấp thấp của trình duyệt; Three.js là thư viện phổ biến nhất dựng trên nó (và React Three Fiber bọc Three.js cho React). Hầu hết người "thuê dev WebGL" đều muốn người làm việc với Three.js / R3F. Hãy đánh giá portfolio, không phải nhãn dán.
Tôi cần dev WebGL hay front-end dev thường?
Nếu khoảnh khắc nổi bật của dự án là 3D thời gian thực, configurator, hay hình ảnh shader tùy chỉnh, hãy thuê chuyên gia WebGL. Nếu phần khó là dữ liệu, form, layout, thì một front-end dev là lựa chọn đúng (và rẻ hơn). Khi phân vân, hãy hỏi một chuyên gia — người giỏi sẽ nói thật nếu bạn chưa cần WebGL.
Thuê freelance WebGL developer tốn bao nhiêu?
Dự kiến ~$75–100/giờ hoặc gói dự án từ khoảng $1.500–$3.000+, tăng theo độ phức tạp của cảnh và lượng shader tùy chỉnh. 3D tương tác và GLSL nằm ở đỉnh khoảng giá. Xem hướng dẫn chi phí website chuyển động để biết khoảng giá theo phạm vi.
Website 3D có hại hiệu năng và SEO không?
Chỉ khi làm ẩu. Người chuyên nghiệp lazy-load phần 3D để không chặn first paint, clamp device pixel ratio, nén texture, và cung cấp fallback — giữ Core Web Vitals xanh. WebGL nặng mà LCP vẫn nhanh chính là dấu hiệu của người nắm vững nghề.
Bạn có làm white-label cho agency của tôi không?
Có. Nhiều agency có thiết kế và quan hệ khách hàng nhưng không có chuyên gia GPU nội bộ. Tôi xây lớp WebGL/Three.js dưới thương hiệu của bạn, theo timeline của bạn. Bắt đầu trao đổi tại trang hire.
Viết bởi Hon Tran — creative developer, thành viên ban giám khảo Awwwards, và 8 lần đoạt Awwwards Developer Award. Hơn 11 năm xây dựng các trải nghiệm WebGL và chuyển động đoạt giải cho khách hàng tại Na Uy, Đan Mạch, Thụy Điển, Malta và Việt Nam. hontran.dev.