ฉันได้ยินมาว่า GPU ล่าสุดนั้นรองรับการทำงานของพื้นผิวที่ไม่มีประสิทธิภาพและคุณสมบัติทั้งหมดก็ใช้งานได้ อย่างไรก็ตามฉันไม่เข้าใจว่าการทำแผนที่ mip จะทำงานอย่างไรในสถานการณ์ดังกล่าว มีคนอธิบายได้ไหม
ฉันได้ยินมาว่า GPU ล่าสุดนั้นรองรับการทำงานของพื้นผิวที่ไม่มีประสิทธิภาพและคุณสมบัติทั้งหมดก็ใช้งานได้ อย่างไรก็ตามฉันไม่เข้าใจว่าการทำแผนที่ mip จะทำงานอย่างไรในสถานการณ์ดังกล่าว มีคนอธิบายได้ไหม
คำตอบ:
กฎคือการคำนวณขนาด mipmap ถัดไปคุณหารด้วยสองและปัดเศษเป็นจำนวนเต็มที่ใกล้ที่สุด (เว้นแต่ว่าจะปัดเศษลงเป็น 0 ซึ่งในกรณีนี้คือ 1 แทน) ตัวอย่างเช่นภาพ 57x43 น่าจะมี mipmaps เช่น:
level 0: 57x43
level 1: 28x21
level 2: 14x10
level 3: 7x5
level 4: 3x2
level 5: 1x1
การทำแผนที่ UV การเลือก LOD และการกรองใช้งานได้ในลักษณะเดียวกับขนาดพื้นผิวที่มีกำลังสอง
การสร้าง mips ที่มีคุณภาพดีสำหรับพื้นผิวที่ไม่ได้ทรงพลังนั้นเป็นเรื่องยุ่งยากเล็กน้อยเนื่องจากคุณไม่สามารถเฉลี่ยพิกเซลกล่อง 2x2 ให้เหลือตัวอย่างน้อยในทุกกรณี อย่างไรก็ตามตัวกรองกล่อง 2x2 นั้นไม่ค่อยดีนักดังนั้นควรใช้ตัวกรอง downsampling ที่ดีกว่าเช่น Mitchell-Netravali โดยไม่คำนึงถึงขนาดพื้นผิว
วิธีคิดอย่างหนึ่งคือการ์ดกราฟิกมักจะใช้พื้นผิวที่ไม่ใช้พลังงานเพียงแค่เติมเต็มจนกว่าพวกเขาจะมีพลังเป็น 2 ในแต่ละทิศทาง สิ่งนี้ทำให้เกือบทุกอย่าง "ใช้งานได้" ตัวอย่างเช่นการเรียงต่อกันและการกรองฮาร์ดแวร์ สิ่งเดียวที่ต้องเปลี่ยนคือการแปลงจากพิกัดพื้นผิวเป็นพิกัดรูปภาพ
หากดำเนินการเช่นนั้นจะเห็นได้ชัดว่าจะทำแผนที่อย่างไร: ไม่มีอะไรเปลี่ยนแปลง แม้ว่าคุณจะมี GPU ที่รองรับพื้นผิวที่ไม่ได้พลังงานก็ตามโดยไม่ต้องแพ็ดดิ้งระดับ mipmap ก็จะจบลงด้วย "padding" เช่น 3x3 texture จะมี 2x2 texture เป็น Lod 1