Làm thế nào để ánh xạ mip hoạt động với kết cấu không phải là sức mạnh của 2?


12

Tôi đã nghe nói rằng các GPU gần đây đều hỗ trợ kết cấu không phải là sức mạnh của 2 và tất cả các tính năng chỉ hoạt động. Tuy nhiên, tôi không hiểu làm thế nào mip-maps sẽ hoạt động trong một kịch bản như vậy. Ai đó có thể giải thích?

Câu trả lời:


12

Quy tắc là để tính kích thước mipmap tiếp theo, bạn chia hai và làm tròn xuống số nguyên gần nhất (trừ khi nó làm tròn xuống 0, trong trường hợp đó, thay vào đó là 1). Ví dụ: hình ảnh 57x43 sẽ có mipmap như:

level 0: 57x43
level 1: 28x21
level 2: 14x10
level 3: 7x5
level 4: 3x2
level 5: 1x1

Ánh xạ UV, lựa chọn LOD và lọc hoạt động tương tự như đối với các kích cỡ kết cấu có hai.

Tạo mips chất lượng tốt cho kết cấu không có hai năng lượng sẽ khó hơn một chút, vì bạn không thể chỉ cần trung bình một hộp pixel 2x2 để lấy mẫu trong mọi trường hợp. Tuy nhiên, bộ lọc hộp 2x2 không phải là tuyệt vời để bắt đầu, do đó, sử dụng bộ lọc downsampling tốt hơn như Mitchell-Netravali được khuyến nghị bất kể kích thước kết cấu.


1
Có bất đồng nào giữa câu trả lời này và câu trả lời của John Calsbeek không? Liệu việc thực hiện phù hợp với cả hai mô tả? Nếu không thì sẽ hữu ích khi có một tài liệu tham khảo cho cái này hoặc cái khác (hoặc cả hai nếu chúng là hai kỹ thuật khác nhau được sử dụng).
trichoplax

4

Một cách để nghĩ về điều đó là các card đồ họa thường thực hiện các kết cấu không phải là sức mạnh của 2 chỉ bằng cách đệm chúng cho đến khi chúng có sức mạnh 2 mỗi hướng. Điều này làm cho hầu hết mọi thứ "chỉ hoạt động": ví dụ ốp lát và lọc phần cứng. Điều duy nhất cần thay đổi là chuyển đổi từ tọa độ kết cấu sang tọa độ hình ảnh.

Nếu được thực hiện như vậy, rõ ràng cách thực hiện mipmapping: không có gì thay đổi. Ngay cả khi bạn có GPU hỗ trợ kết cấu không có công suất 2 mà không cần đệm, các mức mipmap sẽ kết thúc bằng "đệm". ví dụ: kết cấu 3x3 sẽ có kết cấu 2x2 như lod 1.


Có sự bất đồng nào giữa câu trả lời này và câu trả lời của Nathan Reed không? Liệu việc thực hiện phù hợp với cả hai mô tả? Nếu không thì sẽ hữu ích khi có một tài liệu tham khảo cho cái này hoặc cái khác (hoặc cả hai nếu chúng là hai kỹ thuật khác nhau được sử dụng).
trichoplax

1
@trichoplax Tôi nghĩ rằng khẳng định của Nathan rằng "việc tạo ra các mips chất lượng tốt cho kết cấu không có sức mạnh của hai là khó khăn hơn một chút" làm cho câu trả lời của chúng tôi ít nhất không đồng ý một chút. Điều đó một mình có lẽ công đức hơn.
John Calsbeek

1
Tôi nghĩ vấn đề ở đây là chúng ta nhầm lẫn vị trí logic của texels với bố cục "vật lý" của chúng trong bộ nhớ. 1) Điểm ảnh là các mục riêng biệt, nghĩa là bạn luôn cần một số nguyên và do đó, việc thu nhỏ kích thước lẻ có nghĩa là chúng ta phải làm tròn lên hoặc làm tròn xuống. Vì chúng ta phải làm tròn một khi chúng ta có được kết cấu Nx1 hoặc 1xN, nên luôn luôn làm tròn. 2) Khi được đặt trong các địa chỉ vật lý, sẽ không có gì lạ khi đưa kết cấu ra một số kích thước "thuận tiện" "sải chân". Điều này có thể được thực hiện vì 2 lý do: a) Nó có thể làm cho CTNH rẻ hơn & b) nếu đơn hàng P.of.2, Morton dễ dàng.
Simon F
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.