Ánh sáng 2D được thực hiện như thế nào?


58

Tôi tự hỏi cách tốt nhất để tiếp cận hiệu ứng "chiếu sáng" trong các trò chơi 2D là gì. Chẳng hạn, nếu nhân vật chính của tôi phát sáng, tôi có thể sử dụng những kỹ thuật nào để hoàn thành hiệu ứng hình ảnh của nhân vật phát sáng khi ở gần các vật thể khác sẽ bị ảnh hưởng bởi ánh sáng?

Câu trả lời:


39

Bạn có thể phủ một kết cấu hiệu ứng phát sáng đơn giản với các cạnh trong suốt mềm mại. Nếu bạn muốn ánh sáng / bóng tương tự như những gì bạn có thể tìm thấy trong thế giới 3d, bạn có thể làm một cái gì đó như thế này: http://www.cirthinzima.com/2010/07/my-technique-for-the-shader-basing-dynamic -2d-bóng / . Tuy nhiên, nếu bạn chưa quen với HLSL, thì đó có thể là một chút quá nhiều.

chỉnh sửa : Tôi tình cờ tìm thấy một hướng dẫn ánh sáng HTML5 2d đẹp


Liên kết đó chính xác là những gì tôi đang tìm kiếm. Tôi không thể cảm ơn đủ; Điều này là vô cùng hữu ích.
Christopher Horenstein

7

Có một dự án XNA mã nguồn mở là một thư viện tuyệt vời và triển khai ánh sáng 2D có thể tương thích với hồ sơ Reach của XNA 4.0 - Krypton XNA .


4

Bạn sẽ cần một hiệu ứng đổ bóng hậu lọc được viết bằng HLSL hoặc GLSL. Trình tạo bóng sẽ nhận tọa độ trình phát và sửa đổi độ sáng cho tất cả các pixel trong một phạm vi nhất định. XNA hỗ trợ shader 2D khá tốt.

Một giải pháp khác là mô phỏng độ sáng bằng cách sử dụng kết cấu với kênh alpha. Kết cấu sẽ chủ yếu là màu đen ngoại trừ một điểm trong suốt ở giữa. Kết cấu này chúng tôi là lớp phủ trên màn hình trò chơi của bạn với điểm trong suốt tập trung vào nhân vật người chơi 'phát sáng'. Các trò chơi phiêu lưu cũ đã sử dụng kỹ thuật này để mô phỏng đèn pin.


Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.