Tôi không biết liệu có cách nào "chính xác" để thực hiện hay không, nhưng có khả năng đó chỉ là một phép biến đổi tuyến tính có tính thẩm mỹ được áp dụng với độ lệch được tính từ khoảng cách đến điểm.
Vì vậy, đối với bất kỳ yếu tố nào bạn đang làm việc với, bạn:
- tìm khoảng cách đến tâm của sợi dọc (d)
- tính 1 - d / khoảng cách tối đa của hiệu ứng bạn muốn (i cho cường độ)
- kẹp nó vào [0-1]
- biến đổi phần tử bằng lerp (danh tính, biến đổi, i)
Các cuộc chiến tranh hình học, Iirc đã áp dụng rằng như một sợi dọc biến dạng đối với một số yếu tố, trong khi các yếu tố khác như các hạt chỉ bị ảnh hưởng bởi "lực", mà không bị biến dạng. Bạn có thể áp dụng biến dạng trong một shader đỉnh, giả sử bạn có đủ các đỉnh để lấy mẫu hiệu ứng trơn tru. Ngoài ra, bạn có thể hiển thị mọi thứ cần ảnh hưởng đến bộ đệm ngoài màn hình, sau đó hiển thị kết quả lên một hình tứ giác độc đáo mà bạn áp dụng biến dạng, trước khi thêm tất cả các phần tử không bị biến dạng lên trên.
Đối với biến đổi, tỉ lệ sẽ cung cấp cho bạn sự hấp dẫn trong cái nhìn. Nếu tôi nhớ chính xác, cũng có một số xoắn đang diễn ra, đó sẽ chỉ là một vòng quay nhỏ.
Bạn có thể nhận được fancier và fancier với các tính toán của bạn về yếu tố cường độ để có được hiệu ứng trông kỳ dị hơn. Ví dụ, bạn có thể tính góc (a) mà một phần tử có liên quan đến tâm và yếu tố đó. Lấy cos (a) và bạn có thể tạo ra sóng hướng tâm trong hiệu ứng. Những gì bạn muốn làm là thiết lập cho mình với mã giàn giáo cần thiết và sau đó đi đến thị trấn thử nghiệm với các kết hợp khác nhau của các yếu tố.