Làm cách nào để sao chép hiệu ứng dọc từ Geometry Wars?


12

Tôi đang cố gắng đạt được hiệu ứng dọc mà bạn thấy trong các trò chơi như Geometry Wars .

Ảnh chụp màn hình của Cuộc chiến hình học bao gồm hiệu ứng dọc

Ai đó có thể giúp giải thích những gì đang xảy ra ở đây? Tôi cảm thấy như trục z của lưới bị thao túng theo một cách nào đó, bằng mọi cách, bởi người lập trình, nhưng có lẽ có một số phương trình toán học đã biết để thực sự có được hiệu ứng cong vênh chính xác?

Chỉnh sửa: Để cụ thể hơn, tôi có nghĩa là cong vênh của lưới điện. Làm thế nào mọi thứ trông kéo về phía trục z âm và sau đó bị trả lại.


1
Bạn đang đề cập đến uốn cong nền? Khi đó là Cuộc chiến hình học , có rất nhiều hỗn loạn trong ảnh chụp màn hình, điều này khiến tôi phải gãi đầu một lúc để thử và nói những gì bạn đang đề cập đến.
Grace Note

Có uốn nền về.
Joey Green

Câu trả lời:


12

Việc thực hiện 10 phút đối với một hệ thống lò xo đơn giản (hoặc do đó, ông nói trên blog của mình ;)). Hệ thống có thể xử lý nhiều sợi dọc và những thứ khác làm méo lưới.

Cập nhật để thêm một số chi tiết bổ sung nhỏ:

Một vài chi tiết khác. Từ một cuộc phỏng vấn đã từng được lưu trữ trên trang web Bizarre Creations (trang web đó hiện đã biến mất do đóng cửa công ty), có một câu hỏi:

Q: Một trong những tính năng đồ họa mới nổi bật nhất trong trò chơi là khu vực chơi "lưới trọng lực". Làm thế nào bạn làm cho điều này trông rất mát mẻ; Có phải mọi đối tượng trong trò chơi thực sự có lực hấp dẫn riêng của nó? Bản thân lưới điện được tạo thành từ 60.000 điểm, mỗi điểm tác dụng một lực nhỏ lên người hàng xóm. Bản thân mô phỏng nằm ở rìa của sự ổn định, đó là nguyên nhân khiến nó bị lung lay rất nhiều khi một trong những đối tượng trò chơi cho nó một cú hích nhỏ! Chỉ có một vài loại đối tượng ảnh hưởng đến lưới điện. Vì hệ thống lưới khá tốn kém để tính toán, nó thực sự chạy trên lõi thứ hai cùng với hệ thống âm thanh, (lõi thứ nhất được dành riêng cho trò chơi và các hạt, thứ ba được sử dụng để kết xuất âm thanh).


1

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ố.


Thật tuyệt, cảm ơn tôi sẽ thử nó. Là thuật toán bạn mô tả về cơ bản là một hiệu ứng mùa xuân?
Joey Green

Không, tôi đã không mô tả làm thế nào nó sẽ thay đổi theo thời gian, vì vậy không phải là một mùa xuân. Tôi chỉ mô tả làm thế nào để có được hình dạng méo bạn sau. Hoạt hình nó theo phong cách GW sẽ yêu cầu thêm một yếu tố khác lên đó, điều chỉnh i theo thời gian. Hãy thử thực hiện toàn bộ và nó sẽ trở nên rõ ràng với bạn rằng bạn có thể mở rộng quy mô i để thư giãn hoặc tăng cường hiệu quả của bạn. Vượt qua một sóng hình sin thông qua giá trị điều chế đó hoặc nảy nó như lò xo 1D và bạn sẽ trả lại toàn bộ hiệu quả. Một lần nữa, một khi bạn có một khai thác với một loạt các biến nổi xung quanh, thử nghiệm sẽ là bạn của bạn.
Chris Subagio
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.