1 điểm bởi GN⁺ 2024-05-25 | Chưa có bình luận nào. | Chia sẻ qua WhatsApp

Voxel Displacement Renderer — hiện đại hóa thẩm mỹ 3D retro

Động lực thẩm mỹ

  • Các game 3D đầu đến giữa thập niên 90 như Doom, Quake và Duke Nukem đã tạo ra ảnh hưởng lớn về cả công nghệ lẫn gameplay.
  • Gần đây, những giới hạn thị giác của các game này lại mang đến một sức hút retro.
  • Hình học môi trường đơn giản nhưng giàu trí tưởng tượng, còn texture có ranh giới pixel sắc nét.
  • Phong cách này tương tự với kiểu trừu tượng hóa giàu tính cách của pixel art 2D.
  • Nó đang được ưa chuộng trong các game hiện đại lấy cảm hứng retro và các tựa game indie 3D.

Cách voxel thông thường hoạt động

  • Mesh voxel là một lưới 3 chiều trong đó mọi ô hình khối đều được lấp đầy hoặc để trống.
  • Voxel lớn có texture, còn voxel nhỏ là màu đơn.
  • Để tạo môi trường lớn, có thể đặt toàn bộ hình học vào một lưới dùng chung hoặc đặt các mesh voxel độc lập trong cùng một không gian.
  • Khi đã quyết định tạo thế giới game bằng voxel, cần xây dựng hình học voxel, đồng thời logic render và gameplay cũng phải hoạt động ở cấp độ voxel.
  • Việc thêm hoặc xóa hình học trong mesh voxel là khá dễ dàng.

Cách dịch chuyển thông thường hoạt động

  • Displacement mapping xác định mỗi pixel trong texture nên được đẩy vào trong hay ra ngoài bao nhiêu so với bề mặt của mesh.
  • Phần mềm dựng hình 3D có thể chia nhỏ mesh và dịch chuyển các đỉnh mới để áp dụng displacement mapping.
  • Trong đồ họa thời gian thực, nó được dùng cùng với hiệu ứng đổ bóng bề mặt để tạo chi tiết hình học tinh vi mà không cần thay đổi hình dạng vật lý của mesh.
  • Shell mapping cho phép nhìn thấy phần dịch chuyển dọc theo đường viền silhouette của đối tượng.

Những gì tôi đã tạo ra — sự pha trộn giữa voxel và displacement mapping

  • Dùng các mesh low-poly truyền thống để mô hình hóa môi trường của game 3D cổ điển, rồi áp dụng displacement map để xác định chi tiết bề mặt ở quy mô voxel.
  • Sử dụng mesh tam giác và lượng thông tin displacement map hạn chế để chuyển đổi dữ liệu hình học mà renderer sẽ nạp lên GPU.
  • Tiền xử lý texture để tạo ra thông tin cần thiết trong lúc render.
  • Dùng trạng thái của mesh và texture để render hình học dịch chuyển voxel.

Tạo asset nghệ thuật và môi trường

  • Cần tạo hai loại asset: texture và mesh.
  • Mỗi texture gồm một bản đồ albedo và một bản đồ displacement.
  • Các mesh là những mesh tam giác low-poly với texture mapping truyền thống.
  • Cấu trúc của mesh và cách ánh xạ texture có một số ràng buộc.

Ưu điểm của cách tiếp cận này

  • Có thể tạo nội dung bằng quy trình làm việc quen thuộc.
  • Vì môi trường được xây dựng bằng mesh tam giác nên không cần tự viết physics engine hay character controller.
  • Phần lớn các hệ thống gameplay không cần quan tâm đến chi tiết voxel.

Kế hoạch sắp tới

  • Vẫn còn nhiều tính năng để bổ sung hoặc cải thiện cho chính renderer.
  • Đang nghiên cứu cách tích hợp các đối tượng nhỏ hoặc đối tượng có animation.
  • Có kế hoạch cải thiện việc triển khai ánh sáng.
  • Tôi cho rằng tích hợp kỹ thuật render này vào game là một hướng đi thực tế.

Ý kiến của GN⁺

  • Thách thức kỹ thuật: Kết hợp voxel với displacement mapping là một công việc rất khó. Nó đòi hỏi nhiều cơ chế tùy biến.
  • Tính thực tiễn: Kỹ thuật này có khả năng cao được tích hợp vào các game engine hiện có. Điều đó cho phép nhà phát triển tận dụng các hệ thống sẵn có.
  • Sức hút thẩm mỹ: Việc tái diễn giải hiện đại thẩm mỹ của các game 3D retro có thể hấp dẫn với nhiều game thủ.
  • Cân nhắc hiệu năng: Kỹ thuật render này cần được tối ưu hiệu năng, đặc biệt quan trọng trong render thời gian thực.
  • Tiềm năng tương lai: Công nghệ này có thể áp dụng cho nhiều thể loại game khác nhau và đặc biệt hữu ích với các nhà phát triển game indie.

Chưa có bình luận nào.

Chưa có bình luận nào.