เกม

S3D และ WibbleWobble

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

WibbleWobble Core
ชุมชน Discord

มันคืออะไร

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

ข้อดี

การเข้าถึงคลังเกม VR ขนาดใหญ่จาก Steam ที่ก่อนหน้านี้ไม่สามารถเล่นได้บนพีซี เกมเหล่านี้ทำงานได้เฉพาะบนชุดหูฟัง VR ราคาแพงเท่านั้น - เกมในตำนานอย่าง Half-Life Alyx เป็นต้น คุณจะได้เห็นการแสดง 3D คุณภาพเยี่ยมบนจอแสดงผลเกมสมัยใหม่ขนาดใหญ่ อัตราเฟรมสูงตั้งแต่ 120 FPS ภาพที่สวยงามและคมชัด สีสันสดใส และอย่าลืมข้อได้เปรียบหลัก - จอแสดงผลในปัจจุบันดีมากและมีราคาไม่แพง ภาพรวมจอภาพที่ดีที่สุด

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

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

เส้นทางที่หนึ่ง: ReShade Client - การสังเคราะห์สเตอริโอจากเฟรมแบน
เกมจะเรนเดอร์มุมมองปกติเพียงมุมมองเดียว เอฟเฟกต์ SuperDepth3D ReShade จะนำเฟรมนั้นพร้อมกับ บัฟเฟอร์ความลึกของฉากและสร้างมุมมองที่สองขึ้นมาใหม่โดยการเลื่อนพิกเซลตามความลึก เอนจินเกมไม่รู้อะไรเกี่ยวกับสเตอริโอเลย วิธีนี้ประหยัดในแง่ของประสิทธิภาพและทำงาน กับเกม DX11/DX12 เกือบทั้งหมด ข้อแลกเปลี่ยนคือสิ่งแปลกปลอมที่มีอยู่ในวิธีการเอง สิ่งเหล่านี้ได้อธิบายไว้ด้านล่างในส่วน "ข้อเสีย"

เส้นทางที่สอง: OpenVR Client - การเรนเดอร์ 3D ที่แท้จริง
WibbleWobble ลงทะเบียนตัวเองใน SteamVR ในฐานะชุดหูฟัง VR เสมือน เกมที่รองรับ VR หรือเกมที่มีม็อด VR จะเรนเดอร์ฉากสองครั้งจากกล้องสองตัวที่แยกจากกันด้วยระยะห่างระหว่างรูม่านตา เช่นเดียวกับที่ชุดหูฟังจริงทำ IPD ความละเอียดต่อตา และความยาวโฟกัสถูกตั้งค่าใน VR Config ที่นี่ WibbleWobble ไม่ได้สังเคราะห์ อะไรเลย: มันนำคู่สเตอริโอที่พร้อมแล้วและส่งออกไปยังหน้าจอ แบบเฟรมต่อเฟรม โดยซิงโครไนซ์แว่นตาชัตเตอร์ วิธีนี้ใช้ประสิทธิภาพมากกว่า แต่เรขาคณิต 3D นั้นถูกต้องอย่างสมบูรณ์ ไม่มีรูตามแนวเส้นขอบ ไม่มีเอฟเฟกต์ "กระดาษแข็ง" ตาแต่ละข้างจะได้รับการสะท้อนและไฮไลท์ของตัวเอง โดยพื้นฐานแล้ว นี่คือวิธีในการเล่นเกม VR บนจอภาพธรรมดาที่มีแว่นตา 3D แต่ไม่มีชุดหูฟัง

Reprojection - กลไกการขยายขอบเขตการมองเห็น
Reprojection ทำงานในทั้งสองโหมด รวมถึงโมโนคิวลาร์ เชเดอร์ประสิทธิภาพสูงจะนำเฟรมเกมและแมปมันลงบนเรขาคณิตของพื้นที่ทำงานของคุณ: บนจอภาพเดียว หรือสี่จอภาพ หรือหน้าจอโค้ง ผ่านการติดตามศีรษะ (OpenTrack) ภาพจะเลื่อนตามการเคลื่อนไหวของศีรษะของคุณ และจอภาพ จะเริ่มทำหน้าที่เป็นหน้าต่างสู่โลกเสมือน - เอฟเฟกต์ "VR fishtank" จุดประสงค์ของ reprojection คือเพื่อให้ได้มาตราส่วนโลกที่ถูกต้องและขอบเขตการมองเห็น (FOV) ที่ถูกต้อง สำหรับการใช้งานหลายจอภาพ สามารถปิด Reprojection ได้ทั้งหมด (Client Config -> Reprojection: Disabled) และใช้เฉพาะเอาต์พุตสเตอริโอ BFI และ upscaler - สถานการณ์ปกติสำหรับจอภาพเดียว
* ต้องบอกว่าผู้เขียนโปรเจกต์มองโลกในแง่ดีเกินไป เกี่ยวกับแนวคิด "การขยายโลก" ไปยังหลายแผง แม้แต่การ์ดกราฟิกที่ทรงพลังก็ยังมีประสิทธิภาพไม่เพียงพอสำหรับสิ่งนี้ คุณจะโชคดีถ้าความเร็ว เพียงพอสำหรับจอภาพ 4K จอเดียว มันจะไม่ทำงานกับหลายจอภาพ...

FOV (Field of View): มุมมอง มันกำหนดว่ากล้องเสมือนจะจับภาพส่วนใดของโลกในเฟรม วัดเป็นองศา แยกสำหรับแนวตั้งและแนวนอน FOV เล็ก (40-50°) ดูเหมือนเลนส์เทเลโฟโต้: ส่วนแคบที่มีวัตถุขนาดใหญ่ FOV ใหญ่ (100-120°) เป็นมุมกว้าง เหมือนกล้องแอคชั่น คุณเห็นด้านข้างมาก แต่ขอบถูกยืดและวัตถุดูไกลและเล็กลง นี่คือพารามิเตอร์สำคัญใน WibbleWobble โปรแกรมต้องรู้มุมที่เกมวาดเฟรม เพื่อฉายภาพลงบนจอภาพจริงของคุณอย่างถูกต้อง นั่นคือเหตุผลที่ Game Config มีสองฟิลด์ FOV แนวตั้งและ FOV แนวนอน โดยมีข้อกำหนดหนึ่งข้อ: ค่าต้องตรงกับค่าที่ตั้งไว้ในเกม เปลี่ยนค่าหนึ่ง และอีกค่าหนึ่งจะถูกคำนวณใหม่โดยอัตโนมัติเพื่อให้ตรงกับอัตราส่วนภาพของหน้าต่าง

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

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

เอาต์พุตสเตอริโอแบบเฟรมต่อเฟรม
แอปพลิเคชันรับเฟรมจากเกมในอัตราที่แปรผันตามที่พร้อม "ไม่ว่าจะมาแบบไหน" จากนั้นไคลเอนต์จะปรับอัตราเฟรมสำหรับการเล่นที่ 60 Hz แหล่งที่มาของคู่สเตอริโออาจเป็น SuperDepth3D, ม็อด VR หรือเนื้อหา 3D ที่พร้อมใช้งาน WibbleWobble รับมันในรูปแบบ side-by-side หรือ checkerboard (Client Config -> Source Format) และถอดรหัสมันใน FrameBufferDecode จากนั้นเรนเดอร์จะแปลงมันเป็นสตรีมแบบเฟรมต่อเฟรมที่ 120 Hz พร้อมกับการซิงโครไนซ์แว่นตาชัตเตอร์ ตัวส่งสัญญาณที่รองรับ: NVIDIA 3D Vision, Open3DOLED, โปรเจคเตอร์ DLP, 3D Ready และตัวส่งสัญญาณ Arduino/VESA IR แบบโฮมเมด

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

เพื่อลดเวลาที่พิกเซลสว่าง WibbleWobble มีเครื่องมือสองอย่าง:
Black Frame Insertion - การแทรกเฟรมสีดำระหว่างเฟรมที่มีประโยชน์ (พารามิเตอร์ Black Frame Insertion Interval ใน Client Config)
CRT Beam Simulator โดย Blur Busters - เชเดอร์ที่เลียนแบบการกวาด ของลำแสงอิเล็กตรอนของ CRT: มันจะทำให้ภาพมืดลงทีละบรรทัดแทนที่จะเป็นทั้งเฟรม ให้ผลลัพธ์ที่ดีกว่าแต่ต้องการจอแสดงผลที่สูง: ต้องใช้แกมมา 2.2 หรือ 2.4, ปิด ABL/APL และ OLED ในโหมด SDR บนแผง FALD และ MiniLED มันทำงานได้ไม่ดี เนื่องจากความเฉื่อยของแบ็คไลท์

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

ครอสทอล์ค คือเอฟเฟกต์ที่ภาพสำหรับตาข้างหนึ่ง ไปถึงตาอีกข้างบางส่วน เป็นผลให้ผู้ชมเห็นเส้นขอบซ้อนหรือ "ผี" โปร่งแสง ถัดจากวัตถุ สิ่งนี้ทำให้คุณภาพของภาพ 3D ลดลงและลดความรู้สึกถึงความลึก เพื่อต่อสู้กับสิ่งนี้ จึงมีการสนับสนุน Black Frame Insertion และ CRT-beam simulator ของ Blur Busters ในตัว สำหรับการปราบปรามครอสทอล์คที่ครอบคลุม จะใช้โหมดที่ชาญฉลาด: ภาพเกมถูกวาดที่ 60 Hz, แว่นตาได้รับการซิงค์ที่ 120 Hz และเอาต์พุตไปยังหน้าจอทำงานที่ 240 Hz พร้อมการทำซ้ำเฟรม
WibbleWobble รองรับสองวิธีการทำงาน แต่ละวิธีมีไคลเอนต์ของตัวเอง ที่เพิ่มเข้าไปในเกม วิธีการเหล่านี้มีไว้สำหรับประเภทเกมที่เข้ากันได้ ตารางด้านล่างสรุปคุณสมบัติหลักของวิธีการเหล่านี้
วิธีการ วัตถุประสงค์ แหล่งที่มา 3D ข้อดี ข้อเสีย
ReShade Client สำหรับเกม DirectX 11 / 12 Depth Buffer + SuperDepth3D ความเข้ากันได้สูง
โหลด GPU ต่ำ
ไม่ต้องใช้ VR
อาจมีสิ่งแปลกปลอม
คุณภาพ 3D ขึ้นอยู่กับเกม
OpenVR Client เกม VR และเกมที่มีม็อด VR คู่สเตอริโอที่แท้จริง เรขาคณิตสมบูรณ์แบบ
คุณภาพ 3D สูงสุด
การสะท้อนและแสงที่ถูกต้อง
ต้องใช้ SteamVR
โหลด GPU สูง

ใครใช้ WibbleWobble

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

ปัญหาที่พบและข้อจำกัด

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

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

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

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

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

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

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

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

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

ครอสทอล์คที่เหลืออยู่และข้อกำหนดจอภาพสูง
เทคนิคซอฟต์แวร์ - การแทรกเฟรมสีดำและโหมด 60/120/240 - ปราบปรามผี, แต่ไม่ได้กำจัดมันทั้งหมด เพราะครอสทอล์คถูกกำหนดโดยหลายปัจจัย: ฟิสิกส์ของแผงจอแสดงผลและตัวแว่นตาเอง มันขึ้นอยู่กับเวลาในการตอบสนองของพิกเซล, ความเร็วในการสลับ, ความคมชัดของเลนส์แว่นตา และอัตราการวาดแนวตั้งของหน้าจอ นอกจากนี้ โหมดที่รุนแรงที่สุดต้องใช้แผง 240 Hz ที่รวดเร็วพร้อมระยะเวลา พิกเซลสั้น ซึ่งผู้ใช้ทุกคนไม่มี ต่างจาก NVIDIA 3D Vision ตรงที่ ReShade ไม่ได้สร้าง ปริมาตรที่พร้อมใช้งาน แต่สังเคราะห์จากเฟรมแบน นั่นคือเหตุผลที่รูตามแนวเส้นขอบ, การสะท้อนที่ไม่ถูกต้อง และขอบลอยเป็นสิ่งแปลกปลอมที่เสถียรของวิธีการ ไม่ใช่ข้อบกพร่องชั่วคราว
OpenVR Client
เรขาคณิตสเตอริโอที่นี่เป็นของแท้ และไม่มีสิ่งแปลกปลอมจากการสังเคราะห์ภาพ - disocclusion, "กระดาษแข็ง," การสะท้อนที่แตกหัก - ปรากฏที่นี่ แต่วิธีนี้ก็มีต้นทุนของตัวเองเช่นกัน และเป็นต้นทุนที่แตกต่าง

เกมต้องรองรับ VR
นี่คือข้อจำกัดหลัก วิธีการนี้ใช้ไม่ได้กับเกมทั่วไป: ต้องมีการรองรับ VR ในตัว หรือม็อด VR หากไม่มีม็อดที่พร้อมใช้งาน เส้นทาง OpenVR จะไม่ทำงาน และเหลือเพียง ReShade พร้อมสิ่งแปลกปลอมทั้งหมด กล่าวอีกนัยหนึ่ง ความเข้ากันได้ในวงกว้างที่มีอยู่ในเส้นทางแรก จะหายไปโดยสิ้นเชิงที่นี่

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

การติดตั้งที่ซับซ้อน
ต้องติดตั้ง SteamVR ไดรเวอร์ถูกลงทะเบียนผ่าน Install.bat ด้วยสิทธิ์ ผู้ดูแลระบบ หลังจากนั้นต้องเพิ่มสองบรรทัดด้วยตนเองในไฟล์ config\steamvr.vrsettings: "forcedDriver": "WibbleWobbleVR" และ "activateMultipleDrivers": "true" จากนั้นทำ Room Setup ในโหมด STANDING ONLY ข้อผิดพลาดในขั้นตอนใดๆ และแทนที่จะเป็นสเตอริโอ คุณจะได้หน้าจอสีดำโดยไม่มีข้อความชัดเจนเกี่ยวกับสาเหตุ

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

การเพิ่มประสิทธิภาพการเรนเดอร์ทำลายบางเกม
VR Config มีพารามิเตอร์ Optimise Single Eye ที่อนุญาตให้เรนเดอร์เพียงตาเดียว หรือทั้งสองตาที่ FOV ครึ่งหนึ่ง ผู้เขียนโปรเจกต์เตือนโดยตรง: โหมด "Both" เป็นโหมดที่มีปัญหามากที่สุด - อาจมีขอบมืดและการซิงค์ตาที่ไม่ตรงกัน และภาพอาจ "เลื่อน" ในบางเกม จะต้องปิดการเพิ่มประสิทธิภาพทั้งหมด

การต่อสู้เพื่อโฟกัสหน้าต่าง
บางเกมไม่ยอมให้โฟกัสกับอินเทอร์เฟซ WibbleWobble: คีย์ผสม SHIFT + END ไม่ทำงาน หรือ UI ถูกวาดแต่ไม่สามารถควบคุมได้ คุณต้องสลับด้วยตนเองผ่าน ALT + TAB ปัญหาที่แยกต่างหาก: ต้องไม่ปิดหน้าต่าง WibbleWobble - โปรแกรมจะไม่กู้คืนหลังจากนั้น และจะต้องรีสตาร์ทเกม

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

ลักษณะเฉพาะของแอปพลิเคชันแต่ละตัว
บางโปรแกรมทำงานได้เฉพาะกับชุดหูฟังบางยี่ห้อเท่านั้น สำหรับพวกเขา VR Config มีพารามิเตอร์ Headset Identification ที่ทำให้ WibbleWobble แสดงตัวเป็นอุปกรณ์ อื่น - เช่น Vive - หากไม่มีสิ่งนี้ การติดตามศีรษะจะไม่ทำงานใน DEOVR กล่าวอีกนัยหนึ่ง ความเข้ากันได้ในบางจุดขึ้นอยู่กับวิธีแก้ปัญหาชั่วคราวเหล่านี้

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

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

การประเมินคุณภาพตามอัตวิสัย

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

สิ่งที่ให้ผลกำไรจริงๆ:
การแก้ไขภาพแบบทีละบรรทัดเพื่อชดเชยความหน่วงในการวาดของแผง ซึ่งลดครอสทอล์คหลายเท่า การวัดความหน่วงของ OLED ที่แม่นยำสำหรับจอแสดงผลแต่ละรุ่นและการปรับแต่ง จังหวะการเปิดและปิดชัตเตอร์ของแว่นตาแต่ละตัว การซิงโครไนซ์แว่นตาที่แม่นยำโดยไม่มีเฟรมตกหรือซ้ำ การปราบปรามการกระวนกระวายใจของการซิงค์ - การกระวนกระวายใจใดๆ ที่เกินหนึ่งร้อยไมโครวินาทีจะสังเกตเห็นได้ทันทีใน 3D แบบแอคทีฟ การชดเชยภาพล่วงหน้าตามเวลา หากทราบฟังก์ชันการตอบสนองของแผงเฉพาะ นี่คือสิ่งที่ผู้ผลิตชุดหูฟัง VR ระดับมืออาชีพทำเพื่อปรับปรุงคุณภาพ
CRTSim +15%
BFI มาตรฐาน +30%
การชดเชยการวาดแผง +50%
การซิงโครไนซ์แว่นตาที่แม่นยำ +50%
fps สูง (240-480 Hz) +100%
สรุป
เทคโนโลยี WibbleWobble มอบสิ่งที่เครื่องเล่น 3D ทั่วไปไม่มี: การติดตามการเคลื่อนไหวของศีรษะและเอฟเฟกต์ "หน้าต่างสู่โลก" แบบสด การใช้งานไดรเวอร์ของเราทำให้ได้ 3D ที่สวยงามที่สุดเท่าที่จะเป็นไปได้ ด้วยคุณลักษณะความเร็วที่โดดเด่นของตัวส่งสัญญาณและแว่นตา และซอฟต์แวร์ที่มีคุณภาพ

เลือก ReShade.. OpenVR..

การเลือก
ต้องการเล่นเกมในรูปแบบ 3D หรือไม่? ReShade Client
มีเกม VR หรือม็อด VR หรือไม่? OpenVR Client
แค่ต้องการเอฟเฟกต์ "หน้าต่างสู่โลก"? Mono + Reprojection
ข้อควรระวัง: จากนี้ไป ให้ตรวจสอบไฟล์ที่ดาวน์โหลดทั้งหมด ด้วยโปรแกรมป้องกันไวรัส!

เชื่อมต่อ

การติดตั้งซอฟต์แวร์ทั่วไป

ขั้นตอนที่ 1. อัปเดตไดรเวอร์การ์ดกราฟิก
เครื่องเล่นวิดีโอใช้ NVIDIA Studio Driver; สำหรับเกม ต้องเปลี่ยนเป็น GeForce Game Ready Driver
ไดรเวอร์ NVIDIA

ติดตั้งและจาก NVIDIA App ให้กำหนดค่าการ์ดกราฟิกใหม่เพื่อ ประสิทธิภาพสูงสุด ตามที่อธิบายไว้ใน ขั้นตอนที่ 7
ในการตั้งค่า Windows ไปที่ > การตั้งค่า > การตั้งค่ากราฟิก เปิดใช้งานนโยบายตัวกำหนดตารางเวลา: เพิ่มประสิทธิภาพ เพิ่ม SteamVR ในกลุ่มลำดับความสำคัญ: ประสิทธิภาพสูง

ความเร็ว

ขั้นตอนที่ 2. ติดตั้งไดรเวอร์ตัวส่งสัญญาณ
ใช้ตัวส่งสัญญาณ 3D Vision หรือ ตัวส่งสัญญาณ S3D
ไดรเวอร์ต้นฉบับที่เข้ากันได้และลงนามแบบดิจิทัลเดียวกันนี้ใช้ได้กับทั้งสอง อุปกรณ์ ต้องสลับตัวส่งสัญญาณ S3D เป็นโหมด NVIDIA โดยกดปุ่มสุดท้ายค้างไว้ประมาณสองสามวินาที

ตัวส่งสัญญาณ s3d
ไดรเวอร์ NVIDIA 3D Controller
ติดตั้งและตรวจสอบความสำเร็จใน "Device Manager": เมื่อเชื่อมต่อตัวส่งสัญญาณแล้ว ชื่ออุปกรณ์จะปรากฏขึ้น โดยไม่มีสามเหลี่ยมสีเหลืองแสดงข้อผิดพลาด ห้ามเชื่อมต่อตัวส่งสัญญาณสองตัวเข้ากับพีซีพร้อมกัน! WibbleWobble สามารถทำงานได้กับอินสแตนซ์เดียวเท่านั้น ดูขั้นตอนการติดตั้งในส่วน NVIDIA Gaming

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

ขั้นตอนที่ 4. การลงทะเบียนทั่วไปในระบบ
เราลงทะเบียนไฟล์ WibbleWobble และคอมโพเนนต์ COM ในระบบ เพื่อให้ Windows ทราบว่าแอปพลิเคชันอยู่ที่ใด สิ่งนี้จำเป็นสำหรับทั้งสองไคลเอนต์ ReShade และ OpenVR ไปที่โฟลเดอร์ WibbleWobbleClient คลิกขวาที่ไฟล์ Register.bat และเลือก "Run as administrator" ปล่อยให้มันทำงานเสร็จ หน้าต่างคอนโซลสีดำจะเปิดขึ้นพร้อมข้อความเกี่ยวกับผลลัพธ์

ขั้นตอนที่ 5. เตรียม Windows
รายการบังคับ - หากไม่มี ภาพจะเสีย: ปิดการปรับขนาดหน้าจอในการตั้งค่า Windows Display > Scale > ตั้งค่า 100%

ขั้นตอนที่ 6. ปิด GPU Tweak 3 และยูทิลิตี้ ASUS ที่คล้ายกันหากติดตั้งไว้ ยูทิลิตี้เหล่านี้ทำให้เกิดความหน่วงและทำให้ภาพกระตุก ทำลาย 3D

ขั้นตอนที่ 7. กำหนดค่าจอแสดงผลและการ์ดกราฟิก
ปิดการแสดงผลทั้งหมดยกเว้นจอหลัก!
1. NVIDIA 3D stereo - ปิด
2. G-Sync - ปิด
3. จอภาพ - ตั้งเป็นจอหลัก
4. FPS จอภาพ - 120 Hz
5. Low Latency Mode - Ultra
6. Power Management - Prefer Maximum Performance
7. Vertical Sync - Use the 3D application setting
8. Max Frame Rate - 120 Hz

ขั้นตอนที่ 8. โหลดเกมทดสอบ
เพื่อความสะดวก เราจะใช้เกณฑ์มาตรฐานฟรี Superposition สามารถใช้ทดสอบไคลเอนต์ทั้งสองได้
open-vr

กรณีศึกษา: OpenVR Client

ขั้นตอนที่ 1. ติดตั้ง SteamVR
จาก Steam ฟรี

steam

ขั้นตอนที่ 2. เพิ่มไดรเวอร์ OpenVR Client ให้กับ SteamVR
เปิดโฟลเดอร์ WibbleWobble -> WibbleWobbleVR ข้างในนั้นมีโฟลเดอร์ WibbleWobbleVR อีกอัน ต้องคัดลอกไปที่: \Steam \steamapps \common \SteamVR \drivers - นั่นคือการติดตั้งไดรเวอร์

ขั้นตอนที่ 3. ปิด SteamVR Home
เพื่อให้เมื่อเริ่มต้น Steam ไม่เปิดสภาพแวดล้อม 3D ของตัวเองและจับภาพหน้าจอ ให้เพิ่มสิ่งต่อไปนี้ในไฟล์ config\steamvr.vrsettings ในส่วน "steamvr": "enableHomeApp" : false, ต้องปิด SteamVR ให้สนิทในขณะที่ทำเช่นนี้ ตรวจสอบ vrmonitor.exe และ vrserver.exe ใน Task Manager

ขั้นตอนที่ 4. เปิดตัวเกมทดสอบ
เปิด Superposition โดยคลิกที่ไอคอนเดสก์ท็อป เพื่อแสดงผลผ่าน OpenVR Client ให้เลือก:

Virtual Reality
Graphics API - DirectX
VR Headset - SteamVR

เรียกใช้การทดสอบ
หากทุกอย่างถูกต้องและ SteamVR อ่าน config ได้ มันควรจะแสดงภาพอินเทอร์เฟซควบคุมด้วยมุมมอง "เหมือนชุดหูฟัง" ทันที แต่สำหรับเรา สิ่งนี้ไม่เกิดขึ้น การเรียกอินเทอร์เฟซ WibbleWobble ใดๆ จากคีย์บอร์ดไม่ทำงานอะไรเลย เมาส์หลุดและการควบคุมไม่ทำงาน...

ณ จุดนี้คุณควรรีบูตเครื่องคอมพิวเตอร์!

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

ขั้นตอนที่ 5. การกำหนดค่าการแสดงผลกราฟิก
กด SHIFT + END เพื่อเปิดอินเทอร์เฟซ WibbleWobble ไปที่รายการเมนู Game Config ตั้งค่า ขนาดที่สะดวกสำหรับหน้าต่างเกมบนจอแสดงผลและมุมมอง "โลก" ตามที่คุณต้องการ อย่าทำให้ใหญ่เกินไป ตั้งเป้าให้ภาพดูเป็นธรรมชาติ หลังจากเปลี่ยนพารามิเตอร์ใดๆ ให้กด Enter และ Save มิฉะนั้นไคลเอนต์จะไม่จำการตั้งค่าและคุณจะต้องทำใหม่

ขั้นตอนที่ 6. เปิดใช้งานการซิงโครไนซ์ 3D
ไปที่ Emitter Config: เปิดใช้งานตัวส่งสัญญาณ NVIDIA 3D ด้วยช่องทำเครื่องหมาย ตั้งค่า Sync Rate HZ ตามคำแนะนำที่ด้านบนของหน้าต่าง LED ของตัวส่งสัญญาณควรเปลี่ยนเป็นสีเขียวสว่าง กดปุ่มเปิดปิดบนแว่นตาและตรวจสอบว่าสเตอริโอปรากฏขึ้นหรือไม่

ขั้นตอนที่ 7. ปรับการซิงโครไนซ์
หากแว่นตาเปิดขึ้นแต่ไม่มีสเตอริโอ / หรือภาพซ้อน / กะพริบ / สลับมุมมอง:
ปรับ Sync Offset Microseconds - เฟสที่แว่นตาเปิด ปรับ Open Duration Microseconds - ระยะเวลาที่เลนส์เปิดค้าง ตั้งค่าพารามิเตอร์ให้ต่ำกว่าระยะเวลา Sync Rate (ค่าจะแสดงที่ด้านบนของหน้าต่าง) มิฉะนั้นสเตอริโอจะหายไป เป้าหมาย: ได้รับการซ้อน (ครอสทอล์ค) น้อยที่สุด ภาพตาซ้ายไม่ควรรั่วไหลไปยังตาขวาอย่างมีนัยสำคัญ ภายหลังเราจะแนบไฟล์กำหนดค่าที่ปรับแต่งแล้วพร้อมพารามิเตอร์ทั้งหมด

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

ต่อไป เราจะลองเชื่อมต่อเกมรุ่นเก่า ที่สร้างบน DirectX 9, 10 ผ่านไคลเอนต์ ReShade นี่เป็นเรื่องยากกว่ามาก ดังนั้นเราจะไม่รีบร้อน โปรดติดตามตอนต่อไป - กลับมาตรวจสอบอีกครั้ง...

Homepage Terms & Conditions About Us Privacy Policy Business Info Contacts Payment Shipping Send Msg