Làm thế nào để tạo một đối tượng theo khuôn mẫu với mật độ mẫu thay đổi trong thời gian thực?


8

Giả sử có một số giá trị p, được tính trên mỗi khung, thay đổi liên tục trên bề mặt của một đối tượng. Giá trị pxác định mật độ của một số mẫu trên bề mặt. Ví dụ, trong trường hợp chỉ có hai mật độ có thể có nếu mật độ p < 0.3cao, nếu không thì nó thấp.

Tôi đã nghĩ đến một giải pháp cấp cao đơn giản: tạo hai kết cấu, mỗi mật độ khác nhau và dựa trên giá trị của pmẫu từ một mẫu thích hợp. Tuy nhiên, có một vấn đề với ranh giới giữa mật độ cao và thấp.

Dưới đây là một ví dụ để minh họa vấn đề (lưu ý vấn đề của tôi KHÔNG dành riêng cho mẫu chấm này. Tôi mô tả các mẫu tôi đang làm việc sau này):

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

Và đây là ngưỡng giữa thấp và cao- (hiển thị trên kết cấu mật độ cao nhưng không liên quan.) Nếu dưới dòng, nó ngụ ý kết cấu mật độ cao nên được lấy mẫu.

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

Và cuối cùng ở đây là so sánh giữa những gì mong muốn và những gì thực sự sẽ xảy ra bằng phương pháp này:

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

Vấn đề là khi một vòng tròn chỉ có mật độ cao đi qua đường, nó sẽ bị bỏ qua khi pchỉ ra kết cấu mật độ thấp được lấy mẫu, dẫn đến một vòng tròn bị cắt cụt. Tôi không biết làm thế nào để giải quyết vấn đề này vì pthay đổi mọi khung hình, vì vậy tôi không thể 'nướng' một ranh giới giữa hai mật độ. Thật dễ dàng để ngăn chặn vấn đề đảo ngược bằng cách tạo kết cấu mật độ cao từ kết cấu thấp hơn (nghĩa là nếu một vòng tròn nằm trên kết cấu mật độ thấp, đảm bảo nó nằm trên kết cấu mật độ cao.)

Tôi quan tâm nếu có ai có cách cải thiện giải pháp của tôi hoặc thậm chí có phương pháp khác hoàn toàn. Ràng buộc ở đây là ptính toán trên mỗi khung hình trong thời gian thực. Một ràng buộc khác liên quan đến kết cấu mẫu: mẫu có màu đen và trắng, trong đó màu đen là mẫu và màu trắng là nền (giống như các vòng tròn trong ví dụ). Các mẫu có thể không chỉ là hình dạng giống hệt nhau lặp đi lặp lại, mà bất kỳ sự sắp xếp của các hình dạng màu đen tùy ý trên nền trắng. (Có lẽ mẫu là sự lựa chọn sai từ.)

Tôi không quen thuộc với nghiên cứu trong lĩnh vực này vì vậy tôi không chắc chắn nên tìm từ khóa nào, vì vậy tôi thậm chí sẽ đánh giá cao nếu có ai có thể chỉ cho tôi đi đúng hướng.


3
Là kết cấu thực tế của bạn cũng chỉ là những chấm đen trên trắng? Nếu vậy, bạn có thể tạo kết cấu theo quy trình, ví dụ như lấy mẫu đĩa Poisson với bán kính khác nhau. Mặt khác, nếu kết cấu của bạn thực sự là một cái gì đó liên tục hơn, pha trộn có thể là một tùy chọn (điều đó sẽ không hoạt động tốt đối với các kết cấu rõ nét như ví dụ của bạn). Vì vậy, nếu bạn có thể làm rõ những gì mô hình / kết cấu thực tế của bạn trông như thế nào có thể giúp nhận được nhiều câu trả lời hữu ích hơn.
Martin Ender

1
Quá trình đăng bài? Một cái gì đó giống như một biến thể của phát hiện cạnh: viết khoảng cách đến trung tâm dấu chấm gần nhất sau đó, trong không gian màn hình, tìm kiếm vùng lân cận có kích thước chấm của từng pixel cho bất kỳ giá trị 0 (gần) nào. Điều này mang lại cho các chấm không gian màn hình, do đó bạn phải viết và lộn xộn với các dẫn xuất UV để quay lại không gian kết cấu ... Lưu ý rằng bạn vẫn gặp vấn đề liên tục - khi ranh giới cao / thấp di chuyển trên bề mặt, các chấm xuất hiện và biến mất. Nếu p có thể liên tục (một ranh giới mềm), bạn có thể thu nhỏ / phát triển các chấm dọc theo ranh giới ...
Daniel M Gessel

1
Một lựa chọn khác là nhìn vào Wang ốp lát. giới thiệu , di truyền gạch , đá quý GPU
maogenc

1
Bạn đã nhìn vào kết cấu ném bom? http.developer.nvidia.com/GPUGems/gpugems_ch20.html
Mikkel Gjoel

1
Bạn có thể đưa ra ý tưởng về phạm vi hình dạng / mẫu bạn cần bao quát và mức độ linh hoạt có thể có trong cách tiếp cận không? Đề xuất thay đổi bán kính vòng tròn của @ DanielMGessel thay vì mật độ của chúng có thể làm cho mọi thứ đơn giản hơn và cho hình ảnh động mượt mà hơn nhưng vẫn chưa rõ cách tiếp cận của bạn bị hạn chế bao nhiêu.
trichoplax

Câu trả lời:


6

Để đảm bảo rằng các hình dạng mẫu luôn luôn hiện diện hoặc vắng mặt, không bao giờ bị cắt, cần phải đảm bảo rằng cùng một pgiá trị được sử dụng cho tất cả các texels trong hình dạng. Trong ví dụ về vòng tròn của bạn, tất cả các texels trong một vòng tròn đã cho cần phải đồng ý p.

Tôi giả sử rằng bạn có một số cách đánh giá ptại một điểm nhất định trên bề mặt (cho dù nó được tra cứu từ một kết cấu hoặc được tính toán từ một số chức năng). Sau đó, một cách để đảm bảo một nhóm các texels đều nhận được cùng một pgiá trị là đảm bảo tất cả chúng đều tìm kiếm nó từ cùng một điểm.

UV của điểm đánh giá này có thể được lưu trữ trong các kênh bổ sung của kết cấu mẫu. Chẳng hạn, bạn có thể có các kênh màu đỏ và màu xanh lá cây lưu trữ tọa độ UV để đánh giá p, kênh màu xanh lưu trữ ngưỡng để bật phần tử mẫu đó và alpha lưu trữ mức xám đối xứng của mẫu sẽ hiển thị. Dữ liệu ngưỡng UV + cũng có thể ở một kết cấu thứ cấp riêng biệt nếu muốn.

Để tạo kết cấu ngưỡng UV + này, bắt đầu từ kết cấu mẫu đầu vào, bạn có thể lập trình tìm các thành phần được kết nối (ví dụ: bằng cách tìm kiếm các pixel đen và lấp đầy lũ lụt). Đặt điểm đánh giá cho tất cả các texels trong mỗi thành phần thành UV của trung tâm của thành phần đó và tạo ngưỡng ngẫu nhiên cho nó. Sau đó, khi kết xuất, sử dụng trình đổ bóng pixel lấy mẫu kết cấu này trước, sau đó tra pcứu điểm đánh giá đã cho và so sánh với ngưỡng đã cho.

Theo cách đó, mỗi hình dạng mẫu sẽ thấy một pgiá trị và ngưỡng đồng nhất và sẽ bật hoặc tắt hoàn toàn. Khi ptăng, nhiều hình dạng sẽ vượt qua ngưỡng của chúng và xuất hiện, tạo ấn tượng về mật độ thay đổi liên tục.


1
Tôi thực sự thích ý tưởng này, tôi sẽ phải thử nó. Nó làm cho ý nghĩa hoàn hảo. Cảm ơn!
Ryan

0

Một suy nghĩ khác là dọc theo những dòng này. Nếu bạn có một tập hợp điểm thống nhất được xác định trên mặt phẳng và chức năng ánh xạ từ mặt phẳng đến bề mặt mục tiêu thì hàm mật độ trên bề mặt là cách ánh xạ các khu vực từ bề mặt phẳng tới mục tiêu. Vì vậy, một bản đồ bảo tồn khu vực sẽ dẫn đến một điểm thống nhất trên mục tiêu.

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.