vsync หมายถึงอะไรในเกม การตั้งค่ากราฟิกในเกม: มีผลอย่างไร? การเชื่อมต่อการซิงโครไนซ์แนวตั้ง

การซิงค์แนวตั้งในเกมคืออะไร? ฟังก์ชันนี้มีหน้าที่ในการแสดงเกมที่ถูกต้องบนจอ LCD มาตรฐานที่มีความถี่ 60 Hz เมื่อเปิดใช้งาน อัตราเฟรมจะถูกจำกัดที่ 60Hz และไม่มีการขัดจังหวะบนหน้าจอ การปิดใช้งานจะเพิ่มอัตราเฟรม แต่ในขณะเดียวกันจะมีผลการฉีกขาดของหน้าจอ

V-sync เป็นหัวข้อที่ค่อนข้างขัดแย้งในเกมด้านหนึ่งเพื่อความสบายตา การเล่นเกมดูเหมือนจะจำเป็นมาก สมมติว่าคุณมีจอ LCD มาตรฐาน

ด้วยเหตุนี้จึงไม่มีข้อผิดพลาดปรากฏบนหน้าจอระหว่างเกม รูปภาพจึงนิ่งและไม่มีช่องว่าง ข้อเสียคืออัตราเฟรมถูกจำกัดไว้ที่ 60Hz ดังนั้นผู้เล่นที่มีความต้องการมากขึ้นอาจประสบกับความล่าช้าในการป้อนข้อมูล นั่นคือการกระตุกเล็กน้อยเมื่อเคลื่อนที่ไปรอบ ๆ ในเกมด้วยเมาส์

การปิดใช้งานการซิงค์แนวตั้งก็มีข้อดีและข้อเสียเช่นกัน ประการแรก มีอัตราเฟรมเรต FPS ไม่จำกัด และด้วยเหตุนี้จึงลบอินพุตแล็กที่กล่าวถึงอย่างสมบูรณ์ มันสะดวกสำหรับเกม ประเภท Counter-Strikeที่การตอบสนองและความแม่นยำเป็นสิ่งสำคัญ การเคลื่อนที่และการเล็งนั้นชัดเจน ไดนามิก ทุกการเคลื่อนไหวของเมาส์เกิดขึ้นได้อย่างแม่นยำ ในบางกรณี เราอาจได้รับมากขึ้น อัตรา FPSเนื่องจาก V-Sync ขึ้นอยู่กับการ์ดวิดีโอ สามารถลดประสิทธิภาพของฮาร์ดแวร์ได้เล็กน้อย (ความแตกต่างประมาณ 3-5 FPS) น่าเสียดายที่ข้อเสียคือหากไม่มีการซิงค์ในแนวตั้ง เราจะได้รับเอฟเฟกต์การฉีกขาดของหน้าจอ เมื่อหมุนหรือเปลี่ยนการเคลื่อนไหวในเกม เราสังเกตเห็นว่าภาพถูกฉีกออกเป็นสองหรือสามส่วนในแนวนอน

เปิดหรือปิด V-Sync?

การซิงโครไนซ์แนวตั้งจำเป็นหรือไม่? ทุกอย่างขึ้นอยู่กับความชอบส่วนตัวของเราและสิ่งที่เราต้องการได้รับ ในเกม FPS ที่มีผู้เล่นหลายคน ขอแนะนำให้ปิดการซิงค์แนวตั้งเพื่อปรับปรุงความแม่นยำในการเล็ง ตามกฎแล้วเอฟเฟกต์การฉีกขาดของหน้าจอนั้นไม่เด่นชัดนักและเมื่อเราชินกับมันแล้วเราจะไม่สังเกตเห็นด้วยซ้ำ

ในทางกลับกัน ใน เกมเรื่องคุณสามารถเปิดใช้งาน V-Sync ได้อย่างปลอดภัย ที่นี่ ความแม่นยำสูงไม่สำคัญนัก ไวโอลินตัวแรกเล่นโดยสภาพแวดล้อม สบายตา ดังนั้นคุณควรเดิมพันคุณภาพดี

โดยปกติการซิงค์แนวตั้งสามารถเปิดหรือปิดได้ในการตั้งค่ากราฟิกของเกม แต่ถ้าเราไม่พบฟังก์ชันดังกล่าว คุณสามารถปิดได้ด้วยตนเองในการตั้งค่าการ์ดวิดีโอ - ทั้งสำหรับทุกคนและเฉพาะแอปพลิเคชันที่เลือกเท่านั้น

การซิงค์แนวตั้งบนการ์ดกราฟิก NVIDIA

บนกราฟิกการ์ด GeForce คุณลักษณะนี้จะอยู่ในแผงควบคุมของ Nvidia คลิก คลิกขวาเมาส์บนเดสก์ท็อป Windows 10 จากนั้นเลือก Nvidia Control Panel

ในแถบด้านข้าง เลือกแท็บการควบคุมการตั้งค่า 3D ภายใต้การตั้งค่า 3D การตั้งค่าที่ใช้ได้จะแสดงทางด้านขวา

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

เลือกแท็บสากลหรือโปรแกรม จากนั้นมองหาตัวเลือก "Vertical Sync" ในรายการ มีช่องดรอปดาวน์อยู่ข้างๆ - เราเลือกที่จะบังคับปิดหรือเปิดการซิงโครไนซ์ในแนวตั้ง

V-Sync บนกราฟิก AMD

ในกรณีของกราฟิกการ์ด AMD จะมีลักษณะเหมือนกับใน Nvidia ทุกประการ คลิกขวาที่เดสก์ท็อปแล้วไปที่ Panel Catalyst Control Center

จากนั้นเปิดแท็บ "เกม" ทางด้านซ้ายและเลือก "การตั้งค่าสำหรับแอปพลิเคชัน 3 มิติ" ทางด้านขวา รายการตัวเลือกที่พร้อมใช้งานจะปรากฏขึ้น ซึ่งสามารถบังคับให้เปิดใช้งานจากตำแหน่งของการตั้งค่ากราฟิก AMD Radeon เมื่อเราอยู่บนแท็บ "การตั้งค่าระบบ" เราเลือกทั้งหมด

หากคุณต้องการตั้งค่าพารามิเตอร์แยกกันสำหรับแต่ละเกม คุณควรคลิกที่ปุ่ม "เพิ่ม" และระบุไฟล์ EXE มันจะถูกเพิ่มลงในรายการเป็นบุ๊กมาร์กใหม่และเมื่อคุณเปลี่ยนไปใช้ คุณสามารถตั้งค่าพารามิเตอร์สำหรับเกมนี้เท่านั้น

เมื่อคุณเลือกแท็บที่มีแอปพลิเคชันหรือพารามิเตอร์ระบบที่เพิ่ม (ทั่วไป) แล้ว ให้ค้นหาตัวเลือก "รอการอัปเดตแนวตั้ง" ในรายการ กล่องการเลือกจะปรากฏขึ้นซึ่งเราสามารถบังคับเปิดหรือปิดใช้งานตัวเลือกนี้ได้

V-Sync บนกราฟิก Intel HD ในตัว

หากใช้ชิป Intel HD Graphics ในตัว แผงควบคุมก็สามารถใช้ได้เช่นกัน ควรใช้งานได้โดยคลิกขวาบนเดสก์ท็อปหรือผ่านคีย์ผสม Ctrl+Alt+F12

บนแผง Intel ไปที่แท็บโหมดการตั้งค่า - แผงควบคุม - กราฟิก 3 มิติ จากนั้นไปที่การตั้งค่าผู้ใช้

ที่นี่เราพบฟิลด์ที่มีการซิงโครไนซ์แนวตั้ง Vertical Sync คุณสามารถเปิดใช้งานได้โดยการตั้งค่าเป็น "เปิดใช้งาน" หรือตั้งค่าเป็น "การตั้งค่าแอปพลิเคชัน" ขออภัย ไม่มีคุณสมบัติบังคับปิดใช้งานในตัวเลือกการ์ด Intel HD - คุณสามารถเปิดใช้งาน V-Sync เท่านั้น เนื่องจากไม่สามารถปิดการซิงโครไนซ์แนวตั้งในการ์ดแสดงผลได้ จึงทำได้เฉพาะในการตั้งค่าของเกมเท่านั้น

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

เกี่ยวกับการซิงค์แนวตั้ง

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

เมื่อถึงเวลาที่จอแสดงผลรุ่นใหม่ปรากฏขึ้น คำถามเกี่ยวกับการเปลี่ยนความละเอียดก็เกิดขึ้นอย่างรวดเร็ว ซึ่งต้องใช้โหมดการทำงานหลายโหมด จอภาพเหล่านั้นนำเสนอภาพโดยใช้ขั้วของสัญญาณแบบซิงโครนัสกับแนวตั้ง

ต้องใช้ความละเอียด VGA ปรับแต่งได้มากขึ้นกวาดและได้รับสองสัญญาณในแนวนอนและแนวตั้ง ในการแสดงผลปัจจุบัน ตัวควบคุมในตัวมีหน้าที่ในการตั้งค่าการสแกน

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

ไม่มีเวลาแสดงเฟรมจากไฟล์หน่วยความจำที่เปิดใช้งาน "การบัฟเฟอร์สามเท่า" พวกเขาแทนที่ตัวเองอย่างรวดเร็วโดยซ้อนเฟรมถัดไป และที่นี่เทคโนโลยีของการบัฟเฟอร์สามเท่านั้นแทบไม่ได้ผล

เทคโนโลยีการซิงค์แนวตั้ง ออกแบบมาเพื่อแก้ไขข้อบกพร่องเหล่านี้.

เธอหันไปที่จอภาพโดยเปิดโพล คุณสมบัติมาตรฐานอัปเดตความถี่และอัตราเฟรม ป้องกันไม่ให้เฟรมจากหน่วยความจำรองย้ายไปที่หน่วยความจำหลัก จนถึงช่วงเวลาที่รูปภาพได้รับการอัปเดต

การเชื่อมต่อการซิงโครไนซ์แนวตั้ง

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

ในการตั้งค่าของการ์ดวิดีโอแต่ละอัน คุณสามารถเปิดใช้งานเทคโนโลยีการซิงค์แนวตั้งสำหรับแอปพลิเคชันทั้งหมดหรือเลือกได้

วิธีการเปิดใช้งานสำหรับ NVidia?

เช่นเดียวกับการจัดการกับการ์ด NVidia ส่วนใหญ่ จะทำผ่านคอนโซลการจัดการ NVidia ในกราฟควบคุมพารามิเตอร์ 3 มิติ จะมีพารามิเตอร์พัลส์ซิงค์

ควรย้ายไปที่ตำแหน่งเปิด แต่ขึ้นอยู่กับการ์ดจอ ลำดับจะแตกต่างกัน

ดังนั้นในการ์ดวิดีโอรุ่นเก่า พารามิเตอร์การซิงค์แนวตั้งจึงอยู่ในบท ตัวเลือกระดับโลกในกราฟควบคุมการตั้งค่า 3 มิติเดียวกัน

การ์ดจอจาก ATI

ในการกำหนดค่า ให้ใช้ศูนย์ควบคุมสำหรับการ์ดกราฟิกของคุณ กล่าวคือ ศูนย์ควบคุม Catalyst กำลังเรียกใช้ .NET Framework 1.1 หากคุณไม่มีศูนย์ควบคุมจะไม่เริ่มทำงาน แต่ไม่ต้องกังวล ในกรณีเช่นนี้ มีทางเลือกอื่นแทนศูนย์ เพียงแค่ทำงานกับแผงควบคุมแบบคลาสสิก

หากต้องการเข้าถึงการตั้งค่า ให้ไปที่รายการ 3 มิติที่อยู่ในเมนูทางด้านซ้าย จะมีส่วนรอการรีเฟรชแนวตั้ง ในขั้นต้น เทคโนโลยีการซิงค์แนวตั้งเริ่มต้นถูกใช้ภายในแอปพลิเคชัน

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

สรุป

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

วันนี้ v-sync อยู่ในเกมส่วนใหญ่ มันทำงานในลักษณะเดียวกับการบัฟเฟอร์สามเท่า แต่มีค่าใช้จ่าย ทรัพยากรน้อยลงมากซึ่งเป็นสาเหตุที่ทำให้เห็นการบัฟเฟอร์สามเท่าในการตั้งค่าเกมได้น้อยลง

เมื่อเลือกเปิดหรือปิดการซิงค์แนวตั้ง ผู้ใช้จะเลือกระหว่างคุณภาพและประสิทธิภาพ เมื่อเปิดเครื่องจะทำให้ได้ภาพที่นุ่มนวลขึ้น แต่เฟรมต่อวินาทีน้อยลง

ปิดเครื่อง เขาได้รับ มากกว่าเฟรมแต่ไม่รอดจากความคมชัดและความเกียจคร้านของภาพ โดยเฉพาะอย่างยิ่งสิ่งนี้ใช้ ฉากที่เข้มข้นและเข้มข้นโดยเฉพาะอย่างยิ่งการขาดการซิงค์แนวตั้งหรือการบัฟเฟอร์สามเท่า

กราฟลึกลับนี้ในพารามิเตอร์ของหลาย ๆ เกมนั้นไม่ง่ายอย่างที่คิด และตอนนี้ ทางเลือกที่จะใช้หรือไม่ใช้ ยังคงอยู่กับคุณและเป้าหมายของคุณในเกมเท่านั้น

แฟนๆหลายคนแน่ๆ เกมส์คอมพิวเตอร์ต้องเผชิญกับคำแนะนำในการปิดการใช้งานที่เรียกว่า "การซิงโครไนซ์แนวตั้ง" หรือ VSync ในการตั้งค่าการ์ดวิดีโอในเกม

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

จอภาพคอมพิวเตอร์เครื่องแรกทำงานที่ความละเอียดคงที่และอัตราการรีเฟรชคงที่
ด้วยการถือกำเนิดของจอภาพ EGA จำเป็นต้องเลือกความละเอียดที่แตกต่างกัน ซึ่งมีให้โดยโหมดการทำงานสองโหมด ซึ่งกำหนดโดยขั้วของสัญญาณการซิงโครไนซ์ภาพในแนวตั้ง

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

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

เพื่อหลีกเลี่ยงปัญหานี้ การ์ดแสดงผลจะมีโหมดการสอบสวนเบื้องต้นของจอภาพเกี่ยวกับการสแกนแนวตั้ง ซึ่งจะมีการซิงโครไนซ์จำนวนเฟรมต่อวินาที - fps ที่คุ้นเคย
กล่าวอีกนัยหนึ่ง ด้วยความถี่แนวตั้ง 85 Hz จำนวนเฟรมต่อวินาทีในเกมใด ๆ จะไม่เกินแปดสิบห้า

อัตราการรีเฟรชในแนวตั้งของจอภาพหมายถึงจำนวนครั้งที่หน้าจอที่มีรูปภาพถูกรีเฟรชต่อวินาที
ในกรณีของการแสดงหลอดรังสีแคโทด ไม่ว่าตัวเร่งกราฟิกจะอนุญาตให้ "บีบ" ออกจากเกมได้กี่เฟรมต่อวินาทีก็ตาม อัตราการรีเฟรชทางกายภาพไม่สามารถสูงกว่าชุดที่กำหนดไว้ได้

ในจอภาพ LCD ไม่มีการรีเฟรชทางกายภาพของหน้าจอทั้งหมด: ในที่นี้ แต่ละพิกเซลอาจเรืองแสงหรือไม่ก็ได้
อย่างไรก็ตามเทคโนโลยีการส่งข้อมูลผ่านอินเทอร์เฟซวิดีโอทำให้เฟรมถูกส่งไปยังจอภาพจากการ์ดวิดีโอด้วยความเร็วที่แน่นอน
ดังนั้น ด้วยระดับของการประชุม แนวคิดของ "การกวาด" จึงใช้ได้กับจอ LCD

สิ่งประดิษฐ์จากภาพมาจากไหน?
ในเกมใดๆ จำนวนเฟรมที่สร้างขึ้นต่อวินาทีจะเปลี่ยนแปลงตลอดเวลา ขึ้นอยู่กับความซับซ้อนของภาพ
เนื่องจากอัตราการรีเฟรชของจอภาพคงที่ การดีซิงโครไนซ์ระหว่าง fps ที่ส่งโดยการ์ดวิดีโอและอัตราการรีเฟรชของจอภาพทำให้เกิดความผิดเพี้ยนของภาพ ซึ่งดูเหมือนว่าจะแบ่งออกเป็นหลายช่วงความถี่ โดยส่วนหนึ่งมีเวลาอัปเดต ในขณะที่อีกส่วนหนึ่ง ไม่.

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

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

อย่างไรก็ตาม มันผิดโดยพื้นฐานที่จะสมมติว่าหากการ์ดแสดงผลถูกห้ามไม่ให้สร้างมากกว่า 75 เฟรมต่อวินาที ทุกอย่างจะเป็นไปตามลำดับของการแสดงภาพบนหน้าจอด้วยความถี่แนวตั้ง 75 Hz
ความจริงก็คือในกรณีปกติที่เรียกว่า "การบัฟเฟอร์สองครั้ง" เฟรมบนจอภาพมาจากบัฟเฟอร์เฟรมหลัก (บัฟเฟอร์ด้านหน้า) และการเรนเดอร์นั้นดำเนินการในบัฟเฟอร์รอง (บัฟเฟอร์ด้านหลัง) .

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

การซิงโครไนซ์แนวตั้งช่วยแก้ปัญหาเหล่านี้ได้: จอภาพถูกสอบปากคำสำหรับอัตราการรีเฟรชและห้ามคัดลอกเฟรมจากบัฟเฟอร์รองไปยังหลักจนกว่าภาพจะได้รับการอัปเดต
เทคโนโลยีนี้ใช้งานได้ดีเมื่ออัตราเฟรมต่อวินาทีเกินความถี่แนวตั้ง
แต่ถ้าอัตราเฟรมลดลงต่ำกว่าอัตราการรีเฟรชล่ะ
ตัวอย่างเช่น ในบางฉาก fps ของเราลดลงจาก 100 เป็น 50

ในกรณีนี้ สิ่งต่อไปนี้จะเกิดขึ้น
มีการอัปเดตรูปภาพบนจอภาพ เฟรมแรกจะถูกคัดลอกไปยังบัฟเฟอร์หลัก และสองในสามของเฟรมที่สอง "แสดงผล" ในบัฟเฟอร์รอง ตามด้วยการอัปเดตรูปภาพบนจอแสดงผลอีกครั้ง
ขณะนี้ การ์ดแสดงผลเสร็จสิ้นการประมวลผลเฟรมที่สอง ซึ่งยังคงไม่สามารถส่งไปยังบัฟเฟอร์หลักได้ และการอัปเดตรูปภาพครั้งต่อไปจะเกิดขึ้นกับเฟรมเดิมที่ยังคงเก็บไว้ในบัฟเฟอร์หลัก

จากนั้นทั้งหมดนี้จะเกิดขึ้นซ้ำแล้วซ้ำอีก และด้วยเหตุนี้ เราจึงมีสถานการณ์ที่อัตราเฟรมต่อวินาทีบนหน้าจอต่ำกว่าความถี่ในการสแกนสองเท่าและต่ำกว่าความเร็วในการแสดงผลที่เป็นไปได้หนึ่งในสาม: การ์ดแสดงผลก่อน "ไม่ตาม กับจอภาพและในทางกลับกัน คุณต้องรอจนกว่าจอแสดงผลจะดึงเฟรมที่เก็บไว้ในบัฟเฟอร์หลักกลับมา และจนกว่าจะมีที่ว่างในบัฟเฟอร์รองเพื่อคำนวณเฟรมใหม่

ปรากฎว่าในกรณีของการซิงโครไนซ์แนวตั้งและการบัฟเฟอร์สองครั้ง เราจะได้ภาพคุณภาพสูงก็ต่อเมื่อจำนวนเฟรมต่อวินาทีเท่ากับหนึ่งในค่าที่ไม่ต่อเนื่องซึ่งคำนวณเป็นอัตราส่วนของความถี่การสแกน เป็นจำนวนเต็มบวกบางส่วน
ตัวอย่างเช่น ด้วยอัตราการรีเฟรช 60 Hz จำนวนเฟรมต่อวินาทีควรเป็น 60 หรือ 30 หรือ 15 หรือ 12 หรือ 10 เป็นต้น

หากความสามารถที่เป็นไปได้ของการ์ดช่วยให้คุณสร้างได้น้อยกว่า 60 และมากกว่า 30 เฟรมต่อวินาที ความเร็วในการเรนเดอร์จริงจะลดลงเหลือ 30 fps

กำลังแปล... แปล จีน (ตัวย่อ) จีน (ตัวเต็ม) อังกฤษ ฝรั่งเศส เยอรมัน อิตาลี โปรตุเกส รัสเซีย สเปน ตุรกี

ขออภัย เราไม่สามารถแปลข้อมูลนี้ได้ในขณะนี้ โปรดลองอีกครั้งในภายหลัง

เรียนรู้วิธีใช้อัลกอริธึมอย่างง่ายในการซิงโครไนซ์ภาพกับอัตราการรีเฟรชของจอแสดงผลและปรับปรุงคุณภาพการเล่นวิดีโอ

บทนำ

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

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

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

ด้วยยอดขายที่เพิ่มขึ้นของโฮมมีเดียเซ็นเตอร์ ทำให้ผู้บริโภคดูทีวีบนพีซีมากขึ้นเรื่อยๆ ในขณะที่กลุ่มนี้ซึ่งเป็นที่ต้องการของผู้ที่ชื่นชอบมือสมัครเล่นกำลังขยายตัว ความต้องการวิดีโอคุณภาพสูงก็จะเพิ่มขึ้นเช่นกัน

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

แสดงรอบการรีเฟรช

อัตราการรีเฟรชของหน้าจอพีซี (อัตราการรีเฟรชหน้าจอ) จะซิงโครไนซ์กับความถี่ของอะแดปเตอร์กราฟิก (การ์ดวิดีโอ) พิจารณาตัวอย่างที่พบบ่อยที่สุด - เมื่อการ์ดแสดงผลและจอภาพรองรับความถี่ 60Hz การรวมกันนี้เป็นไปได้เนื่องจากจอภาพซิงโครไนซ์กับสัญญาณ 60Hz ที่มาจากการ์ดแสดงผล ที่จริงแล้ว จอภาพจะรักษาการซิงโครไนซ์ไว้แม้ในกรณีที่ความถี่เอาต์พุตของอะแดปเตอร์กราฟิกเบี่ยงเบนเล็กน้อย (เช่น 60.06 Hz แทนที่จะเป็น 60 Hz มาตรฐาน)

ในระหว่างรอบการรีเฟรช รูปภาพบนหน้าจอจะถูกวาดใหม่จากบัฟเฟอร์การแสดงผล (หน่วยความจำแอดเดรสของอแดปเตอร์กราฟิก) เส้นแนวนอนแต่ละเส้นบนจอแสดงผลจะได้รับการอัปเดตตามลำดับตามข้อมูลใหม่ที่อยู่ในบัฟเฟอร์หน่วยความจำวิดีโอ ปรับปรุงใน ช่วงเวลานี้เส้นเวลาเรียกว่าเส้นสแกน ในกรณีของอะแดปเตอร์กราฟิก 60 Hz กระบวนการรีเฟรชหน้าจอจะเกิดขึ้น 60 ครั้งต่อวินาที ดังนั้นรูปภาพบนจอภาพ PC จะได้รับการอัปเดต 60 ครั้งต่อวินาทีด้วย

รูปที่ 1 - แสดงการอัพเดท

สิ่งประดิษฐ์ฉีกภาพ

ระวังปัญหาที่อาจเกิดขึ้นจากการรีเฟรชบัฟเฟอร์กราฟิกที่ไม่สม่ำเสมอ หากเนื้อหาของบัฟเฟอร์หน่วยความจำวิดีโอเปลี่ยนไปในขณะที่ภาพบนจอภาพยังวาดไม่เสร็จ (รอบการรีเฟรชยังไม่สมบูรณ์) ระบบจะแสดงเฉพาะส่วนของภาพใหม่ที่อยู่ถัดจากเส้นสแกนเท่านั้น บนหน้าจอ (ดูรูปที่. ข้าว. 2). สิ่งประดิษฐ์ภาพนี้ซึ่งแสดงภาพเก่าที่ด้านบนของหน้าจอและภาพใหม่ที่ด้านล่างเรียกว่าการฉีกขาด อันที่จริง คำนี้มีความหมายมาก เนื่องจากภาพที่ได้ดูเหมือน "ขาด" ไปครึ่งหนึ่ง

รูปที่ 2 - สิ่งประดิษฐ์ของ "ช่องว่าง" ของภาพ

ทีมพลิก

วิธีหนึ่งในการป้องกัน "น้ำตา" คือต้องแน่ใจว่ามีการอัปเดตเนื้อหาของหน่วยความจำวิดีโอ หลังจากนั้นวงจรการรีเฟรชจอภาพจะเสร็จสิ้นอย่างไรและ ก่อนหน้านั้นเมื่อรอบต่อไปเริ่มต้น กล่าวอีกนัยหนึ่ง การอัปเดตจะต้องเกิดขึ้นในระหว่างการกวาดแบบย้อนกลับ อย่างไรก็ตาม วิธีนี้ต้องการการเปลี่ยนแปลงที่สอดคล้องกันในซอฟต์แวร์ ซึ่งจะต้องคำนวณลำดับของการเปลี่ยนแปลงภาพด้วยความแม่นยำที่เพียงพอ

ด้วยเหตุนี้ จึงมีการนำเสนออัลกอริธึมการซิงโครไนซ์บัฟเฟอร์การสลับบัฟเฟอร์ (Flip) คำสั่ง Flip นั้นเรียบง่ายมาก - อนุญาตให้โปรแกรมอัปเดตรูปภาพได้ตลอดเวลาในระหว่างรอบการรีเฟรชหน้าจอ แต่ผลลัพธ์จะไม่ถูกถ่ายโอนไปยังหน่วยความจำวิดีโอจริง ๆ จนกว่ารอบปัจจุบันจะเสร็จสิ้น ดังนั้น การอัพเดตรูปภาพบนจอภาพจึงเกิดขึ้นในช่วงเวลาหลังจากดำเนินการตามคำสั่ง Flip ด้วยวิธีการซิงโครไนซ์บัฟเฟอร์ "การฉีกขาด" ของรูปภาพจะถูกขจัดออกไป เนื่องจากคำสั่ง Flip ช่วยให้มั่นใจว่ารูปภาพใหม่ที่สมบูรณ์จะพร้อมสำหรับการรีเฟรชแต่ละรอบ (ดูด้านล่าง) ข้าว. 3). อย่างไรก็ตาม ในส่วนถัดไป เราจะแสดงให้เห็นว่าการใช้คำสั่ง Flip เพียงอย่างเดียวไม่ได้รับประกันว่าปัญหาทั้งหมดจะได้รับการแก้ไข

รูปที่ 3 - พลิกคำสั่งลำดับ

ปัญหาที่อาจเกิดขึ้น

การใช้อัลกอริธึมการซิงโครไนซ์มีประโยชน์อย่างมากและช่วยกำจัดสิ่งประดิษฐ์ที่ฉีกขาด แต่ปัญหาสำคัญอย่างหนึ่งยังคงอยู่

เมื่อใช้คำสั่ง Flip เงื่อนไขการแสดงซอฟต์แวร์สำหรับวิดีโอจะเปลี่ยนไป ในการดำเนินการ Flip ซอฟต์แวร์จะต้องปรับช่วงการอัปเดตบัฟเฟอร์เฟรม (อัตราเฟรม) ตามอัตราเฟรมที่แน่นอน อัตรานาฬิกาเดียวที่สามารถซิงโครไนซ์เฟรมได้คืออัตราการรีเฟรชการแสดงผล (หรือหลายรายการ) กล่าวอีกนัยหนึ่ง เฟรมใหม่สามารถแสดงได้เมื่อเริ่มต้นรอบการรีเฟรชเท่านั้น อันที่จริง ช่วงเวลาของเฟรมจะเชื่อมโยงกับอัตราการรีเฟรชของจอแสดงผล

รูปที่ 4 - อัตราเฟรมและความถี่ในการแสดงผลไม่ตรงกัน

ข้อเท็จจริงนี้บอกเป็นนัยว่าหากอัตราการรีเฟรชของจอแสดงผลไม่เหมือนกับอัตราเฟรมของเนื้อหาที่กำลังเล่นอยู่ หรือไม่ใช่หลายเท่า เนื้อหาบนจอแสดงผลจะไม่สามารถทำซ้ำได้ทั้งหมด บน ข้าว. สี่แสดงกรณีพิเศษของปัญหานี้ ในสถานการณ์สมมตินี้ อัตราเฟรมของเนื้อหาจะช้ากว่าอัตราการรีเฟรชที่แสดง เนื่องจากการเปลี่ยนเฟสระหว่างความถี่ทั้งสองนี้ ช่วงคำสั่ง Flip สำหรับสองเฟรมจะขยายออกไปในที่สุดสำหรับรอบการรีเฟรชแบบเต็ม (สังเกตจังหวะเวลาของเฟรมที่ 3 และ 4) ด้วยเหตุนี้ เฟรมที่ 3 จะแสดงเกือบสองเท่าของระยะเวลาที่กำหนด ดังนั้น คุณควรพยายามจับคู่อัตราเฟรมและอัตราการรีเฟรชของจอแสดงผล แม้ว่าจะไม่สามารถทำได้เสมอไป

สถานการณ์ที่อยู่ระหว่างการพิจารณาจะรุนแรงขึ้นก็ต่อเมื่อความแตกต่างระหว่างอัตราเฟรมและอัตราการรีเฟรชของจอแสดงผลมีขนาดเล็ก เมื่อเวลาของเฟรมใกล้ถึงช่วงรอบการอัปเดต ข้อผิดพลาดแม้เพียงเล็กน้อยในการคำนวณตัวจับเวลาของซอฟต์แวร์ก็อาจทำให้คำสั่ง Flip ที่ต่อเนื่องกันหลายคำสั่งเบี่ยงเบนไปเมื่อเทียบกับการเริ่มต้นการอัพเดต ซึ่งหมายความว่าคำสั่ง Flip บางคำสั่งจะทำงานเร็วเกินไปและบางคำสั่งก็สายเกินไป ส่งผลให้เฟรม "ซ้ำ" และ "หลุด" กรณีนี้มีภาพประกอบใน ข้าว. 5– ตัวจับเวลาทำงานไม่ถูกต้อง (ในช่วงเวลาที่ไม่ปกติ) ดังนั้น เฟรมที่ 2 และ 4 จะไม่แสดง และเฟรมที่ 3 และ 5 จะแสดงสองครั้ง

รูปที่ 5 - ผลลัพธ์ของการใช้ Flip on timer ล้มเหลว

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

คำสั่งพลิกเวลา

ดังที่กล่าวไว้ข้างต้น การใช้คำสั่ง Flip ช่วยให้คุณสามารถพิจารณารอบการรีเฟรชหน้าจอเมื่อแสดงเฟรมวิดีโอ แต่ละเฟรมที่ส่งใหม่จะแสดงสำหรับรอบการรีเฟรชการแสดงผลที่สมบูรณ์เพียงรอบเดียวเท่านั้น ดังนั้น เมื่อใช้คำสั่ง Flip ซอฟต์แวร์จะต้องคำนวณอย่างแม่นยำไม่เฉพาะเมื่อแต่ละเฟรมจะแสดงเท่านั้น แต่ยังกำหนดรอบการรีเฟรชเฉพาะด้วย เพื่อที่จะซิงโครไนซ์เอาต์พุตของเฟรมได้อย่างเหมาะสมที่สุด

เป็นการดีที่สุดที่จะเรียกใช้คำสั่ง Flip เมื่อเริ่มต้นรอบการรีเฟรช ก่อนเริ่มช่วงเวลารีเฟรชเฟรมที่เกี่ยวข้อง (ดูตัวอย่างใน ข้าว. 3). สิ่งนี้ให้ความน่าจะเป็นสูงสุดในการดำเนินการคำสั่งจริงก่อนเริ่มรอบการอัปเดตที่เกี่ยวข้อง และทำให้แน่ใจว่าเฟรมถูกส่งออกในเวลาที่เหมาะสม โปรดทราบว่าในกรณีที่อัตราเฟรมของวิดีโอและอัตราการรีเฟรชการแสดงผลไม่ตรงกัน การเพิ่มประสิทธิภาพรอบการรีเฟรชเฟรมของ Flip ไม่เพียงพอที่จะให้คุณภาพวิดีโอที่ยอมรับได้ มีบางวิธีในการจัดเฟรมหรือแก้ไขเฟรมเนื้อหาที่แก้ไขปัญหาเหล่านี้ แต่อยู่นอกเหนือขอบเขตของเอกสารนี้

บาง ระบบปฏิบัติการจัดเตรียมอินเทอร์เฟซการเขียนโปรแกรมซึ่งแอปพลิเคชันสามารถซิงค์กับรอบการรีเฟรชของจอแสดงผลได้ โดยเฉพาะอย่างยิ่ง สภาพแวดล้อม Microsoft DirectX 9.0 ประกอบด้วยขั้นตอนต่างๆ ที่อาจมีประโยชน์มากในกรณีของเรา ต่อไป เราจะพิจารณาขั้นตอนมาตรฐาน DirectX ว่าเป็นวิธีการที่เป็นแบบอย่างในการแก้ปัญหาภายใต้การตรวจสอบ ผู้อ่านสามารถใช้ตัวอย่างเหล่านี้เพื่อสำรวจวิธีการที่เสนอและค้นหาวิธีแก้ไขปัญหาที่คล้ายกันในระบบปฏิบัติการอื่น

WaitForVerticalBlank()เป็นขั้นตอนมาตรฐานในไลบรารี DirectDraw (ภายในอินเทอร์เฟซ IDirectDraw) ที่บล็อกเธรดที่เข้าถึงอินเทอร์เฟซจนกว่ารอบการอัปเดตถัดไปจะเริ่มต้นขึ้น ขั้นตอนนี้สามารถใช้สำหรับการซิงโครไนซ์ได้ แต่ควรทำครั้งเดียวหรือในช่วงเวลาที่มีนัยสำคัญ เนื่องจากต้องใช้เวลานานในการเข้าถึง อย่างไรก็ตาม ขั้นตอนนี้มีประโยชน์เมื่อทำการซิงโครไนซ์เริ่มต้นกับรอบการอัปเดต

GetScanLine()เป็นขั้นตอนมาตรฐานที่สามารถใช้เพื่อรับข้อมูลเกี่ยวกับเส้นสแกนที่กำลังได้รับการอัพเดตบนจอแสดงผล หากทราบจำนวนบรรทัดทั้งหมดและบรรทัดการสแกนปัจจุบัน การระบุสถานะของรอบการรีเฟรชการแสดงผลไม่ใช่เรื่องยาก ตัวอย่างเช่น ถ้าจำนวนเส้นแสดงผลทั้งหมดคือ 1024 และขั้นตอน GetScanLine()คืนค่า 100 รอบการรีเฟรชปัจจุบันคือ 100 ถึง 1024 ซึ่งเสร็จสมบูรณ์ประมาณ 10 เปอร์เซ็นต์ แอปพลิเคชัน GetScanLine()อนุญาตให้แอปพลิเคชันตรวจสอบสถานะของลูปการอัปเดตและกำหนดว่ารอบใดที่จะผูกเฟรมที่แสดงผลถัดไป และตั้งเวลาสำหรับเวลาเปลี่ยนบัฟเฟอร์ที่ต้องการ ต่อไปนี้เป็นตัวอย่างอัลกอริทึม:

รูปที่ 6

เวลาเปลี่ยนเฟรมไม่เพียงแต่เลือกตามการคำนวณเฟรมภาพใหม่เท่านั้น แต่ยังคำนึงถึงอัตราการรีเฟรชหน้าจอด้วย เนื่องจากเฟรมจะแสดงบนหน้าจอเมื่อรีเฟรชจอภาพเท่านั้น จึงจำเป็นต้องตรวจสอบให้แน่ใจว่าแต่ละเฟรม "กด" รอบการรีเฟรชที่ถูกต้อง ดังนั้น ตามหลักแล้ว การจัดเฟรมภาพควรตรงกับอัตราการรีเฟรชของหน้าจอพอดี ในกรณีนี้ แต่ละเฟรมจะถูกวาดบนหน้าจอในเวลาที่เหมาะสม

โซลูชันทางเลือกสำหรับเนื้อหาที่บันทึกไว้

ปัญหาที่เรากำลังพูดถึงจะนำไปใช้กับสถานการณ์การเล่นวิดีโอทั้งหมด ทั้งในกรณีของการถ่ายทอดสดและเมื่อเล่นวิดีโอที่บันทึกไว้ อย่างไรก็ตาม ในกรณีหลัง คุณสามารถใช้ทางเลือกอื่นได้ หากความแตกต่างระหว่างอัตราเฟรมของเนื้อหาและอัตราการรีเฟรชการแสดงผลมีขนาดเล็ก คุณสามารถปรับอัตราเฟรมของวิดีโอ (และปรับสตรีมเสียงในลักษณะเดียวกัน) เพื่อให้ตรงกับอัตราการรีเฟรชหน้าจอโดยไม่กระทบต่อคุณภาพของเนื้อหา ตัวอย่างเช่น ลองใช้สัญญาณทีวีความคมชัดมาตรฐาน 59.94 เฟรมต่อวินาที (Bob deinterlaced) บนจอภาพที่ 60 Hz ด้วยการเร่งความเร็วการเล่นวิดีโอและเสียงสูงสุด 60 เฟรมต่อวินาที คุณสามารถมั่นใจได้ว่าอัตราเฟรมจะตรงกับช่วงรีเฟรชของหน้าจอ และในขณะเดียวกันจะไม่มีสิ่งประดิษฐ์ของภาพ

สรุป

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

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

การกรองแบบแอนไอโซทรอปิก

เมื่อพื้นผิวใด ๆ ปรากฏบนจอภาพที่ไม่ได้อยู่ในขนาดดั้งเดิม จำเป็นต้องแทรกพิกเซลเพิ่มเติมเข้าไปหรือลบพิกเซลพิเศษออก ทำได้โดยใช้เทคนิคที่เรียกว่าการกรอง

การกรองแบบ Bilinear เป็นอัลกอริธึมที่ง่ายที่สุดและต้องการพลังประมวลผลน้อยกว่า แต่ก็ให้ผลลัพธ์ที่แย่ที่สุดเช่นกัน Trilinear เพิ่มความชัดเจน แต่ยังสร้างสิ่งประดิษฐ์ การกรองแบบแอนไอโซทรอปิกถือเป็นวิธีการขั้นสูงสุดที่กำจัดการบิดเบือนที่สังเกตเห็นได้ชัดบนวัตถุที่มีความลาดเอียงอย่างมากเมื่อเทียบกับกล้อง ไม่เหมือนกับสองวิธีก่อนหน้านี้ มันประสบความสำเร็จในการต่อสู้กับเอฟเฟกต์นามแฝง (เมื่อบางส่วนของพื้นผิวเบลอมากกว่าวิธีอื่น และเส้นขอบระหว่างทั้งสองจะมองเห็นได้ชัดเจน) เมื่อใช้การกรองแบบ bilinear หรือ trilinear เมื่อระยะห่างเพิ่มขึ้น พื้นผิวจะเบลอมากขึ้นเรื่อยๆ ในขณะที่การกรองแบบแอนไอโซทรอปิกไม่มีข้อเสียเปรียบนี้

เมื่อพิจารณาถึงปริมาณข้อมูลที่กำลังประมวลผล (และอาจมีพื้นผิวแบบ 32 บิตที่มีความละเอียดสูงจำนวนมากในฉากหนึ่ง) การกรองแบบแอนไอโซทรอปิกนั้นต้องการแบนด์วิดท์หน่วยความจำเป็นพิเศษ คุณสามารถลดทราฟฟิกเป็นหลักได้เนื่องจากการบีบอัดพื้นผิว ซึ่งตอนนี้ใช้ได้ทุกที่ ก่อนหน้านี้ เมื่อฝึกฝนน้อยลง และแบนด์วิดท์ของหน่วยความจำวิดีโอก็ต่ำกว่ามาก การกรองแบบแอนไอโซทรอปิกจะลดจำนวนเฟรมลงอย่างมาก สำหรับการ์ดจอสมัยใหม่ แทบไม่มีผลกับ fps

การกรองแบบแอนไอโซทรอปิกมีการตั้งค่าเดียวเท่านั้น - ปัจจัยตัวกรอง (2x, 4x, 8x, 16x) ยิ่งสูงเท่าไหร่พื้นผิวก็จะยิ่งดูชัดเจนและเป็นธรรมชาติมากขึ้น โดยปกติ สิ่งประดิษฐ์ขนาดเล็กที่มีมูลค่าสูงจะมองเห็นได้เฉพาะบนพิกเซลด้านนอกสุดของพื้นผิวที่เอียงเท่านั้น ค่า 4x และ 8x มักจะเพียงพอที่จะกำจัดการบิดเบือนการมองเห็นของสิงโต ที่น่าสนใจคือเมื่อเปลี่ยนจาก 8x เป็น 16x ประสิทธิภาพจะค่อนข้างเล็ก แม้ในทางทฤษฎี เนื่องจากพิกเซลที่ยังไม่ได้กรองก่อนหน้านี้จำนวนเล็กน้อยเท่านั้นที่จะต้องมีการประมวลผลเพิ่มเติม

Shaders

Shaders เป็นโปรแกรมขนาดเล็กที่สามารถปรับเปลี่ยนบางอย่างในฉาก 3 มิติได้ เช่น การเปลี่ยนแสง การใช้พื้นผิว เพิ่มขั้นตอนหลังการประมวลผล และเอฟเฟกต์อื่นๆ

Shader แบ่งออกเป็นสามประเภท: จุดยอด (Vertex Shader) ทำงานกับพิกัดเรขาคณิต (Geometry Shader) สามารถประมวลผลได้ไม่เฉพาะจุดยอดแต่ละจุด แต่ยังรวมถึงทั้งหมด ตัวเลขทางเรขาคณิตซึ่งประกอบด้วยจุดยอดสูงสุด 6 จุด พิกเซล (Pixel Shader) ทำงานร่วมกับแต่ละพิกเซลและพารามิเตอร์

ส่วนใหญ่ใช้ Shaders เพื่อสร้างเอฟเฟกต์ใหม่ หากไม่มีพวกเขา ชุดของการดำเนินการที่นักพัฒนาสามารถใช้ในเกมมีจำกัดมาก กล่าวอีกนัยหนึ่งการเพิ่มเฉดสีทำให้สามารถรับเอฟเฟกต์ใหม่ที่ไม่รวมอยู่ในการ์ดวิดีโอตามค่าเริ่มต้น

Shaders ทำงานอย่างมีประสิทธิผลขนานกัน ซึ่งเป็นเหตุผลว่าทำไมการ์ดกราฟิกสมัยใหม่จึงมีสตรีมโปรเซสเซอร์จำนวนมาก ซึ่งเรียกอีกอย่างว่า Shaders ตัวอย่างเช่น ใน GeForce GTX 580 มีมากถึง 512 ตัว

การทำแผนที่พารัลแลกซ์

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

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

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

เอฟเฟกต์นี้มักใช้กับทางเท้าหิน ผนัง อิฐและกระเบื้อง

ต่อต้านนามแฝง

ก่อนการถือกำเนิดของ DirectX 8 การลบรอยหยักในเกมทำได้โดยใช้ SuperSampling Anti-Aliasing (SSAA) หรือที่เรียกว่า Full-Scene Anti-Aliasing (FSAA) การใช้งานทำให้ประสิทธิภาพลดลงอย่างมาก ดังนั้นด้วยการเปิดตัว DX8 จึงถูกยกเลิกทันที และแทนที่ด้วย Multisample Anti-Aliasing (MSAA) แม้ว่าวิธีนี้จะให้ผลลัพธ์ที่แย่กว่า แต่ก็ให้ประสิทธิผลมากกว่าวิธีก่อนมาก ตั้งแต่นั้นมา อัลกอริทึมขั้นสูงก็ปรากฏขึ้น เช่น CSAA

เนื่องจากในช่วงไม่กี่ปีที่ผ่านมา ประสิทธิภาพของการ์ดแสดงผลได้เพิ่มขึ้นอย่างเห็นได้ชัด ทั้ง AMD และ NVIDIA ได้คืนการรองรับเทคโนโลยี SSAA ให้กับตัวเร่งความเร็ว อย่างไรก็ตาม มันไม่สามารถใช้งานได้แม้ในตอนนี้ในเกมสมัยใหม่ เนื่องจากจำนวนเฟรม/วินาทีจะต่ำมาก SSAA จะมีผลเฉพาะในโครงการของปีก่อนหรือในโครงการปัจจุบัน แต่มีการตั้งค่าเล็กน้อยสำหรับพารามิเตอร์กราฟิกอื่น ๆ AMD ได้ใช้การรองรับ SSAA สำหรับเกม DX9 เท่านั้น แต่ใน NVIDIA SSAA ยังทำงานในโหมด DX10 และ DX11

หลักการของการปรับให้เรียบนั้นง่ายมาก ก่อนที่เฟรมจะแสดงบนหน้าจอ ข้อมูลบางอย่างจะไม่ถูกคำนวณในความละเอียดดั้งเดิม แต่เพิ่มขึ้นและทวีคูณสอง จากนั้นผลลัพธ์จะลดลงตามขนาดที่ต้องการ จากนั้น "บันได" ตามขอบของวัตถุจะสังเกตเห็นได้น้อยลง ยิ่งภาพต้นฉบับและปัจจัยการปรับให้เรียบ (2x, 4x, 8x, 16x, 32x) สูงเท่าใด รุ่นก็จะยิ่งน้อยลงเท่านั้น MSAA ไม่เหมือนกับ FSAA ตรงที่ขอบของวัตถุเรียบเท่านั้น ซึ่งช่วยประหยัดทรัพยากรการ์ดกราฟิกได้อย่างมาก แต่เทคนิคนี้สามารถทิ้งสิ่งประดิษฐ์ไว้ในรูปหลายเหลี่ยมได้

ก่อนหน้านี้ Anti-Aliasing ได้ลด fps ในเกมลงอย่างมาก แต่ตอนนี้มีผลกับจำนวนเฟรมเล็กน้อย และบางครั้งก็ไม่มีผลเลย

เทสเซลเลชั่น

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

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

เทคโนโลยี Tessellation เป็นที่รู้จักในโรงภาพยนตร์มาตั้งแต่ยุค 80 แต่เพิ่งได้รับการสนับสนุนในเกม ซึ่งแม่นยำยิ่งขึ้นหลังจากที่ตัวเร่งกราฟิกในที่สุดก็ถึงระดับที่ต้องการของประสิทธิภาพการทำงานแบบเรียลไทม์

เพื่อให้เกมใช้เทสเซลเลชั่น ต้องใช้การ์ดกราฟิกที่รองรับ DirectX 11

ซิงค์แนวตั้ง

V-Sync คือการซิงโครไนซ์เฟรมเกมกับอัตราการรีเฟรชแนวตั้งของจอภาพ สาระสำคัญของมันอยู่ที่ความจริงที่ว่ากรอบเกมที่คำนวณอย่างสมบูรณ์จะปรากฏบนหน้าจอในขณะที่รูปภาพได้รับการอัปเดต เป็นสิ่งสำคัญที่เฟรมถัดไป (หากพร้อมแล้ว) จะปรากฏขึ้นไม่ช้ากว่าเอาต์พุตของเฟรมก่อนหน้าและเฟรมถัดไปจะเริ่มต้นขึ้น

หากอัตราการรีเฟรชจอภาพคือ 60 Hz และการ์ดแสดงผลสามารถแสดงฉาก 3 มิติด้วยจำนวนเฟรมที่เท่ากันเป็นอย่างน้อย การรีเฟรชจอภาพแต่ละครั้งจะแสดงเฟรมใหม่ กล่าวอีกนัยหนึ่ง ด้วยช่วงเวลา 16.66 มิลลิวินาที ผู้ใช้จะเห็นการอัปเดตฉากเกมที่สมบูรณ์บนหน้าจอ

ควรเข้าใจว่าเมื่อเปิดใช้งานการซิงค์แนวตั้ง fps ในเกมจะต้องไม่เกินอัตราการรีเฟรชแนวตั้งของจอภาพ หากจำนวนเฟรมต่ำกว่าค่านี้ (ในกรณีของเราน้อยกว่า 60 Hz) ดังนั้นเพื่อหลีกเลี่ยงการสูญเสียประสิทธิภาพ จำเป็นต้องเปิดใช้งานการบัฟเฟอร์สามเท่า ซึ่งเฟรมจะถูกคำนวณล่วงหน้าและเก็บไว้ในบัฟเฟอร์สามแยก ซึ่งช่วยให้ส่งไปยังหน้าจอได้บ่อยขึ้น

งานหลักของการซิงโครไนซ์แนวตั้งคือการกำจัดเอฟเฟกต์ของเฟรมที่เลื่อนซึ่งเกิดขึ้นเมื่อส่วนล่างของจอแสดงผลเต็มไปด้วยเฟรมหนึ่ง และส่วนบนถูกเติมด้วยอีกเฟรมหนึ่งแล้ว โดยสัมพันธ์กับเฟรมก่อนหน้า

หลังการประมวลผล

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

ช่วงไดนามิกสูง (HDR)

เอฟเฟกต์ที่มักใช้ในฉากเกมที่มีแสงตัดกัน หากพื้นที่หนึ่งของหน้าจอสว่างมาก และอีกพื้นที่หนึ่งมืดมาก รายละเอียดจำนวนมากในแต่ละพื้นที่จะสูญหายไปและดูซ้ำซากจำเจ HDR จะเพิ่มการไล่สีให้กับเฟรมมากขึ้นและช่วยให้คุณแสดงรายละเอียดของฉากได้ ในการใช้งาน คุณมักจะต้องทำงานกับเฉดสีที่กว้างกว่าความแม่นยำ 24 บิตมาตรฐานที่สามารถให้ได้ การคำนวณล่วงหน้าเกิดขึ้นในความแม่นยำที่เพิ่มขึ้น (64 หรือ 96 บิต) และเฉพาะในขั้นตอนสุดท้ายเท่านั้น ภาพจะถูกปรับเป็น 24 บิต

มักใช้ HDR เพื่อปรับใช้เอฟเฟกต์ของการปรับการมองเห็นเมื่อฮีโร่ในเกมออกจากอุโมงค์มืดบนพื้นผิวที่มีแสงสว่างเพียงพอ

บลูม

Bloom มักใช้ร่วมกับ HDR และยังมีญาติที่ใกล้ชิดพอสมควร - Glow ซึ่งเป็นสาเหตุที่เทคนิคทั้งสามนี้มักสับสน

Bloom จำลองเอฟเฟกต์ที่สามารถมองเห็นได้เมื่อถ่ายฉากที่สว่างมากด้วยกล้องทั่วไป ในภาพที่ได้ แสงที่เข้มข้นดูเหมือนจะกินพื้นที่มากกว่าที่ควรจะเป็น และ "ปีน" ขึ้นไปบนวัตถุแม้ว่าจะอยู่ข้างหลังวัตถุก็ตาม เมื่อใช้ Bloom วัตถุเพิ่มเติมในรูปแบบของเส้นสีอาจปรากฏบนขอบของวัตถุ

เนื้อฟิล์ม

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

ภาพเบลอ

Motion Blur - เอฟเฟกต์ภาพเบลอเมื่อขยับกล้องอย่างรวดเร็ว สามารถใช้งานได้สำเร็จเมื่อฉากควรได้รับไดนามิกและความเร็วมากขึ้น ดังนั้นจึงเป็นที่ต้องการอย่างมากใน เกมส์แข่งรถ. ในนักกีฬา การใช้ภาพเบลอนั้นไม่ได้ถูกมองว่าชัดเจนเสมอไป การใช้ Motion Blur อย่างเหมาะสมสามารถเพิ่มคุณภาพภาพยนตร์ให้กับสิ่งที่เกิดขึ้นบนหน้าจอได้

เอฟเฟกต์นี้จะช่วยปกปิดได้หากจำเป็น ความถี่ต่ำเปลี่ยนเฟรมและเพิ่มความราบรื่นให้กับการเล่นเกม

SSAO

การบดเคี้ยวรอบข้างเป็นเทคนิคที่ใช้ในการเพิ่มความสมจริงของแสงให้กับฉากโดยการสร้างการส่องสว่างของวัตถุในฉากที่น่าเชื่อมากขึ้น ซึ่งคำนึงถึงการมีอยู่ของวัตถุอื่นๆ ในบริเวณใกล้เคียงด้วยลักษณะการดูดกลืนแสงและการสะท้อนของแสงของพวกมันเอง

Screen Space Ambient Occlusion เป็นเวอร์ชันดัดแปลงของ Ambient Occlusion และยังจำลองแสงและเงาทางอ้อม การปรากฏตัวของ SSAO นั้นเกิดจากการที่ระดับประสิทธิภาพของ GPU ปัจจุบันไม่สามารถใช้ Ambient Occlusion เพื่อเรนเดอร์ฉากในแบบเรียลไทม์ได้ เพื่อประสิทธิภาพที่เพิ่มขึ้นใน SSAO คุณต้องจ่ายด้วยคุณภาพที่ต่ำกว่า แต่ก็เพียงพอที่จะปรับปรุงความสมจริงของภาพ

SSAO ทำงานตามรูปแบบที่เรียบง่าย แต่มีข้อดีหลายประการ: วิธีการไม่ขึ้นอยู่กับความซับซ้อนของฉาก ไม่ใช้ แกะสามารถทำงานในฉากไดนามิก ไม่ต้องประมวลผลเฟรมล่วงหน้า และโหลดเฉพาะอะแดปเตอร์กราฟิกโดยไม่ต้องใช้ทรัพยากรของ CPU

การแรเงาเซลล์

เกมที่มีเอฟเฟกต์การแรเงาแบบ Cel นั้นถูกสร้างขึ้นมาตั้งแต่ปี 2000 และอย่างแรกเลยก็คือเกมเหล่านั้นปรากฏบนคอนโซล บนพีซี เทคนิคนี้ได้รับความนิยมอย่างมากเพียงไม่กี่ปีหลังจากการเปิดตัวเกมยิงสุดระทึก XIII ด้วยการแรเงาแบบเซล แต่ละเฟรมเกือบจะเหมือนกับภาพวาดที่วาดด้วยมือหรือชิ้นส่วนจากการ์ตูนสำหรับเด็ก

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

คุณสมบัติของเทคโนโลยีคือการใช้ชุดสีที่จำกัด รวมถึงการไม่มีการไล่ระดับสีที่ราบรื่น ชื่อของเอฟเฟกต์มาจากคำว่า Cel (เซลลูลอยด์) นั่นคือวัสดุโปร่งใส (ฟิล์ม) ที่ใช้วาดภาพยนตร์การ์ตูน

ความชัดลึก

ความชัดลึกคือระยะห่างระหว่างขอบใกล้และไกลของพื้นที่ ซึ่งวัตถุทั้งหมดจะอยู่ในโฟกัส ในขณะที่ฉากที่เหลือจะเบลอ

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

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

ในเกมที่ใช้ Depth of field นักเล่นเกมมักจะมีความรู้สึกที่แข็งแกร่งกว่า ตัวอย่างเช่น เมื่อมองดูที่ไหนสักแห่งผ่านหญ้าหรือพุ่มไม้ เขาเห็นเพียงชิ้นส่วนเล็กๆ ของฉากที่อยู่ในโฟกัส ซึ่งสร้างภาพลวงตาของการมีอยู่

ผลกระทบต่อประสิทธิภาพ

ในการค้นหาว่าการรวมตัวเลือกบางอย่างส่งผลต่อประสิทธิภาพการทำงานอย่างไร เราใช้เกณฑ์มาตรฐานการเล่นเกม Heaven DX11 Benchmark 2.5 การทดสอบทั้งหมดดำเนินการกับระบบ Intel Core2 Duo e6300, GeForce GTX460 ที่ 1280x800 พิกเซล (ยกเว้นการซิงค์แนวตั้งซึ่งมีความละเอียด 1680x1050)

ดังที่ได้กล่าวไปแล้ว การกรองแบบแอนไอโซทรอปิกแทบไม่มีผลกระทบต่อจำนวนเฟรม ความแตกต่างระหว่าง anisotropy ที่ปิดใช้งานและ 16x เป็นเพียง 2 เฟรม ดังนั้นเราขอแนะนำให้คุณตั้งค่าสูงสุดเสมอ

Anti-aliasing ใน Heaven Benchmark ลด fps มากกว่าที่เราคาดไว้ โดยเฉพาะในโหมด 8x ที่ยากที่สุด อย่างไรก็ตาม เนื่องจาก 2x เพียงพอสำหรับการปรับปรุงที่เห็นได้ชัดเจนในรูปภาพ เราขอแนะนำให้คุณเลือกตัวเลือกนี้หากไม่สะดวกที่จะเล่นในระดับสูง

Tessellation ซึ่งแตกต่างจากพารามิเตอร์ก่อนหน้า สามารถใช้ค่าที่กำหนดเองในแต่ละเกม ในเกณฑ์มาตรฐานสวรรค์ รูปภาพจะเสื่อมลงอย่างมากหากปราศจากมัน และในระดับสูงสุด ในทางกลับกัน ภาพจะไม่สมจริงเล็กน้อย ดังนั้นควรตั้งค่าระดับกลาง - ปานกลางหรือปกติ

มากกว่า ความละเอียดสูงเพื่อให้ fps ไม่ถูกจำกัดด้วยอัตราการรีเฟรชแนวตั้งของหน้าจอ ตามที่คาดไว้ จำนวนเฟรมตลอดการทดสอบเกือบทั้งหมดที่เปิดการซิงโครไนซ์อยู่ที่ประมาณ 20 หรือ 30 เฟรม/วินาที นี่เป็นเพราะความจริงที่ว่ามันแสดงพร้อมกันกับการรีเฟรชหน้าจอและที่อัตราการรีเฟรช 60 Hz สิ่งนี้ไม่สามารถทำได้กับทุกพัลส์ แต่ทุก ๆ วินาที (60/2 = 30 fps) หรือสาม ( 60/3 = 20 เฟรมต่อวินาที) เฟรม/วินาที) เมื่อปิดใช้งาน V-Sync จำนวนเฟรมเพิ่มขึ้น แต่สิ่งประดิษฐ์ที่มีลักษณะเฉพาะปรากฏขึ้นบนหน้าจอ การบัฟเฟอร์สามเท่าไม่ได้มีผลในเชิงบวกใดๆ ต่อความราบรื่นของฉาก บางทีนี่อาจเป็นเพราะว่าในการตั้งค่าไดรเวอร์การ์ดแสดงผลไม่มีตัวเลือกในการบังคับให้ปิดบัฟเฟอร์ และการปิดใช้งานตามปกติจะถูกละเว้นโดยเกณฑ์มาตรฐาน และยังคงใช้ฟังก์ชันนี้อยู่

หาก Heaven Benchmark เป็นเกม ที่การตั้งค่าสูงสุด (1280×800; AA - 8x; AF - 16x; Tessellation Extreme) จะทำให้ไม่สะดวกที่จะเล่น เนื่องจาก 24 เฟรมนั้นไม่เพียงพอสำหรับสิ่งนี้อย่างชัดเจน ด้วยการสูญเสียคุณภาพน้อยที่สุด (1280×800; AA - 2x; AF - 16x, Tessellation Normal) จึงสามารถบรรลุ 45 fps ที่ยอมรับได้มากขึ้น