Tôi hiện đang làm việc trên một bản sao 2D "Worms" trong XNA và một trong những tính năng là địa hình "có thể biến dạng" (ví dụ khi một tên lửa chạm vào địa hình, có một vụ nổ và một đoạn địa hình biến mất).
Làm thế nào tôi hiện đang làm điều này là bằng cách sử dụng một kết cấu có giá trị Đỏ cao hơn dần dần khi nó tiếp cận trung tâm. Tôi xoay vòng qua từng pixel của kết cấu "Biến dạng" đó và nếu pixel hiện tại trùng với pixel địa hình và có giá trị đỏ đủ cao, tôi sẽ sửa đổi mảng màu biểu thị địa hình thành trong suốt. Nếu pixel hiện tại KHÔNG có giá trị Đỏ đủ cao, tôi sẽ làm đen màu địa hình (nó sẽ càng đen thì giá trị Đỏ càng gần ngưỡng). Vào cuối hoạt động này, tôi sử dụng SetData để cập nhật kết cấu địa hình của mình.
Tôi nhận ra đây không phải là một cách tốt để làm điều đó, không chỉ bởi vì tôi đã đọc về các quầy hàng đường ống và như vậy, mà còn bởi vì nó có thể trở nên khá chậm trễ nếu nhiều miệng hố được thêm vào cùng một lúc. Tôi muốn làm lại Thế hệ miệng núi lửa của mình trên GPU thay vì sử dụng Mục tiêu kết xuất "ping-ponging" giữa mục tiêu và kết cấu cần sửa đổi. Đó không phải là vấn đề, tôi biết làm thế nào để làm điều đó. vấn đề là tôi không biết làm thế nào để giữ hiệu ứng ghi đĩa của mình bằng phương pháp này.
Đây là cách hiệu ứng ghi hình ngay bây giờ:
Có ai có ý tưởng làm thế nào tôi có thể tạo ra một hiệu ứng ghi tương tự (làm tối các cạnh xung quanh miệng núi lửa đã hình thành) không? Tôi hoàn toàn xa lạ với Shader nhưng nếu nó đòi hỏi tôi sẽ thực sự biết ơn nếu có ai đó hướng dẫn tôi cách làm. Nếu có bất kỳ cách nào khác cũng sẽ rất tuyệt.