Cách Làm Hình Nền Chạy Trên Màn Hình Máy Tính

Công Cụ Tạo Hình Nền Động Chuyên Nghiệp

Tính toán và tối ưu hóa hình nền chạy trên màn hình máy tính của bạn với công cụ chuyên nghiệp này. Nhập thông số kỹ thuật để nhận hướng dẫn chi tiết và biểu đồ hiệu suất.

Trung bình

Kết Quả Tối Ưu Hóa Hình Nền Động

Độ phân giải tối ưu:
1920×1080
Loại hoạt ảnh được đề xuất:
Cài đặt hiệu suất:
Cân bằng (GPU được bật, FPS: 60)
Dung lượng bộ nhớ cần thiết:
~150MB
Tác động đến pin:
Trung bình (giảm 8-12% thời lượng pin)
Mã nguồn mẫu:
// Mã mẫu sẽ xuất hiện ở đây sau khi tính toán

Hướng Dẫn Chi Tiết: Cách Làm Hình Nền Chạy Trên Màn Hình Máy Tính (2024)

Hình nền động (live wallpaper) không chỉ làm cho màn hình máy tính của bạn trở nên ấn tượng hơn mà còn có thể phản ánh phong cách cá nhân và sở thích của bạn. Trong hướng dẫn toàn diện này, chúng tôi sẽ khám phá:

  • Các phương pháp tạo hình nền động phổ biến nhất
  • Công cụ và phần mềm chuyên nghiệp để thiết kế
  • Tối ưu hóa hiệu suất để không ảnh hưởng đến máy tính
  • Cách cài đặt và quản lý hình nền động trên Windows, macOS và Linux
  • Xu hướng thiết kế hình nền động năm 2024

1. Các Loại Hình Nền Động Phổ Biến

Có nhiều loại hình nền động khác nhau, mỗi loại có đặc điểm và yêu cầu kỹ thuật riêng:

  1. Hoạt ảnh 2D (Parallax, Particles):

    Đây là loại phổ biến nhất do nhẹ và tương thích tốt với hầu hết máy tính. Hoạt ảnh 2D sử dụng các lớp hình ảnh chuyển động với tốc độ khác nhau (parallax) hoặc các hạt nhỏ (particles) tạo hiệu ứng động.

    Ưu điểm: Nhẹ, tiết kiệm pin, dễ tạo

    Nhược điểm: Ít ấn tượng hơn so với 3D

  2. Video nền:

    Sử dụng video chất lượng cao làm hình nền. Có thể là cảnh thiên nhiên, thành phố về đêm, hoặc các hiệu ứng trừu tượng.

    Ưu điểm: Hiệu ứng chân thực, đa dạng nội dung

    Nhược điểm: Ngốn tài nguyên, có thể làm chậm máy

  3. Hiệu ứng 3D:

    Tạo ra không gian ba chiều với các vật thể chuyển động trong môi trường ảo. Thường yêu cầu card đồ họa tốt.

    Ưu điểm: Hiệu ứng ấn tượng, chuyên nghiệp

    Nhược điểm: Đòi hỏi cấu hình máy cao

  4. Gradient động:

    Sử dụng sự chuyển màu mượt mà giữa các màu sắc. Nhẹ nhất trong tất cả các loại.

    Ưu điểm: Siêu nhẹ, không ảnh hưởng hiệu suất

    Nhược điểm: Ít đa dạng về hiệu ứng

  5. Hình nền tương tác:

    Phản ứng với chuyển động chuột hoặc thao tác bàn phím. Ví dụ: sóng nước khi di chuột, hạt tuyết rơi khi gõ phím.

    Ưu điểm: Trải nghiệm tương tác thú vị

    Nhược điểm: Phức tạp trong việc tạo và tối ưu

Lưu ý quan trọng:

Hình nền động có thể tăng nhiệt độ CPU/GPU từ 5-15°C và giảm thời lượng pin laptop từ 10-25% tùy theo loại hoạt ảnh. Luôn theo dõi nhiệt độ hệ thống khi sử dụng.

2. Công Cụ Tạo Hình Nền Động Chuyên Nghiệp

Dưới đây là bảng so sánh các công cụ tạo hình nền động phổ biến nhất năm 2024:

Công cụ Loại hình nền Độ khó Yêu cầu hệ thống Giá Điểm nổi bật
Wallpaper Engine Tất cả các loại Dễ Windows 10+, 2GB RAM $3.99 Thư viện khổng lồ, hỗ trợ workshop Steam
Rainmeter 2D, tương tác Trung bình Windows 7+, 1GB RAM Miễn phí Tùy biến cao, cộng đồng skin lớn
Lively Wallpaper Video, web, ứng dụng Dễ Windows 10+, 4GB RAM Miễn phí Hỗ trợ nhiều định dạng, nhẹ
Plasma (macOS) Gradient, 2D Dễ macOS 10.15+, 2GB RAM $4.99 Tối ưu cho macOS, tiết kiệm pin
Komorebi (Linux) Gradient, 2D Khó Linux, OpenGL 3.3 Miễn phí Mã nguồn mở, hiệu suất cao
Adobe After Effects Tất cả các loại Rất khó Windows/macOS, 8GB RAM+ $20.99/tháng Chuyên nghiệp, chất lượng cao

3. Hướng Dẫn Tạo Hình Nền Parallax Đơn Giản

Parallax là loại hình nền động phổ biến nhất do sự cân bằng giữa hiệu ứng đẹp và hiệu suất. Dưới đây là hướng dẫn tạo hình nền parallax cơ bản:

  1. Chuẩn bị tài nguyên:

    Bạn cần 3-5 lớp hình ảnh với độ phân giải cao hơn màn hình của bạn (ví dụ: 2560×1440 cho màn Full HD). Các lớp nên có chủ đề liên quan nhưng tốc độ chuyển động khác nhau.

    Ví dụ:

    • Lớp 1 (phía sau): Núi xa (chuyển động chậm nhất)
    • Lớp 2: Cây cối (chuyển động trung bình)
    • Lớp 3: Đám mây (chuyển động nhanh)
    • Lớp 4: Chim bay (chuyển động nhanh nhất)

  2. Sử dụng Wallpaper Engine:

    1. Mở Wallpaper Engine và chọn “Create Wallpaper”
    2. Chọn “Scene” → “Parallax”
    3. Nhấp “Add Layer” và tải lên từng lớp hình ảnh
    4. Điều chỉnh “Parallax Multiplier” cho mỗi lớp (0.1-0.3 cho lớp xa, 0.7-1.0 cho lớp gần)
    5. Thêm hiệu ứng chuyển động nhẹ (ví dụ: di chuột làm các lớp di chuyển)
    6. Xuất và áp dụng

  3. Tối ưu hóa:

    • Nén hình ảnh mà không mất chất lượng (sử dụng TinyPNG)
    • Giới hạn số lượng lớp (tối đa 5 lớp cho hiệu suất tốt)
    • Sử dụng định dạng WebP thay vì PNG/JPG
    • Vô hiệu hóa hoạt ảnh khi chạy ứng dụng đầy tài nguyên

Ví dụ về cấu trúc lớp parallax (càng gần viewer, tốc độ càng cao)

4. Tạo Hình Nền Video Chuyên Nghiệp

Hình nền video mang lại trải nghiệm chân thực nhất nhưng cũng đòi hỏi nhiều tài nguyên nhất. Dưới đây là quy trình tạo hình nền video tối ưu:

  1. Chuẩn bị video:

    • Độ phân giải: Chính xác bằng độ phân giải màn hình của bạn
    • Định dạng: MP4 (H.264 codec) hoặc WebM (VP9 codec)
    • Bitrate: 5-8 Mbps cho Full HD, 10-15 Mbps cho 4K
    • Thời lượng: 10-30 giây (lặp vô hạn)
    • FPS: 30 hoặc 60 (không cần cao hơn)

    Sử dụng HandBrake để nén video mà không mất chất lượng:

    # Cài đặt HandBrake tối ưu cho hình nền
    --encoder x264 --quality 20 --vfr --framerate 30
    --width 1920 --height 1080 --crop 0:0:0:0
    --format mp4 --optimize --ipod-atom
                
  2. Công cụ đề xuất:

    • Lively Wallpaper: Tốt nhất cho Windows, hỗ trợ nhiều định dạng
    • VLC + Loop: Giải pháp miễn phí cho macOS/Linux
    • Wallpaper Engine: Cho hiệu ứng nâng cao

  3. Tối ưu hóa hiệu suất:

    • Sử dụng GPU decoding (bật trong cài đặt phần mềm)
    • Giới hạn FPS của video (30 FPS thường đủ)
    • Tắt hình nền khi chạy game hoặc phần mềm nặng
    • Sử dụng SSD để giảm độ trễ khi load video

Cảnh báo:

Video 4K có thể tiêu thụ đến 30% CPU và 20% GPU khi phát liên tục. Tránh sử dụng trên laptop khi không cắm sạc để bảo vệ pin.

5. Tạo Hình Nền 3D Với Blender

Đối với những người muốn tạo hình nền 3D chuyên nghiệp, Blender là công cụ mạnh mẽ và miễn phí. Dưới đây là quy trình cơ bản:

  1. Thiết lập scene:

    • Mở Blender và xóa cube mặc định (Để chọn → X → Delete)
    • Thêm mặt phẳng (Add → Mesh → Plane) làm “màn hình”
    • Điều chỉnh kích thước mặt phẳng khớp với tỷ lệ màn hình của bạn

  2. Tạo vật thể 3D:

    • Thêm các vật thể 3D (ví dụ: hình cầu, hình trụ)
    • Áp dụng vật liệu (Material) với màu sắc và texture phù hợp
    • Điều chỉnh ánh sáng (thêm Sun Light hoặc HDRI)

  3. Thiết lập hoạt ảnh:

    • Di chuyển đến frame 1, đặt vị trí ban đầu của camera/vật thể
    • Di chuyển đến frame 250 (10 giây ở 25 FPS), thay đổi vị trí
    • Nhấp chuột phải vào vị trí → Insert Keyframe
    • Lặp lại cho tất cả vật thể cần chuyển động

  4. Render thành video:

    • Điều chỉnh cài đặt render (Output Properties):
      • Resolution: Khớp với màn hình của bạn
      • Format: FFmpeg (MP4)
      • Frame Rate: 30 hoặc 60 FPS
      • Encoding: H.264, Bitrate: 8000 kbps
    • Nhấn “Render” → “Render Animation”

  5. Áp dụng làm hình nền:

    Sử dụng Lively Wallpaper hoặc Wallpaper Engine để phát video render được

Mẫu cài đặt Blender tối ưu cho hình nền:

# Cài đặt render tối ưu cho hình nền 3D
blender --background --python express.py
--render-output "//render_#####.png"
--render-frame 1 --render-anim
--render-engine CYCLES --cycles-device GPU
--render-threads 8
    

6. Tối Ưu Hóa Hiệu Suất Cho Hình Nền Động

Hình nền động có thể ảnh hưởng đáng kể đến hiệu suất hệ thống nếu không được tối ưu hóa đúng cách. Dưới đây là các mẹo tối ưu hóa:

Thông số Cài đặt tối ưu Tác động đến hiệu suất Cải thiện thời lượng pin
Độ phân giải Khớp chính xác với màn hình Giảm 15-20% sử dụng GPU +10-15%
FPS 30 FPS (60 FPS nếu GPU mạnh) Giảm 25-30% sử dụng CPU +15-20%
GPU Acceleration Luôn bật Giảm 40-50% sử dụng CPU +5-10%
Số lượng lớp (parallax) 3-5 lớp Giảm 20-30% sử dụng GPU +8-12%
Định dạng video WebM (VP9) hoặc MP4 (H.264) Giảm 10-15% sử dụng CPU +5-8%
Chất lượng nén CRF 20-25 (cho video) Giảm 5-10% sử dụng GPU +3-5%
Tắt khi mất focus Luôn bật Giảm 100% khi không sử dụng +25-30%

Để kiểm tra tác động của hình nền động đến hệ thống của bạn, sử dụng các công cụ sau:

  • HWInfo – Theo dõi nhiệt độ và sử dụng tài nguyên
  • Process Explorer (Microsoft) – Phân tích sử dụng CPU/GPU chi tiết
  • GPU-Z – Theo dõi tải GPU theo thời gian thực

7. Cài Đặt Hình Nền Động Trên Các Hệ Điều Hành

Windows 10/11:

  1. Tải và cài đặt Wallpaper Engine hoặc Lively Wallpaper
  2. Mở phần mềm và duyệt thư viện hình nền
  3. Chọn hình nền bạn thích và nhấp “Apply”
  4. Điều chỉnh cài đặt hiệu suất trong phần mềm
  5. Đối với Lively, bạn có thể thêm hình nền từ file video/local:
    • Nhấp chuột phải trên desktop → Lively → Add Wallpaper
    • Chọn file video hoặc ứng dụng của bạn
    • Điều chỉnh cài đặt phát lại và hiệu suất

macOS:

  1. Tải Plasma hoặc Live Wallpaper 4K từ App Store
  2. Mở System Preferences → Desktop & Screen Saver
  3. Chọn tab “Desktop” và chọn hình nền động từ ứng dụng bạn vừa cài
  4. Đối với giải pháp miễn phí, sử dụng VLC:
    • Mở video trong VLC
    • Window → Video Effects → Geometry → Check “Interactive Zoom”
    • Window → Always On Top
    • Phóng to toàn màn hình và điều chỉnh vị trí

Linux (Ubuntu/GNOME):

  1. Cài đặt Komorebi (đối với GNOME 40+):
  2. sudo add-apt-repository ppa:tista500/komorebi
    sudo apt update
    sudo apt install komorebic wl-clipboard
            
  3. Khởi động Komorebi:
  4. komorebic start
            
  5. Thêm hình nền động:
  6. komorebic add ~/path/to/your/wallpaper
            
  7. Đối với KDE Plasma, sử dụng:
  8. sudo apt install plasma5-wallpapers-dynamic
            

8. Xu Hướng Hình Nền Động 2024

Năm 2024 chứng kiến sự phát triển mạnh mẽ của hình nền động với những xu hướng sau:

  1. Hình nền AI-generated:

    Sử dụng công cụ như MidJourney, Stable Diffusion để tạo hình nền động độc đáo. Các hình nền này thường có chủ đề:

    • Cyberpunk với ánh sáng neon
    • Vũ trụ không gian 3D
    • Hiệu ứng trừu tượng lưu loát
    • Cảnh thiên nhiên siêu thực

    Ví dụ prompt cho Stable Diffusion:

    “Ultra-detailed 8K parallax wallpaper, cyberpunk cityscape with neon lights reflecting on wet streets, multiple depth layers for parallax effect, cinematic lighting, intricate details, trending on ArtStation, –ar 16:9 –v 5”
  2. Hình nền tương tác với API:

    Kết nối với các API thời tiết, thị trường chứng khoán, hoặc mạng xã hội để hình nền thay đổi dựa trên dữ liệu thực tế. Ví dụ:

    • Hình nền thay đổi màu sắc dựa trên thời tiết địa phương
    • Hoạt ảnh phản ánh giá cryptocurrency
    • Hiển thị tweet mới nhất từ tài khoản yêu thích
  3. Hình nền “minimal motion”:

    Xu hướng thiết kế tối giản với chuyển động nhẹ nhàng, phù hợp với không gian làm việc chuyên nghiệp. Đặc điểm:

    • Màu sắc trung tính (đen, trắng, xám)
    • Hoạt ảnh chậm và mượt mà
    • Ít lớp chuyển động (1-2 lớp)
    • Tập trung vào tính năng hơn là hiệu ứng
  4. Hình nền game-themed:

    Các tựa game phổ biến như Cyberpunk 2077, Genshin Impact, Valorant đang trở thành nguồn cảm hứng cho hình nền động. Các yếu tố phổ biến:

    • Nhân vật game chuyển động nhẹ
    • Bản đồ game style parallax
    • Hiệu ứng kỹ năng/phép thuật
    • Giao diện game (HUD) style
  5. Hình nền “dark mode” động:

    Phù hợp với xu hướng dark mode phổ biến, các hình nền này sử dụng màu tối với các hiệu ứng ánh sáng nhẹ:

    • Các hạt sáng chuyển động trên nền đen
    • Đường viền phát sáng (neon)
    • Hiệu ứng “glitch” nhẹ
    • Gradient tối từ đen đến xanh dương/tím
Lời khuyên chuyên gia:

Khi chọn xu hướng, hãy ưu tiên hình nền có:

  • Tỷ lệ khung hình phù hợp với màn hình của bạn
  • Tùy chọn điều chỉnh tốc độ hoạt ảnh
  • Chế độ “tắt khi đầy tài nguyên”
  • Hỗ trợ nhiều màn hình (nếu bạn dùng multi-monitor)

9. Giải Đáp Thắc Mắc Thường Gặp

Câu hỏi 1: Hình nền động có làm hỏng màn hình không?

Không, hình nền động hiện đại không gây hại cho màn hình nếu:

  • Không sử dụng màu tĩnh trong thời gian dài (risk burn-in trên OLED)
  • Hoạt ảnh không quá sáng hoặc có độ tương phản cực cao
  • Màn hình của bạn không quá cũ (công nghệ trước 2015)

Theo nghiên cứu từ Bộ Năng Lượng Hoa Kỳ, hình nền động không ảnh hưởng đến tuổi thọ màn hình LCD/LED nếu được thiết kế đúng cách.

Câu hỏi 2: Làm sao để hình nền động không lag?

Áp dụng các bước sau:

  1. Giảm độ phân giải nếu cần (ví dụ: từ 4K xuống 1440p)
  2. Giảm FPS xuống 30 nếu card đồ họa yếu
  3. Đóng các ứng dụng nền không cần thiết
  4. Cập nhật driver đồ họa mới nhất
  5. Sử dụng SSD thay vì HDD
  6. Bật chế độ “Pause when fullscreen applications are running”

Câu hỏi 3: Có thể tạo hình nền động từ ảnh tĩnh không?

Có, bạn có thể sử dụng các công cụ sau:

  • Wallpaper Engine: Chức năng “Create from Image” với hiệu ứng parallax tự động
  • PhotoShop + After Effects: Tạo hoạt ảnh từ ảnh tĩnh
  • 3D Ken Burns Effect: Sử dụng Adobe Premiere Pro để tạo hiệu ứng zoom/chuyển động nhẹ

Câu hỏi 4: Hình nền động có ảnh hưởng đến game không?

Có, nhưng bạn có thể giảm thiểu tác động:

  • Hầu hết phần mềm hình nền động tự động tắt khi chạy game toàn màn hình
  • Trong Wallpaper Engine, bật “Pause when games are running” trong cài đặt
  • Sử dụng chế độ “Low Power Mode” khi chơi game
  • Đối với game cạnh tranh (CS:GO, Valorant), nên tắt hoàn toàn hình nền động

Nghiên cứu từ NVIDIA cho thấy hình nền động có thể giảm FPS game từ 2-7% nếu không được tối ưu hóa.

Câu hỏi 5: Làm sao để tạo hình nền động cho nhiều màn hình?

Áp dụng các giải pháp sau:

  • Wallpaper Engine: Hỗ trợ native multi-monitor, có thể thiết lập hình nền khác nhau cho từng màn
  • Lively Wallpaper: Chọn “Span” mode để hình nền trải dài qua nhiều màn hình
  • DisplayFusion (Windows): Công cụ mạnh mẽ để quản lý hình nền trên nhiều màn hình
  • Thủ thuật: Tạo hình nền với tỷ lệ tổng (ví dụ: 3840×1080 cho 2 màn Full HD ngang)

10. Nguồn Tài Nguyên Hữu Ích

Dưới đây là các nguồn tài nguyên chất lượng cao để học tập và tải hình nền động:

11. Kết Luận & Khuyến Nghị

Tạo và sử dụng hình nền động là một cách tuyệt vời để cá nhân hóa không gian làm việc của bạn. Tuy nhiên, để có trải nghiệm tốt nhất:

  1. Bắt đầu với các giải pháp đơn giản:

    Nếu bạn mới bắt đầu, hãy thử các hình nền parallax hoặc gradient động trước khi chuyển sang 3D hoặc video.

  2. Luôn tối ưu hóa hiệu suất:

    Sử dụng công cụ tính toán ở đầu trang để ước lượng tác động đến hệ thống của bạn.

  3. Theo dõi nhiệt độ hệ thống:

    Sử dụng HWMonitor hoặc Core Temp để đảm bảo nhiệt độ CPU/GPU không vượt quá ngưỡng an toàn.

  4. Cân nhắc sử dụng pin:

    Trên laptop, nên tắt hình nền động khi không cắm sạc để kéo dài tuổi thọ pin.

  5. Cập nhật thường xuyên:

    Cập nhật driver đồ họa và phần mềm hình nền động để có hiệu suất và tính năng tốt nhất.

  6. Thử nghiệm với nhiều tùy chọn:

    Không ngại thay đổi hình nền thường xuyên để tìm kiểu phù hợp với nhu cầu và sở thích của bạn.

Với những kiến thức và công cụ trong hướng dẫn này, bạn hoàn toàn có thể tạo ra những hình nền động ấn tượng, tối ưu hóa cho hệ thống của mình. Hãy bắt đầu với những thiết kế đơn giản và dần dần khám phá những hiệu ứng phức tạp hơn khi bạn đã quen với quy trình.

Nếu bạn có bất kỳ câu hỏi nào hoặc cần hỗ trợ thêm, đừng ngần ngại tham gia các cộng đồng được liệt kê ở trên – chúng là nguồn tài nguyên quý giá với nhiều chuyên gia sẵn sàng giúp đỡ.

`, '3d': `// Mã mẫu 3D với Three.js const scene = new THREE.Scene(); const camera = new THREE.PerspectiveCamera(75, window.innerWidth / window.innerHeight, 0.1, 1000); const renderer = new THREE.WebGLRenderer({ antialias: ${performance >= 3} }); renderer.setSize(window.innerWidth, window.innerHeight); document.body.appendChild(renderer.domElement); // Thêm ${performance * 2} vật thể 3D dựa trên cấp độ hiệu suất for (let i = 0; i < ${performance * 2}; i++) { const geometry = new THREE.${['BoxGeometry', 'SphereGeometry', 'TorusGeometry'][i % 3]}(1, 1, 1); const material = new THREE.MeshStandardMaterial({ color: 0x${Math.floor(Math.random()*16777215).toString(16)}, roughness: 0.4, metalness: 0.2 }); const object = new THREE.Mesh(geometry, material); object.position.set( (Math.random() - 0.5) * 10, (Math.random() - 0.5) * 10, (Math.random() - 0.5) * 10 ); scene.add(object); } // Ánh sáng const light = new THREE.AmbientLight(0xffffff, 0.5); scene.add(light); const directionalLight = new THREE.DirectionalLight(0xffffff, 0.8); directionalLight.position.set(1, 1, 1); scene.add(directionalLight); camera.position.z = 5; function animate() { requestAnimationFrame(animate); scene.children.forEach(child => { if (child instanceof THREE.Mesh) { child.rotation.x += 0.005; child.rotation.y += 0.005; } }); renderer.render(scene, camera); } animate();` }; return templates[type] || templates['parallax']; } function generatePerformanceChart(animationType, performanceLevel, gpuAcceleration) { const ctx = document.getElementById('wpc-chart').getContext('2d'); // Destroy previous chart if it exists if (window.performanceChart) { window.performanceChart.destroy(); } // Data based on animation type and performance level const cpuUsage = { 'parallax': [5, 10, 15, 20, 25], 'particles': [10, 18, 25, 35, 45], 'gradient': [2, 3, 5, 7, 10], 'video': [15, 25, 35, 50, 65], '3d': [20, 35, 50, 70, 90] }; const gpuUsage = { 'parallax': [3, 7, 12, 18, 25], 'particles': [8, 15, 25, 40, 60], 'gradient': [1, 2, 3, 5, 8], 'video': [10, 20, 35, 50, 70], '3d': [30, 50, 70, 90, 100] }; const memoryUsage = { 'parallax': [50, 80, 120, 180, 250], 'particles': [80, 120, 180, 250, 350], 'gradient': [20, 30, 50, 80, 120], 'video': [150, 200, 300, 450, 600], '3d': [200, 300, 450, 600, 800] }; const currentCpu = cpuUsage[animationType][performanceLevel - 1]; const currentGpu = gpuUsage[animationType][performanceLevel - 1]; const currentMem = memoryUsage[animationType][performanceLevel - 1]; // Adjust GPU usage if GPU acceleration is off const adjustedGpu = gpuAcceleration ? currentGpu : Math.round(currentGpu * 0.3); const adjustedCpu = gpuAcceleration ? currentCpu : Math.round(currentCpu * 1.5); window.performanceChart = new Chart(ctx, { type: 'bar', data: { labels: ['Sử dụng CPU (%)', 'Sử dụng GPU (%)', 'Bộ nhớ (MB)'], datasets: [{ label: `Hiệu suất ${['Thấp', 'Trung bình thấp', 'Trung bình', 'Trung bình cao', 'Cao'][performanceLevel - 1]}`, data: [adjustedCpu, adjustedGpu, currentMem], backgroundColor: [ 'rgba(37, 99, 235, 0.7)', 'rgba(79, 70, 229, 0.7)', 'rgba(124, 58, 237, 0.7)' ], borderColor: [ 'rgba(37, 99, 235, 1)', 'rgba(79, 70, 229, 1)', 'rgba(124, 58, 237, 1)' ], borderWidth: 1 }] }, options: { responsive: true, maintainAspectRatio: false, scales: { y: { beginAtZero: true, max: Math.max(adjustedCpu, adjustedGpu, currentMem) * 1.2 } }, plugins: { title: { display: true, text: `Tác động hiệu suất của ${animationType} (Cấp độ ${performanceLevel})`, font: { size: 14, weight: 'bold' } }, tooltip: { callbacks: { label: function(context) { let label = context.dataset.label || ''; if (label) { label += ': '; } if (context.parsed.y !== null) { if (context.dataIndex === 0) { label += context.parsed.y + '% CPU'; } else if (context.dataIndex === 1) { label += context.parsed.y + '% GPU'; } else { label += context.parsed.y + 'MB RAM'; } } return label; } } } } } }); } function generateParallaxDemo() { const ctx = document.getElementById('wpc-parallax-demo').getContext('2d'); const canvas = document.getElementById('wpc-parallax-demo'); // Set canvas size canvas.width = canvas.parentElement.clientWidth; canvas.height = 300; // Layer data const layers = [ { speed: 0.1, color: 'rgba(30, 41, 59, 0.8)', height: 100, y: 50 }, { speed: 0.3, color: 'rgba(15, 23, 42, 0.7)', height: 150, y: 100 }, { speed: 0.5, color: 'rgba(37, 99, 235, 0.6)', height: 200, y: 150 }, { speed: 0.7, color: 'rgba(59, 130, 246, 0.5)', height: 250, y: 200 }, { speed: 0.9, color: 'rgba(99, 102, 241, 0.4)', height: 300, y: 250 } ]; // Mouse position tracking let mouseX = 0; canvas.addEventListener('mousemove', (e) => { const rect = canvas.getBoundingClientRect(); mouseX = ((e.clientX - rect.left) / canvas.width) * 200 - 100; }); function draw() { ctx.clearRect(0, 0, canvas.width, canvas.height); // Draw background ctx.fillStyle = '#f8fafc'; ctx.fillRect(0, 0, canvas.width, canvas.height); // Draw parallax layers layers.forEach(layer => { const offset = mouseX * layer.speed; ctx.fillStyle = layer.color; ctx.beginPath(); ctx.moveTo(0, layer.y); ctx.bezierCurveTo( canvas.width/4 + offset, layer.y - 20, canvas.width*3/4 + offset, layer.y + 20, canvas.width, layer.y ); ctx.lineTo(canvas.width, layer.y + layer.height); ctx.bezierCurveTo( canvas.width*3/4 + offset, layer.y + layer.height + 20, canvas.width/4 + offset, layer.y + layer.height - 20, 0, layer.y + layer.height ); ctx.closePath(); ctx.fill(); }); // Draw labels ctx.fillStyle = '#1e293b'; ctx.font = 'bold 12px Segoe UI'; layers.forEach((layer, i) => { ctx.fillText(`Lớp ${i+1} (tốc độ: ${layer.speed})`, 10, layer.y + 20); }); requestAnimationFrame(draw); } draw(); } // Initialize parallax demo generateParallaxDemo(); // Initialize with default chart generatePerformanceChart('parallax', 3, true); });

Leave a Reply

Your email address will not be published. Required fields are marked *