Làm thế nào để tôi tính toán chính xác phạm vi bảo hiểm của các đường cong phân tích chồng chéo?


10

Khử răng cưa của các hình dạng 2D sôi nổi để tính toán tỷ lệ của một pixel được bao phủ bởi hình dạng. Đối với các hình dạng không chồng chéo đơn giản, điều này không quá khó: kẹp hình dạng vào hình chữ nhật pixel và tính diện tích hình dạng kết quả. Nhưng nó trở nên khó khăn hơn nếu nhiều hình dạng chồng lên cùng một pixel. Các khu vực đơn giản chỉ có thể làm cho phạm vi bao phủ được tính toán quá cao, nếu nó bỏ qua số lượng mà một hình dạng bao phủ một hình dạng khác. Ví dụ, xem phần Hạn chế của bài viết này về kết xuất phông chữ . Bạn cũng có thể ở trong tình huống hai đường cong đến từ các vật thể khác nhau với màu sắc khác nhau (vì vậy nó không phải là về độ bao phủ toàn bộ cho sự kết hợp của hai hình dạng, mà là độ bao phủ của từng hình dạng riêng biệt).

Làm thế nào điều này sẽ được tính toán nếu bạn quan tâm về độ chính xác hoàn toàn? Thậm chí phức tạp hơn, làm thế nào để bạn tính toán phạm vi bảo hiểm chính xác cho các hình dạng không đa giác chồng chéo như các đường cong? Có một số điểm khi bạn không có sự lựa chọn nào khác ngoài việc quay trở lại với các kỹ thuật đa mẫu hoặc ngẫu nhiên?

Câu trả lời:


10

Thực sự không có cách nào tốt để làm điều này một cách hiệu quả phân tích cho tất cả các trường hợp góc. Hầu hết hoặc tất cả các trình kết xuất 2D thương mại cố gắng thực hiện tính toán bao phủ phân tích đều tạo ra các lỗi có thể dự đoán được mà các phương pháp đa mẫu không mắc phải.

Một vấn đề điển hình là hai hình dạng chồng chéo có chung một cạnh. Tình huống phổ biến là các kênh alpha tổng hợp với cạnh alpha quá dày có nghĩa là hơi bí danh. Hoặc nếu hình dạng có màu khác nhau, hệ thống sẽ nhầm lẫn màu nền là gì. Điều này là vô cùng khó chịu.

hình ảnh

Hình ảnh 1 : Công cụ kết xuất nhầm lẫn vùng phủ sóng và tạo một đường viền trắng mỏng, nơi không có đường viền nào.

Số tiền bảo hiểm hoàn hảo thứ hai để lọc hộp. Chúng tôi chắc chắn có thể làm tốt hơn. Xem xét rằng có rất nhiều trường hợp góc đặc biệt sẽ yêu cầu các thao tác boolean trên các hình dạng để làm đúng, siêu mẫu vẫn vượt trội. Trong thực tế, các ước tính bảo hiểm có thể được sử dụng để tập trung lấy mẫu ở nơi cần thiết nhất.

Tình huống có thể được đơn giản hóa thành đa giác ở cấp pixel phụ sau đó giải pháp phân tích rời rạc có thể được giải quyết. Nhưng điều này với chi phí linh hoạt. Ví dụ, không nằm ngoài câu hỏi rằng các hệ thống vectơ trong tương lai có thể muốn cho phép các đường mờ có chiều rộng thay đổi gây ra vấn đề cho các giải pháp phân tích, cũng như các đối tượng có màu khác nhau.

Làm thế nào để làm điều đó một cách phân tích

Cảnh phân tích

Hình 2 : Giả sử bạn có cảnh này, góc nhìn bùng nổ ở bên phải

Bây giờ bạn không thể chỉ làm điều này một cách phân tích, từng phần riêng biệt và sau đó hợp nhất dữ liệu. Bởi vì nó dẫn đến dữ liệu sai. Xem pha trộn alpha sẽ cho phép màu xanh tỏa ra các khoảng trống nếu bạn làm như vậy.

Những gì bạn phải làm là chia cảnh lên để mỗi hình dạng loại bỏ những gì ở bên dưới:

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

Hình 3 : Bạn cần cắt các bề mặt bên dưới.

Bây giờ nếu mọi thứ mờ đục thì đây là tất cả thẳng về phía trước. chỉ cần tính diện tích của mỗi mảnh và nhân nó với màu sắc và tổng hợp chúng lại với nhau. Bây giờ bạn có thể sử dụng một cái gì đó như thế này .

Tất cả điều này bị phá vỡ nếu hình dạng cá nhân của bạn không mờ đục nhưng thậm chí điều đó có thể được thực hiện ở một mức độ nào đó.

Nhớ lại:

  • Tính toán AA cần được thực hiện trong không gian màu tuyến tính và được chuyển đổi trở lại để sử dụng không gian.

Nói rằng chúng tôi không quan tâm nhiều đến hiệu quả. Làm thế nào chúng ta sẽ thực hiện các tính toán bảo hiểm cho các hoạt động boolean trên hình dạng? Là có thể nói chung, hoặc chỉ cho hình dạng cụ thể?
John Calsbeek

@JohnCalsbeek ok tôi bắt đầu xây dựng câu trả lời phân tích, sẽ mất một lúc
joojaa
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.