ใน OpenGL การเรนเดอร์“ zero state” คืออะไร?


10

เมื่อเร็ว ๆ นี้ในการสัมภาษณ์งานฉันได้กล่าวว่าฉันสอนตัวเอง OpenGL ที่ทันสมัยและแสดงผลด้วยวัตถุบัฟเฟอร์จุดสุดยอดเพราะมหาวิทยาลัยของฉันสอนเฉพาะฟังก์ชั่นไปป์ไลน์ที่มีการแสดงโหมดทันทีในเวลานั้น ผู้สัมภาษณ์ขัดจังหวะฉันสั้น ๆ เพื่อบอกว่า VBOs ถูกแทนที่อย่างมีประสิทธิภาพด้วยสิ่งที่เรียกว่า "การปรับค่าสถานะเป็นศูนย์" แล้วให้ฉันดำเนินการต่อ

ฉันลืมถามในภายหลังเกี่ยวกับสิ่งที่ตั้งใจทำเพราะเราย้ายไปเรียนวิชาอื่นอย่างรวดเร็วและผู้สัมภาษณ์หมดเวลาในตอนท้ายเนื่องจากตารางงานที่ยุ่ง

หลังจากนั้นฉันค้นหาทางออนไลน์เพื่อหา "สถานะ OpenGL เป็นศูนย์" และ "แสดงสถานะเป็นศูนย์" โดยไม่มีผลลัพธ์ที่เกี่ยวข้องซึ่งส่วนใหญ่เป็นเพียงเรื่องเกี่ยวกับสถานะ OpenGL

องค์กรที่มีปัญหาเป็นงานวิจัยที่หนักมากดังนั้นจึงมีโอกาสที่จะเป็นส่วนเสริมที่มีการสนับสนุนเพียงเล็กน้อยในปัจจุบันหรือว่าคำศัพท์ที่ใช้แตกต่างกันไป


คุณแน่ใจหรือว่ามันเป็น "zero state" หรืออาจเป็นอย่างอื่นที่มีคำว่า "zero" อยู่ใช่ไหม ฉันเดาว่าเขากำลังพูดถึงค่าใช้จ่ายเป็นศูนย์: gdcvault.com/play/1020791
Lasse

มีโอกาสที่ดีที่อาจเป็น 'ศูนย์ได้ยิน' จากการข้ามวิดีโอแม้ว่าฉันจะแน่ใจ 100% ว่าคำที่แท้จริงของเขาคือ 'zero state' ข้อสันนิษฐานของฉันคือเขาอ้างถึงคุณลักษณะใหม่เดียวที่ใช้สำหรับการโทรออกซึ่งต่างจากการเพิ่มประสิทธิภาพสิ่งที่มีอยู่แล้ว เป็น 'ศูนย์ค่าใช้จ่าย' เป็นวิธีการวาดใหม่ที่แนะนำใน OpenGL หรือไม่?
usm

6
มันอาจจะเป็น "แอตทริบิวต์ศูนย์"? การเรนเดอร์แอตทริบิวต์ Zero (มักเรียกว่า "การเรนเดอร์เรนเดอร์แบบ") จะแทนที่ VBOs
Trevor Powell

5
คำถามนี้ไม่ได้อยู่นอกหัวข้อคำถามคำศัพท์ที่ได้รับอนุญาตอย่างแน่นอน

1
ฉันค่อนข้างแน่ใจว่าสิ่งที่ผู้สัมภาษณ์ของคุณพูดถึงคือสิ่งที่เป็นที่รู้จักกันทั่วไปว่าเป็น Bindless Rendering กล่าวโดยย่อคือไม่จำเป็นต้องผูกวัตถุแต่ละชิ้นกับที่จับทั่วโลกเพื่อเปลี่ยนแปลงหรือใช้ประโยชน์วัตถุเหล่านั้น คุณควรได้ผลลัพธ์ที่ดีกว่าในการค้นหา
kevintodisco

คำตอบ:


9

ผู้สัมภาษณ์ของคุณกำลังพูดด้วยคำพูดของเขาเองเกี่ยวกับbindless API nVidia ได้ทำการนำเสนอที่ดีเมื่อเร็ว ๆ นี้เกี่ยวกับสิ่งที่พวกเขาเรียกการเข้าถึงโดยตรงของรัฐ ( 1 , 2 ) สิ่งนี้ไม่ได้แทนที่ VBOs


แก้ไข : ที่จริงลองพิจารณาข้อเสนอแนะของ Trevor Powell:

ดูเหมือนว่าบางคนอาจตัดสินใจทิ้ง VBOs อย่างแน่นอนเนื่องจากการเรนเดอร์แอ็ตทริบิวต์น้อยโดยใช้รูปทรงเรขาคณิตที่ดึงข้อมูลหรือพื้นผิวที่เหมือนกันตามที่กล่าวไว้ในบทความนี้บทความนี้

ฉันเห็นได้ว่ามีใครบางคนสามารถตัดสินใจเปลี่ยนเครื่องยนต์ของตนให้เป็น attirubte-less เต็มรูปแบบ แต่ฉันจะไม่เอาผิดการเคลื่อนไหวเช่นนี้ถ้าฉันอยู่ในทีม: เหตุผล - ถ้าคุณอ่านภาพรวมของท่ออย่างระมัดระวัง น้อยกว่าแคชจุดสุดยอด FIFO จะใช้ไม่ได้เนื่องจากข้ามไปโดยสิ้นเชิง แอตทริบิวต์น้อยจึงลบโอกาสในการเพิ่มประสิทธิภาพที่ดี

สิ่งนี้ต้องการการเปรียบเทียบแน่นอน แต่เป็นการเริ่มต้นอย่างแท้จริงมันฟังดูไม่ดีสำหรับวิธีการแก้ปัญหาทั่วไป

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.