Sử dụng PhysX, làm thế nào tôi có thể dự đoán nơi tôi sẽ cần để tạo các hình dạng va chạm địa hình theo thủ tục?


8

Trong tình huống này, tôi có các giá trị chiều cao địa hình tôi tạo theo thủ tục. Để kết xuất, tôi sử dụng vị trí của máy ảnh để tạo bản đồ chiều cao có kích thước phù hợp. Tuy nhiên, để va chạm, tôi cần có các trường chiều cao được tạo trong các khu vực nơi các đối tượng có thể giao nhau.

Giải pháp tiềm năng hiện tại của tôi, có thể là ngây thơ, là lặp đi lặp lại trên tất cả các tác nhân vật lý "thức tỉnh", sử dụng giới hạn / phạm vi và vận tốc của chúng để tạo ra các quả cầu trong đó chúng có thể nằm sau một bản cập nhật vật lý, sau đó tạo ra các giá trị chiều cao cho các nhóm bao gồm các nhóm của các diễn viên. Tuy nhiên, phần lớn dữ liệu đó đã được PhysX tính toán.

Có một số API, có thể là một tập hợp các truy vấn, thậm chí các cuộc gọi lại từ hệ thống không gian, mà tôi có thể sử dụng để dự đoán nơi sẽ cần các giá trị độ cao địa hình?


Có vẻ như tôi đã mã hóa giải pháp tốt nhất. Không chắc chắn cách thức hoạt động của PhysX, có thể thay vào đó, bạn có thể có các kích hoạt hình hộp giới hạn trên các khối địa hình của mình và tạo ra các hình dạng va chạm nếu có thứ gì đó xâm nhập (kích hoạt) hộp này. Về cơ bản những gì bạn đang làm nhưng cách khác và với toán học va chạm PhysX.
aeroson

Câu trả lời:


0

Nếu bạn đang tạo lưới từ dữ liệu của mình để hiển thị, bạn có thể chuyển lưới cho PhysX dưới dạng lưới collider. Có nghĩa là PhysX và trình kết xuất của bạn tham chiếu cùng một đối tượng cắt trên đầu.


1
Không phù hợp khi cho rằng địa hình có thể nhìn thấy là vật thể địa hình duy nhất có thể va chạm với nhau. Vấn đề là nhanh chóng xác định phạm vi địa hình nào có thể được va chạm để có thể tạo ra các hình dạng va chạm cho chúng theo yêu cầu.
Sion Sheevok

1
vi.wikipedia.org/wiki/Octree chia dữ liệu thế giới thành các khối và "cắt" chúng ra bất cứ khi nào bạn có một thực thể có thể va chạm miễn phí, sau đó bạn có thể thực hiện cuộc gọi đến dữ liệu địa hình trong một khu vực rất nhỏ với rất ít chi phí. Dưới đây là một ví dụ sử dụng tứ giác cho va chạm hạt 2D nhưng khái niệm này giống với Octrees nhưng có thêm một chiều. Điều này cũng sẽ cho phép các vật thể có thể va chạm tự do riêng lẻ va chạm với nhau. youtube.com/watch?v=fuexOsLOfl0 Sau đó bạn có thể tạo ra va chạm rất nhỏ từ các dữ liệu địa hình gần các đối tượng collidable miễn phí
Đó là Vô gia cư Guy

1
Tôi quen thuộc với octrees và phân vùng không gian - PhysX đã thực hiện điều đó trong nội bộ. Tôi cần thông tin từ PhysX về hệ thống phân vùng không gian của nó để tôi có thể tạo các hình dạng va chạm địa hình ở những nơi cần thiết vì địa hình là thủ tục.
Sion Sheevok

1
Bạn đang thiếu điểm. Tôi đang tạo dữ liệu cho địa hình. Tôi đang lấy mẫu dữ liệu đó để xây dựng một trường chiều cao. Tôi cần dự đoán nơi cần dữ liệu địa hình. Nếu có một đối tượng ở (-100.0, -100.0), tôi cần tạo địa hình gần (-100.0, -100.0) trước khi tôi mô phỏng vật lý. Tôi cũng cần tạo ra một khu vực địa hình đủ lớn nếu không một vật thể có thể di chuyển ra ngoài một khu vực và kết thúc bên dưới nơi địa hình sẽ là nếu nó được tạo ra trong khu vực đó. PhysX phải theo dõi thông tin đó để dự đoán các va chạm tiềm ẩn - Tôi cần thông tin đó. Tôi không biết nếu / làm thế nào để làm như vậy.
Sion Sheevok

1
Đó là công việc xoay quanh phương pháp tôi đã nêu trong câu hỏi của mình, vâng. Tôi đang hỏi liệu tôi có thể có được công việc mà PhysX đã thực hiện hay không để tôi không tính toán kết quả tương tự. Tôi chưa tìm thấy cách nào, nhưng tôi không quen với API PhysX mà không cấp phép.
Sion Sheevok
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.