เผยคุณสมบัติใน DirectX 11 ที่คุณอาจยังไม่รู้! : Tessellation, Ambient Occlusion และ Post-processing กันนะ!?

DirectX 11

สวัสดีครับท่านผู้อ่านที่น่ารักทุกท่าน เชื่อว่าในตอนที่กำลังอ่านบทความนี้อยู่ เครื่องคอมพิวเตอร์ของท่านก็คงมีการ์ดกราฟิกที่รองรับ DirectX 11 กันเป็นที่เรียบร้อยแล้ว อันเนื่องมาจากทั้ง AMD (ซีรีย์ 5000 และ 6000) และ NVIDIA (ซีรีย์ 400 และ 500) ต่างโหมกระหน่ำออกการ์ดกราฟิกรุ่นใหม่ที่รองรับคุณสมบัติดังกล่าวออกมาไม่ขาดสายทั้งสำหรับตลาดระดับบนเรื่อยลงมาถึงตลาดระดับล่าง รวมทั้ง Microsoft เองประสบความสำเร็จอย่างสวยงามกับ Windows 7 ที่มี DirectX 11 ติดมาแล้ว (ใครที่ใช้ Vista อยู่ต้องไปดาวน์โหลดมาเพิ่มเอง ส่วนคนที่ใช้ XP อยู่ก็ต้องขอแสดงความเสียใจด้วยครับ เพราะ DirectX 11 ไม่รองรับ) จนทำให้บัดนี้มาตรฐานของคอมพิวเตอร์สำหรับเล่นเกมในปัจจุบันจะต้องประกอบไปด้วย Windows 7 และการ์ดกราฟิก DirectX 11 ไปซะแล้ว

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

Tessellation สุดยอดเทคโนโลยีแห่งอนาคต

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

ภาพที่ 1 แสดงภาพที่ไม่ใช้ Tessellation (ซ้าย) และใช้ (ขวา)
ภาพที่ 1 แสดงภาพที่ไม่ใช้ Tessellation (ซ้าย) และใช้ (ขวา)

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

Tessellation แบบที่สองที่นิยมใช้กันมากนั้นมีชื่อเรียกว่า Subdivision Surface (ภาพที่ 2) ซึ่งจะตรงข้ามกับแบบแรก กล่าวคือแทนที่จีพียูจะสร้าง (generate) โพลีกอนรูปสามเหลี่ยมขึ้นมาใหม่เติมเข้าไปในวัตถุ แต่เทคนิคนี้จะเป็นการ “แบ่งย่อย” (subdivide) หรือตัดแบ่งจำนวนโพลีกอนที่มีอยู่แล้วให้มีขนาดเล็กลง ให้เสมือนหนึ่งว่ามีปริมาณโพลีกอนเพิ่มมากขึ้นนั่นเอง ซึ่งจะส่งผลให้วัตถุมีความโค้งมนมากขึ้น (เพราะมีเม็ดเล็กๆ ของโพลีกอนมากขึ้น) โดยในภาพ 2 นั้นจะเห็นได้ว่าภาพทางขวามือที่มีลักษณะเป็น wireframe นั้นรูปทรงของวัตถุจะมีความโค้งเป็นธรรมชาติมาก อันเนื่องมาจากโพลีกอนในรูปทรงของวัตถุได้ถูกแบ่งย่อยเป็นชิ้นเล็กๆ จนสามารถประกอบเป็นตัวละครที่มีลักษณะสมจริงเหมือนตามที่เราเห็นในการ์ตูนแอนิเมชั่นได้เลยทีเดียว

ภาพที่ 2 เป็นภาพ wireframe ที่ทางด้านซ้ายนั้นเป็นภาพที่แสดงให้เห็นโครงร่างของโพลีกอนก่อนการใช้เทคนิค Subdivision Surface ส่วนภาพขวานั้นเป็นโครงที่เห็นว่าใช้คุณสมบัติดังกล่าวแล้ว
ภาพที่ 2 เป็นภาพ wireframe ที่ทางด้านซ้ายนั้นเป็นภาพที่แสดงให้เห็นโครงร่างของโพลีกอนก่อนการใช้เทคนิค Subdivision Surface ส่วนภาพขวานั้นเป็นโครงที่เห็นว่าใช้คุณสมบัติดังกล่าวแล้ว

Ambient Occlusion เพิ่มความสมจริงให้กับแสงและเงา

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

เทคโนโลยีปัจจุบันที่ใช้ในการสร้างแสงเงาในเกมนั้นมีชื่อว่า Ambient Occlusion ซึ่งเป็นการคำนวณลักษณะที่แสงตกกระทบกับวัตถุแล้วทำให้เกิดเงา รวมทั้งลักษณะที่แสงและเงาเปลี่ยนไปตามระยะทางที่มากขึ้นหรือน้อยลง โดยเทคโนโลยีนี้สามารถแบ่งออกได้เป็นสองแบบเช่นกัน แบบแรกคือ Screen Space Ambient Occlusion หรือ SSAO ที่ใช้ในเกม Crysis ซึ่งจะเป็นการนำตำแหน่งที่แสงตกกระทบมาคำนวณเปรียบเทียบกับตำแหน่งอื่นๆ ที่เหลือภายในฉากว่ามีความสัมพันธ์กันอย่างไร รวมทั้งคำนวณผลลัพธ์อันเกิดจากแสงที่ตกกระทบวัตถุชิ้นใดชิ้นหนึ่ง แล้วมีผลต่อส่วนอื่นๆ ภายในฉากด้วย (งงมั้ยเอ่ย?) ยกตัวอย่างเช่น วัตถุมันวับ (เช่นกระโปรงรถขัดมัน) ที่สามารถสะท้อนแสงไปสู่วัตถุอื่นๆ ภายในฉากได้ แม้ว่าวัตถุ (ที่ได้รับแสงสะท้อนจากกระโปรงรถขัดมัน) นั้นจะถูกบังไว้ไม่ให้ได้รับแสงจากแหล่งกำเนิด (เช่นดวงอาทิตย์) โดยตรงก็ตาม

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

ประเภทที่สองของ Ambient Occlusion ที่ใหม่กว่านั้นมีอีกสองประเภทย่อยด้วยกันคือ High-definition ambient occlusion (HDAO) และ Horizon-based ambient occlusion (HBAO) ที่ถึงแม้มีความแตกต่างกันเล็กน้อย แต่ก็ยังคงยืนพื้นเดิม นั่นคือเป็นเทคนิคที่ใช้ความสัมพันธ์ของวัตถุภายในฉากในการคำนวณลักษณะที่แสงตกกระทบวัตถุว่ามีลักษณะอย่างไร รวมทั้งการคำนวณลักษณะของแสงที่สะท้อนไปวัตถุอื่น ตลอดจนประเภทของแสงด้วยว่าเป็นแสงตรงหรือแสงสะท้อน เป็นต้น

ภาพที่ 3 แสดงให้เห็นถึงเทคนิคการใช้ HDAO ภายในเกม จะเห็นว่าวัตถุดูมีมิติมากขึ้น
ภาพที่ 3 แสดงให้เห็นถึงเทคนิคการใช้ HDAO ภายในเกม จะเห็นว่าวัตถุดูมีมิติมากขึ้น

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

ภาพที่ 4 แสดงให้เห็นถึงเทคนิค Contact Hardening ที่ขอบของเงาใกล้ฐานของวัตถุจะชัดเป็นเส้นตรง แต่พอห่างออกไปก็จะค่อยๆ นุ่มลง
ภาพที่ 4 แสดงให้เห็นถึงเทคนิค Contact Hardening ที่ขอบของเงาใกล้ฐานของวัตถุจะชัดเป็นเส้นตรง แต่พอห่างออกไปก็จะค่อยๆ นุ่มลง

เทคนิคด้านเงาอีกอย่างหนึ่งที่เพิ่มเข้ามาใน DirectX 11 เรียกว่า Contact Hardening ซึ่งจะช่วยให้ขอบของเงามีลักษณะสมจริงเพิ่มขึ้นมาก ง่ายๆ ให้ลองนึกถึงสภาพความเป็นจริงดูครับว่า ตามปกติแล้วขอบของเงาที่เกิดขึ้นกับวัตถุที่มีความสูงมากๆ อย่างต้นไม้และเสาไฟฟ้านั้นจะไม่คมชัดตลอดแนวความยาว กล่าวคือเส้นขอบของเงาที่อยู่ใกล้กับฐานของต้นไม้และเสาไฟฟ้าจะคมชัดเห็นเป็นเส้นตรง แต่เมื่อห่างออกไปขอบของเงาจะค่อยๆ ฟุ้งกลมกลืนไปกับพื้นโดยรอบ และไม่เห็นเป็นเส้นตรงอีกต่อไป ตามตัวอย่างภาพที่ 4 ครับ และในปัจจุบันนี้เกมที่ใช้คุณสมบัติ Contact Hardening มีอยู่เกมเดียวคือ S.T.A.L.K.E.R.: Call of Pripyat

Post-Processing เสริมสร้างภาพให้ได้ตามใจฝัน

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

ความจริงแล้วเทคนิคการทำ Post Processing นั้นใช้กันมานาแล้วตั้งแต่ยุคของ DirectX 9 และ 10 แต่กับ DirectX 11 นั้นได้มีการเพิ่มลูกเล่นเข้าไปอีกมากมาย เป็นต้นว่าเทคนิคการทำภาพชัดตื้น (Dept of field) ภาพบิดเบี้ยวที่เกิดจากไอความร้อน (Heat distortion) หรือภาพผิดเพี้ยนเมื่อส่องไปลงไปในน้ำที่มีการเคลื่อนไหว (Wet distortion) โบเก้ ภาพเบลอ และฟิล์มเกรนให้เหมือนกับการรับชมภาพยนตร์เก่า เป็นต้น ซึ่งทั้งหมดนี้ใช้จีพียูในการประมวลผลทั้งสิ้น

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

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

บทส่งท้าย

ย้อนกลับไปเมื่อหลายปีที่แล้ว การเปรียบเทียบคุณภาพของการ์ดกราฟิกนั้นจะวัดกันที่ความสามารถในการทำ Anti-Aliasing (การลบรอยหยักบริเวณขอบภาพ) และ Anisotropic Filtering (การเพิ่มคุณภาพของ texture บนพื้นผิวตามทิศทางมุมกล้องให้มีความคมชัด) ซะเป็นส่วนมาก ซึ่ง DirectX 10 นั้นเปลี่ยนแนวทางเสียใหม่ด้วยการเพิ่มลูกเล่นต่างๆ เข้าไปมากมาย แต่น่าเสียดายที่ว่าได้รับเสียงตอบรับไม่ค่อยจะดีนัก เพราะเมื่อเปิดใช้งานแล้วส่งผลต่อประสิทธิภาพในการเล่นเกมเป็นอย่างมาก รวมทั้งคำวิจารณ์ในแง่ลบของ Windows Vista เองด้วย แต่ด้วยการมาถึงของ Windows 7 และ DirectX 11 นั้นทุกสิ่งก็ไม่เหมือนเดิมอีกต่อไป เพราะการ์ดกราฟิกรุ่นใหม่จากทั้งสองค่ายนั้นได้รับการปรับปรุงให้มีประสิทธิภาพดีขึ้นมาก สามารถรองรับการประมวลผลที่มากับ DirectX 11 ได้เป็นอย่างดี ไม่ลดเฟรมเรทมากจนกระตุก จนกระทั่งในปัจจุบันนี้คงยากที่เราจะเห็นเกมพีซีในปัจจุบันที่ไม่ใช้ความสามารถง่ายๆ อย่าง Post-Processing

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

Advertisements

ใส่ความเห็น

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  เปลี่ยนแปลง )

Google+ photo

You are commenting using your Google+ account. Log Out /  เปลี่ยนแปลง )

Twitter picture

You are commenting using your Twitter account. Log Out /  เปลี่ยนแปลง )

Facebook photo

You are commenting using your Facebook account. Log Out /  เปลี่ยนแปลง )

w

Connecting to %s