Điều gì sẽ là một bộ lọc tốt để tạo ra "biến dạng từ" từ bản đồ độ sâu?


10

Trong dự án của tôi, tôi đang tạo ra một hệ thống làm biến dạng một lưới (quần áo) có độ chi tiết cao để nó 'vừa' một lưới lồi. Để làm điều này, tôi sử dụng bản đồ độ sâu của vật phẩm và 'thân tàu' để xác định tại điểm nào trong không gian thế giới, độ lệch xảy ra và phạm vi.

Chỉ đơn giản là chuyển đổi tất cả các đỉnh bị che khuất thành độ sâu như được xác định bởi 'thân tàu' là khá hiệu quả và có hiệu suất tốt, nhưng nó gặp phải vấn đề không bảo tồn các tính năng của lưới và yêu cầu loại bỏ rộng rãi để tránh hiện tượng sai.

Thay vào đó, tôi muốn tạo ra từ bản đồ độ lệch sâu một tập hợp các 'biến dạng' đơn giản sẽ 'đẩy' * tất cả các đỉnh của lưới bị biến dạng ra ngoài (trong không gian thế giới). Bằng cách này, tất cả các tính năng của lưới được bảo tồn và không cần phải có các phương pháp phỏng đoán phức tạp để loại bỏ các đỉnh không phù hợp.

Tôi không chắc chắn làm thế nào để đi về việc tạo ra bộ biến dạng này tuy nhiên. Tôi đang tưởng tượng một cái gì đó giống như một thuật toán cố gắng khớp một bề mặt hình cầu với từng mảng sai lệch tiếp giáp trong một phạm vi nhất định, nhưng không biết bắt đầu làm việc này ở đâu.

Bất cứ ai cũng có thể đề xuất một bộ lọc hoặc thuật toán phù hợp để tạo ra các biến dạng? Hay nói cách khác là "nén" bản đồ độ sâu?

(* Đẩy vì nó phù hợp với hình người 'lồi' lồi nên các phép biến đổi có khả năng là 'hình cầu' từ POV của bề mặt.)

Chỉnh sửa: Đây là một hình ảnh / sơ đồ được gợi ý đúng để minh họa những gì tôi đang cố gắng đạt được.

Ngoài ra, tôi nên nói vì câu hỏi này đã được đăng, tôi đã làm việc nhiều hơn về vấn đề này, và mặc dù tôi không bao giờ giải quyết làm thế nào để có được các biến dạng, cuối cùng tôi đã quyết định rằng bản đồ độ sâu cho điều này là không phù hợp như:

  1. Nếu lưới bị biến dạng không hoàn thành, có thể lấy các texels trong bản đồ có nghĩa là ở phía bên kia của lưới lồi (vì chúng không bị che khuất bởi những người ở gần camera hơn ở phía bên phải).
  2. Hiệu quả không cao như tôi mong đợi do thực tế cần 6 bản đồ cho mỗi biến dạng.

Không phải những thứ này không thể giải quyết được, nhưng giải pháp khác, liên quan đến thử nghiệm va chạm trong hạt nhân chạy trên GPU, dẫn đến kết quả chất lượng cao hơn và đơn giản hơn nhiều, mặc dù có thể không nhanh như vậy.

Tôi vẫn nghĩ rằng vấn đề câu hỏi này là thú vị mặc dù và sẽ quan tâm đến bất kỳ câu trả lời vì tôi chắc chắn có những tình huống sẽ được ưa thích.

nhập mô tả hình ảnh ở đây


Bạn có thể vui lòng chèn một hình ảnh hoặc bản vẽ của hiệu ứng bạn muốn đạt được? Nó sẽ dễ dàng hơn để hiểu vấn đề của bạn.
lau

Gửi một bình luận dưới đây, một bức tranh hoặc bản vẽ có thể giúp ích rất nhiều. Có nhiều cách để mô phỏng cách quần áo bọc các bộ phận cơ thể và có thể ý tưởng biến dạng của bạn chỉ là một trong nhiều cách có thể áp dụng.
sam hocevar

Điều gì là sai với việc di chuyển toàn bộ hình dạng?
Ali1S 232

Gajoo, Hãy tưởng tượng nếu hình dạng quấn quanh lưới, di chuyển nó theo một hướng sẽ khiến nó chỉ tiếp tục cắt hình ở phía bên kia - mặc dù thực sự đó là những gì các biến dạng đang làm, chỉ là một chút hình dạng tại một thời điểm.
sebf

SamHocevar, câu hỏi này chỉ nói về sự phù hợp - bạn có một lưới nhỏ hơn một chút so với ký tự mà nó có nghĩa là phù hợp, do đó, lưới được điều chỉnh cho phù hợp. Việc thực hiện trường độ sâu đã được chọn vì lý do hiệu suất, các biến dạng được chọn vì khả năng tiếp cận tính năng bảo tồn tính năng đó.
sebf

Câu trả lời:


2

Bạn có một bản đồ độ sâu, mà tôi giả sử chỉ đơn giản là khoảng cách giữa lưới lồi A và lưới B bị biến dạng trung tính, và bạn có các mặt phẳng của lưới A.

Những gì bạn đang thiếu là trọng số (hoặc nhóm) về cách mỗi đỉnh trên lưới B ảnh hưởng đến hàng xóm của nó. Ví dụ, khi đỉnh trung tâm được di chuyển, nó cũng sẽ kéo theo các câu lân cận của nó theo một số lượng (phần trăm) nếu chúng nằm trong cùng một nhóm.

Nếu bạn có một nhóm các câu ảnh hưởng lẫn nhau 100% thì tất cả chúng sẽ bị đẩy ra xa nhất từ ​​bản đồ độ sâu của bạn như thể tất cả chúng là một phần của cấu trúc thép không thể chịu được di chuyển như một đơn vị, đặt ở mức 50% cấu trúc này có thể hoạt động giống như các tấm cao su dày và 10% giống như bọc nhựa phù hợp vì mỗi đỉnh hầu như không ảnh hưởng đến hàng xóm của nó (đó là những gì bạn có bây giờ.

Rõ ràng là có một số pha trộn và hợp nhất các giá trị đang diễn ra. Giống như @Gajoo đã nói, "có gì sai khi di chuyển toàn bộ hình dạng?"

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.