vsync หมายถึงอะไร? การซิงค์แนวตั้งคืออะไร

หักล้างความเชื่อผิด ๆ เกี่ยวกับประสิทธิภาพของการ์ดแสดงผล | หากต้องการเปิดใช้งานหรือไม่เปิดใช้งาน V-Sync นั่นคือคำถาม

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

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

ตำนาน: อัตราเฟรมเป็นตัวบ่งชี้ระดับประสิทธิภาพกราฟิก

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

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

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

ลองพักคำถามสักครู่ว่า "ประสิทธิภาพระดับใดจึงจะเพียงพอ" ไปทางด้านข้าง เราจะกลับมาอีกครั้งหลังจากหารือเกี่ยวกับหัวข้อสำคัญอื่นๆ

ขอแนะนำการซิงค์แนวตั้ง (V-sync)

ตำนาน: ไม่จำเป็นต้องมีอัตราเฟรมสูงกว่า 30 FPS เนื่องจากตามนุษย์ไม่สามารถมองเห็นความแตกต่างได้ ค่าที่สูงกว่า 60 FPS บนจอภาพที่มีอัตราการรีเฟรช 60 Hz นั้นไม่จำเป็น เนื่องจากรูปภาพถูกเรนเดอร์แล้ว 60 ครั้งต่อวินาที ควรเปิด V-sync ไว้เสมอ ควรปิด V-sync เสมอ

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

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

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

การฉีกขาดของหน้าจอปรากฏชัดทั้งสองภาพจาก BioShock Infinite อย่างไรก็ตาม บนแผง Sharp ที่มีอัตราการรีเฟรช 60Hz จะเด่นชัดกว่าจอภาพ Asus ที่มีอัตราการรีเฟรช 120Hz มาก เนื่องจากอัตราการรีเฟรชหน้าจอของ VG236HE นั้นเร็วกว่าสองเท่า สิ่งประดิษฐ์นี้เป็นหลักฐานที่ชัดเจนที่สุดว่าเกมไม่ได้เปิดใช้งานการซิงโครไนซ์แนวตั้งหรือซิงค์ V

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

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

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

ดังนั้นจะเปิดใช้งานหรือไม่เปิดใช้งาน V-sync?

สมมติว่าคุณเป็นส่วนหนึ่งของคนส่วนใหญ่และใช้จอแสดงผลปกติที่มีอัตราการรีเฟรช 60Hz:

  • หากคุณเล่นเกมยิงมุมมองบุคคลที่หนึ่งและ/หรือมีปัญหากับการรับรู้อินพุตแล็ก และ/หรือระบบของคุณไม่สามารถรักษาระดับต่ำสุดที่ 60 FPS ในเกมได้อย่างสม่ำเสมอ และ/หรือคุณกำลังทดสอบกราฟิกการ์ด ดังนั้น V-sync ควรถูกเปิดใช้งาน ปิด.
  • หากไม่มีปัจจัยข้างต้นใดที่เกี่ยวข้องกับคุณ และคุณกำลังประสบปัญหาหน้าจอฉีกขาดอย่างเห็นได้ชัด จำเป็นต้องเปิดใช้งานการซิงค์แนวตั้ง
  • หากคุณไม่แน่ใจ ควรปิด V-sync ทิ้งไว้
หากคุณใช้จอภาพสำหรับเล่นเกมที่มีอัตราการรีเฟรช 120/144Hz (หากคุณมีจอภาพใดจอภาพหนึ่งเหล่านี้ มีโอกาสที่ดีที่คุณจะซื้อจอภาพที่มีอัตราการรีเฟรชสูง):
  • คุณควรเปิดใช้งาน Vsync เฉพาะในเกมรุ่นเก่าที่การเล่นเกมดำเนินไปในอัตราเฟรมที่สูงกว่า 120 FPS และคุณประสบปัญหาหน้าจอขาดอยู่ตลอดเวลา

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

G-Sync, FreeSync และอนาคต

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

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

สำหรับมนุษย์ทั่วไป (รวมถึงบรรณาธิการของเราที่ได้คะแนน 200 มิลลิวินาทีในการทดสอบด้วยภาพ) และสำหรับผู้ที่อยากเล่น Civilization V มากกว่า Counter Strike 1.6 สิ่งต่างๆ จะแตกต่างออกไปเล็กน้อย เป็นไปได้ว่าคุณสามารถเพิกเฉยต่อความล่าช้าของอินพุตได้เลย

ต่อไปนี้เป็นปัจจัยบางประการที่อาจทำให้ความล่าช้าในการป้อนข้อมูลแย่ลง ปัจจัยอื่นๆ ทั้งหมดเท่าเทียมกัน:

  • เล่นบน HDTV (โดยเฉพาะหากปิดใช้งานโหมดเกม) หรือเล่นบนจอ LCD ที่มีการประมวลผลวิดีโอที่ไม่สามารถปิดใช้งานได้ คุณสามารถดูรายการลำดับของเมตริกความล่าช้าของอินพุตสำหรับจอแสดงผลต่างๆ ได้ ในฐานข้อมูล DisplayLag .
  • การเล่นเกมบนจอแสดงผล LCD โดยใช้แผง IPS ที่มีเวลาตอบสนองสูงกว่า (โดยทั่วไปคือ 5-7ms G2G) แทนที่จะเป็นแผง TN+Film (1-2ms GTG) หรือจอแสดงผล CRT (เร็วที่สุดที่มีอยู่)
  • การเล่นเกมบนจอแสดงผลที่มีอัตราการรีเฟรชต่ำ จอแสดงผลการเล่นเกมใหม่รองรับ 120 หรือ 144 Hz
  • เกมที่อัตราเฟรมต่ำ (30 FPS คือหนึ่งเฟรมทุกๆ 33 ms; 144 FPS คือหนึ่งเฟรมทุกๆ 7 ms)
  • การใช้เมาส์ USB ที่มีอัตราการโพลต่ำ รอบเวลาที่ 125 Hz คือประมาณ 6 ms ซึ่งให้ความล่าช้าอินพุตเฉลี่ยประมาณ 3 ms ในขณะเดียวกัน อัตราการโพลของเมาส์สำหรับเล่นเกมอาจสูงถึง 1,000 Hz โดยมีความล่าช้าอินพุตเฉลี่ย 0.5 ms
  • การใช้แป้นพิมพ์คุณภาพต่ำ (โดยทั่วไปความล่าช้าในการป้อนข้อมูลของแป้นพิมพ์คือ 16 ms แต่ในรุ่นราคาถูกอาจสูงกว่านี้ได้)
  • เปิดใช้งาน V-sync โดยเฉพาะอย่างยิ่งเมื่อใช้ร่วมกับการบัฟเฟอร์สามเท่า (มีความเชื่อกันว่า Direct3D ไม่ได้เปิดใช้งานการบัฟเฟอร์สามเท่า อันที่จริง Direct3D อนุญาตให้มีตัวเลือกบัฟเฟอร์พื้นหลังหลายตัว แต่มีเกมเพียงไม่กี่เกมเท่านั้นที่ใช้) หากคุณเชี่ยวชาญด้านเทคโนโลยี คุณสามารถตรวจสอบได้ พร้อมการตรวจสอบโดย Microsoft(อังกฤษ) เกี่ยวกับเรื่องนี้.
  • เกมที่มีเวลาพรีเรนเดอร์สูง คิวเริ่มต้นใน Direct3D คือสามเฟรมหรือ 48 ms ที่ 60 Hz ค่านี้สามารถเพิ่มได้สูงสุด 20 เฟรมเพื่อความราบรื่นยิ่งขึ้น และลดเหลือหนึ่งเฟรมเพื่อปรับปรุงการตอบสนอง โดยมีต้นทุนจากความผันผวนของเวลาเฟรมที่เพิ่มขึ้น และในบางกรณี อาจสูญเสียโดยรวมใน FPS ไม่มีพารามิเตอร์ว่าง ศูนย์เพียงรีเซ็ตการตั้งค่าเป็นค่าเดิมของสามเฟรม หากคุณเชี่ยวชาญด้านเทคโนโลยี คุณสามารถตรวจสอบได้ พร้อมการตรวจสอบโดย Microsoft(อังกฤษ) เกี่ยวกับเรื่องนี้.
  • เวลาแฝงสูงของการเชื่อมต่ออินเทอร์เน็ต แม้ว่าสิ่งนี้จะไม่เกี่ยวข้องกับคำจำกัดความของความล่าช้าของอินพุตอย่างแน่นอน แต่ก็มีผลกระทบที่เห็นได้ชัดเจน

ปัจจัยที่ไม่ส่งผลต่อความล่าช้าในการป้อนข้อมูล:

  • การใช้คีย์บอร์ดที่มีขั้วต่อ PS/2 หรือ USB (ดูหน้าเพิ่มเติมในรีวิวของเรา "คีย์บอร์ดสวิตช์แบบกลไก 5 แบบ: ดีที่สุดสำหรับมือคุณเท่านั้น"(ภาษาอังกฤษ)).
  • ใช้การเชื่อมต่อเครือข่ายแบบใช้สายหรือไร้สาย (ตรวจสอบ Ping ของเราเตอร์ของคุณหากคุณไม่เชื่อ ค่า Ping ไม่ควรเกิน 1 ms)
  • ใช้ SLI หรือ CrossFire คิวการเรนเดอร์ที่ยาวขึ้นซึ่งจำเป็นต้องใช้ในการใช้เทคโนโลยีเหล่านี้จะถูกชดเชยด้วยปริมาณงานที่สูงขึ้น

สรุป: Input Lag มีความสำคัญสำหรับเกมที่ "เร็ว" เท่านั้น และมีบทบาทสำคัญในระดับมืออาชีพจริงๆ

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

หักล้างความเชื่อผิด ๆ เกี่ยวกับประสิทธิภาพของการ์ดแสดงผล | ตำนานเกี่ยวกับหน่วยความจำวิดีโอ

หน่วยความจำวิดีโอมีหน้าที่รับผิดชอบในการตั้งค่าความละเอียดและคุณภาพ แต่ไม่เพิ่มความเร็ว

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

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

ตำนาน: กราฟิกการ์ดที่มีหน่วยความจำ 2 GB จะเร็วกว่ารุ่นที่มี 1 GB

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

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

  • การวาดพื้นผิว
  • รองรับบัฟเฟอร์เฟรม
  • รองรับบัฟเฟอร์ความลึก ("Z Buffer")
  • รองรับทรัพยากรอื่นๆ ที่จำเป็นในการเรนเดอร์เฟรม (แผนที่เงา ฯลฯ)

แน่นอนว่าขนาดของพื้นผิวที่โหลดลงในหน่วยความจำนั้นขึ้นอยู่กับเกมและการตั้งค่ารายละเอียด ตัวอย่างเช่น High Definition Texture Pack ของ Skyrim มีพื้นผิวขนาด 3GB เกมส่วนใหญ่จะโหลดและยกเลิกการโหลดพื้นผิวแบบไดนามิกตามความจำเป็น แต่พื้นผิวทั้งหมดไม่จำเป็นต้องอยู่ในหน่วยความจำวิดีโอ แต่พื้นผิวที่ควรเรนเดอร์ในฉากใดฉากหนึ่งจะต้องอยู่ในหน่วยความจำ

บัฟเฟอร์เฟรมใช้เพื่อจัดเก็บรูปภาพในขณะที่แสดงผลก่อนหรือขณะถูกส่งไปยังหน้าจอ ดังนั้น จำนวนหน่วยความจำวิดีโอที่ต้องการจึงขึ้นอยู่กับความละเอียดเอาต์พุต (รูปภาพที่มีความละเอียด 1920x1080 พิกเซลที่ 32 บิตต่อพิกเซล “มีน้ำหนัก” ประมาณ 8.3 MB และรูปภาพ 4K ที่มีความละเอียด 3840x2160 พิกเซลที่ 32 บิตต่อพิกเซลคือ แล้วประมาณ 33.2 MB ) และจำนวนบัฟเฟอร์ (อย่างน้อยสองตัว น้อยกว่าสามตัวขึ้นไป)

โหมดป้องกันนามแฝงเฉพาะ (FSAA, MSAA, CSAA, CFAA แต่ไม่ใช่ FXAA หรือ MLAA) จะเพิ่มจำนวนพิกเซลที่ต้องแสดงผลและเพิ่มจำนวนหน่วยความจำวิดีโอทั้งหมดตามสัดส่วนตามสัดส่วน การป้องกันนามแฝงตามการเรนเดอร์มีผลกระทบอย่างมากต่อการใช้หน่วยความจำ ซึ่งจะเพิ่มขึ้นตามขนาดตัวอย่าง (2x, 4x, 8x ฯลฯ) บัฟเฟอร์เพิ่มเติมยังใช้หน่วยความจำวิดีโอด้วย

ดังนั้นการ์ดแสดงผลที่มีหน่วยความจำกราฟิกจำนวนมากจึงช่วยให้คุณ:

  1. เล่นด้วยความละเอียดสูงกว่า
  2. เล่นด้วยการตั้งค่าคุณภาพพื้นผิวที่สูงขึ้น
  3. เล่นในระดับการลดรอยหยักที่สูงขึ้น

ตอนนี้เรามาทำลายตำนานกันเถอะ

ตำนาน: คุณต้องมี VRAM 1, 2, 3, 4 หรือ 6 GB เพื่อเล่นเกม (ใส่ความละเอียดดั้งเดิมของจอแสดงผลของคุณ)

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

ก่อนที่เราจะเข้าวัดกันเองขอเตือนไว้ก่อน มีการ์ดแสดงผลระดับไฮเอนด์ชนิดพิเศษที่มี GPU สองตัว (AMD Radeon HD 6990 และ เรดออน เอชดี 7990เช่นเดียวกับ Nvidia GeForce GTX 590 และ การ์ดจอ GTX 690) ซึ่งมีหน่วยความจำจำนวนหนึ่งติดตั้งอยู่ แต่จากการใช้การกำหนดค่า dual-GPU ข้อมูลจึงถูกทำซ้ำ โดยแบ่งความจุหน่วยความจำที่มีประสิทธิภาพออกเป็นสองส่วน ตัวอย่างเช่น, การ์ดจอ GTX 690ด้วย 4 GB มันจะทำงานเหมือนการ์ด 2 GB สองใบใน SLI ยิ่งไปกว่านั้น เมื่อคุณเพิ่มการ์ดใบที่สองในการกำหนดค่า CrossFire หรือ SLI หน่วยความจำวิดีโอของอาเรย์จะไม่เพิ่มเป็นสองเท่า การ์ดแต่ละใบจะสงวนจำนวนหน่วยความจำของตัวเองเท่านั้น

คำแนะนำ

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

อีกกรณีหนึ่งคือหากแอปพลิเคชันไม่มีพารามิเตอร์ดังกล่าว จากนั้นคุณจะต้องกำหนดค่าการซิงโครไนซ์ผ่านไดรเวอร์การ์ดแสดงผล การตั้งค่าจะแตกต่างออกไปสำหรับการ์ดแสดงผลที่ผลิตโดย AMD Radeon หรือ nVidia Geforce

หากกราฟิกการ์ดของคุณเป็นกราฟิกการ์ด Geforce ให้คลิกขวาที่เดสก์ท็อปของคุณแล้วเลือกรายการเมนู "แผงควบคุม nVidia" อีกทางเลือกหนึ่งคือการเปิดแผงควบคุมผ่านเมนู Start จะมีไอคอนเปิดตัวที่มีชื่อเดียวกัน หากคุณไม่พบไอคอนที่ต้องการในแผงควบคุมหรือในเมนูเดสก์ท็อป ให้มองใกล้นาฬิกาที่มุมขวาของหน้าจอ จะมีไอคอน nVidia สีเขียวที่ดูเหมือนตา - ดับเบิลคลิกที่ มัน. ด้วยเหตุนี้เมนูการตั้งค่าการ์ดแสดงผลจะเปิดขึ้น

หน้าต่างแผงควบคุมไดรเวอร์ประกอบด้วยสองส่วน ทางด้านซ้ายจะมีหมวดหมู่ของการดำเนินการ และทางด้านขวาจะมีตัวเลือกและข้อมูลที่เป็นไปได้ เลือกบรรทัดล่างสุด “จัดการการตั้งค่า 3D” ทางด้านซ้าย ที่ด้านขวาของหน้าต่าง บนแท็บ "พารามิเตอร์ส่วนกลาง" ให้ค้นหาตัวเลือก "Vertical Sync Pulse" ที่ด้านบนสุดของรายการ การตั้งค่าปัจจุบันจะแสดงตรงข้าม: "เปิดใช้งาน", "ปิดใช้งาน" หรือ "การตั้งค่าแอปพลิเคชัน" เลือกตัวเลือก "ปิดการใช้งาน" จากรายการแบบเลื่อนลงและยืนยันการเลือกของคุณโดยคลิกปุ่ม "นำไปใช้"

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

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

แหล่งที่มา:

  • ปิดใช้งานการซิงค์แนวตั้ง

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

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

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

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

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

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

คำแนะนำ

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

หากต้องการเปิดใช้งานการซิงโครไนซ์แนวตั้งใน OpenGL โดยทางโปรแกรม ให้ใช้รหัส:

เป็นโมฆะ set_vsync (เปิดใช้งานบูล) // จริง
{
PFNWGLSWAPINTERVALEXTPROC wglSwapInterval = NULL;
wglSwapInterval = (PFNWGLSWAPINTERVALEXTPROC) wglGetProcAddress("wglSwapIntervalEXT");
ถ้า (wglSwapInterval) wglSwapInterval (เปิดใช้งาน ?1: 0);
}.

ใช้ DirectX 9 เพื่อเปิดใช้งาน Vsync เมื่อต้องการทำเช่นนี้ ก่อนที่จะเริ่ม D3DDevice ให้เปลี่ยนค่าของพารามิเตอร์
g_d3d9Parameters.SwapEffect บน D3DSWAPEFFECT_COPY หลังจากนี้ ให้ตั้งค่าพารามิเตอร์ g_d3d9Parameters.PresentationInterval เป็น D3DPRESENT_INTERVAL_ONE ด้วย

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

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

แหล่งที่มา:

  • การซิงค์แนวตั้ง: วิธีปิดการใช้งานใน nVidia

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

คุณจะต้องการ

  • - ติดตั้งไดรเวอร์การ์ดแสดงผลแล้ว

คำแนะนำ

อะแดปเตอร์กราฟิก Intel ได้รับการกำหนดค่าผ่านแผงควบคุม หากคุณติดตั้งไดรเวอร์ระบบมาตรฐานไว้ ให้ไปที่เมนู Start และเลือก Control Panel ไปที่ส่วน "การตั้งค่าส่วนบุคคล" - "การแสดงผล" - "การตั้งค่าความละเอียด" - "ขั้นสูง" ในหน้าต่างที่ปรากฏขึ้นให้คลิกที่การ์ดแสดงผลที่คุณใช้เปิดแท็บ "อะแดปเตอร์กราฟิก" - "คุณสมบัติ"

ในหน้าต่างใหม่ ให้เลือกโหมดการตั้งค่า OpenGL หรือ 3D ปรับการตั้งค่าต่อไปนี้หรือปิดใช้งานตัวเลือกบางอย่างเพื่อปรับปรุงประสิทธิภาพกราฟิก

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

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

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

แน่นอนว่าแฟนเกมคอมพิวเตอร์หลายคนพบคำแนะนำให้ปิดการใช้งานที่เรียกว่า "การซิงโครไนซ์แนวตั้ง" หรือ 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


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


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


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


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


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


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


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


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


http://img.terralab.ru/pubimages/98286.jpg" ความกว้าง=377 เส้นขอบ=0>


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


http://img.terralab.ru/pubimages/98285.jpg" ความกว้าง=377 เส้นขอบ=0>


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


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


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

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

แน่นอนว่าแฟนเกมคอมพิวเตอร์หลายคนพบคำแนะนำให้ปิดการใช้งานที่เรียกว่า "การซิงโครไนซ์แนวตั้ง" หรือ 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


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


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


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


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


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


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


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


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


http://img.terralab.ru/pubimages/98286.jpg" ความกว้าง=377 เส้นขอบ=0>


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


http://img.terralab.ru/pubimages/98285.jpg" ความกว้าง=377 เส้นขอบ=0>


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


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


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

เหตุใดการซิงโครไนซ์แนวตั้งจึงจำเป็นในการ์ดวิดีโอ?

แน่นอนว่าแฟนเกมคอมพิวเตอร์หลายคนพบคำแนะนำให้ปิดการใช้งานที่เรียกว่า "การซิงโครไนซ์แนวตั้ง" หรือ 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

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

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

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

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

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

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

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

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

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

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

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

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



มีคำถามหรือไม่?

แจ้งการพิมพ์ผิด

ข้อความที่จะส่งถึงบรรณาธิการของเรา: