รูปแบบพื้นผิวที่ถูกบีบอัดของ GPU เช่นDXT / BC / ETCได้รับการออกแบบมาเป็นพิเศษเพื่อให้สามารถอ่านได้โดยตรงจากรูปแบบที่ถูกบีบอัด พวกเขาไม่จำเป็นต้องแตกไฟล์ลงในบัฟเฟอร์ RGBA แบบดิบ
วิธีการทำงานนี้คือแต่ละบล็อคของ texels (มัก 4x4) ใช้จำนวนบิตคงที่ - ดังนั้นเราจึงรู้ว่าในบัฟเฟอร์นั้นมองไกลแค่ไหนในการหา texel - และบล็อกเหล่านี้สามารถแตกได้โดยไม่ต้องอ่านทุกรอบ / ข้อมูลพื้นผิวก่อนหน้า GPUs มีฮาร์ดแวร์พิเศษที่คลายการบีบอัดเพียงบล็อกเท็กเซลตามที่ต้องการเพื่อตอบสนองการร้องขอการสุ่มตัวอย่างพื้นผิวจากเฉดสีของคุณ
สิ่งนี้ตรงกันข้ามกับรูปแบบเช่น jpg & png ซึ่งจำนวนพื้นที่แต่ละเท็กเซลใช้เวลาอาจแตกต่างกันไปตามภาพ (พื้นที่โดยละเอียดจะมีข้อมูลมากขึ้นพื้นที่ที่คาดการณ์ได้จะมีน้อยลง) ดังนั้นเพื่อค้นหาเท็กเซลที่คุณต้องคลาย ภาพรวมทั้งหมดหรืออย่างน้อยชิ้นใหญ่ / กระจายของมัน แต่เนื่องจากพวกเขาสามารถบีบอัดพื้นที่ที่คาดเดาได้ของพื้นผิวพวกเขาจึงมีแนวโน้มที่จะบีบอัดภาพให้มีขนาดเล็กลงสำหรับการจัดเก็บบนดิสก์หรือการส่งผ่านเครือข่ายมากกว่าสิ่งที่เราได้รับจากรูปแบบที่เป็นมิตรกับ GPU กลยุทธ์ที่แตกต่างกันสำหรับการใช้งานที่แตกต่างกัน
โดยทั่วไปแล้วการถามคำถามหลาย ๆ ข้อควรทำผ่านหลายโพสต์ แต่เนื่องจากนี่เป็นคำตอบที่สั้นมากฉันจะไปถึงจุดที่ 3 ด้วย:
" Framebuffer " เป็นเพียงส่วนหนึ่งของหน่วยความจำวิดีโอที่เราได้ตัดสินใจที่จะใช้เพื่อจัดเก็บภาพที่เราต้องการนำเสนอไปยังหน้าจอ จดบันทึกรายละเอียดในคำตอบของ JarkkoL ซึ่งในฮาร์ดแวร์พิเศษบางตัวเราอาจเลือกที่จะค้นหาบัฟเฟอร์นี้ในส่วนเฉพาะของหน่วยความจำวิดีโอที่มีอยู่ซึ่งปรับให้เหมาะกับความต้องการแบนด์วิดท์ของเป้าหมายการแสดงผล