2 คะแนน โดย GN⁺ 2024-03-01 | 1 ความคิดเห็น | แชร์ทาง WhatsApp

วิธีใช้ LUT ในวิดีโอเกม และคุณก็สามารถใช้มันได้เช่นกัน

  • ในวิดีโอเกมมีการใช้ LUT (Look-up tables) เพื่อประยุกต์ใช้เทคนิคเชิงสร้างสรรค์
  • อธิบายวิธีจัดการข้อมูลวิดีโอแบบเรียลไทม์ผ่านตัวอย่างที่ใช้ WebGL
  • ผู้ใช้สามารถลองทำตามได้ด้วยวิดีโอของตนเองหรือเว็บแคม

การตั้งค่า

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

การลงสี

  • ลงสีให้วิดีโอด้วย Fragment Shader ที่ทำหน้าที่กำหนดสีของแต่ละพิกเซล
  • อธิบายวิธีจัดการสีผ่านตัวอย่างง่าย ๆ ของการย้อมเป็นสีส้ม

ต้นทุนด้านประสิทธิภาพ: ศูนย์

  • ผลกระทบต่อประสิทธิภาพจากการลงสีแทบไม่มีเลย และแทบมองข้ามได้เนื่องจาก latency hiding ของ GPU

การใช้การลงสีของ Valve Software

  • ในเกม Left 4 Dead ของ Valve Software มีการใช้การลงสีกับโมเดลรถเพื่อสร้างรูปแบบที่หลากหลาย

LUT - เรียบง่ายแต่ทรงพลัง

  • อธิบายวิธีกำหนดและเปลี่ยนช่วงสีด้วยการใช้ LUT

1D LUT แบบเรียบง่าย

  • 1D LUT คืออาร์เรย์ของสีที่ใช้แปลงวิดีโอระดับเทาให้เป็น RGB
  • สาธิตการแปลงสีด้วย 1D LUT หลายขนาด

สีสันมากมาย

  • มี color maps ทั้งหมดที่ matplotlib รองรับให้ใช้งานในรูปแบบ 1D LUT
  • แนะนำให้ใช้ color maps แบบ Perceptually Uniform

ยังไม่มีต้นทุนด้านประสิทธิภาพอยู่หรือไม่?

  • สำหรับ 1D LUT ขนาดเล็ก แทบไม่มีผลต่อประสิทธิภาพมากนัก และยังใช้แคชของ GPU ได้อย่างมีประสิทธิภาพ

ความหลากหลายสำหรับซอมบี้

  • ใน Left 4 Dead 2 มีการใช้ LUT เพื่อสร้างความหลากหลายของสีซอมบี้

การคำนวณล่วงหน้า

  • สามารถใช้ 1D LUT เพื่อแคชการคำนวณที่มีต้นทุนสูง เช่น การแก้แกมมาให้ทำงานได้รวดเร็วขึ้น

3D LUT อันทรงพลัง

  • 3D LUT รีแมปสีโดยแทนพื้นที่ RGB ทั้งหมดเป็นลูกบาศก์หนึ่งก้อน

การตั้งค่า

  • อธิบายการประมวลผล 3D LUT โดยใช้วิดีโอโปรไฟล์ log ที่ถ่ายจาก Panasonic GH6

การแก้ไขแบบง่าย

  • อธิบายกระบวนการใช้ DaVinci Resolve เพื่อทำ color correction และส่งออก LUT อีกครั้ง

การใช้ 3D LUT ใน Left 4 Dead

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

การผจญภัยขั้นสูง

  • อธิบายวิธีใช้เครื่องมือ color grading อย่าง DaVinci Resolve เพื่อส่งออกการแปลงสีที่ซับซ้อนเป็น LUT

การใช้งานอื่น ๆ

  • แนะนำกรณีใช้งานอื่นของ LUT เช่น LUT ที่ถูกใช้ในการพอร์ต Tomb Raider ลง Game Boy Advanced

ความเห็นของ GN⁺

  • LUT เป็นเครื่องมือทรงพลังสำหรับการจัดการสีและการเพิ่มประสิทธิภาพในวิดีโอเกมและงานกราฟิกโปรแกรมมิง เทคโนโลยีนี้ช่วยสร้างเอฟเฟกต์ภาพที่หลากหลายในงานเรนเดอร์แบบเรียลไทม์ได้โดยไม่ลดทอนประสิทธิภาพ จึงมีประโยชน์ทั้งต่อนักพัฒนาและศิลปิน
  • เมื่อใช้ LUT ควรคำนึงถึงความแม่นยำของสีและการนำเสนอข้อมูลในเชิงภาพ โดยเฉพาะความสำคัญของ color maps แบบ Perceptually Uniform ที่คำนึงถึงผู้มีภาวะตาบอดสี
  • เทคนิคนี้สามารถประยุกต์ใช้ได้ในหลายด้าน เช่น การแก้สี การจัดสไตล์ภาพ และการทำภาพข้อมูลให้เข้าใจง่าย ตัวอย่างเช่น สามารถนำแนวคิดที่คล้ายกับ LUT ที่ใช้ในงาน color grading ของอุตสาหกรรมภาพยนตร์มาปรับใช้กับการพัฒนาเกมได้
  • ขนาดและความละเอียดของ LUT อาจแตกต่างกันไปตามวัตถุประสงค์และแพลตฟอร์มที่ใช้งาน จึงจำเป็นต้องเข้าใจประเด็นนี้ เช่น ในอุตสาหกรรมภาพยนตร์ LUT ขนาด 33³px ถือเป็นมาตรฐาน แต่ในเกมหรือแอปพลิเคชันกราฟิกอื่น ๆ อาจต้องใช้ขนาดที่ต่างออกไป
  • เมื่อนำเทคนิคนี้ไปใช้ สิ่งสำคัญคือการหาสมดุลระหว่างการแสดงสีอย่างแม่นยำกับการปรับแต่งประสิทธิภาพ การใช้ LUT ให้มีประสิทธิผลต้องอาศัยความเข้าใจอย่างลึกซึ้งทั้งด้านทฤษฎีสีและกราฟิกโปรแกรมมิง

1 ความคิดเห็น

 
GN⁺ 2024-03-01
ความคิดเห็นจาก Hacker News
  • คำอธิบายเกี่ยวกับวิธีใช้ตารางค้นหา (LUT) เพื่อสร้างเอฟเฟกต์

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

    • ใช้ตารางค้นหาที่บอกมุมและระยะจากจุดศูนย์กลางสำหรับแต่ละพิกเซลบนหน้าจอ
    • ทำให้ดูเหมือนกำลังเคลื่อนที่ผ่านอุโมงค์ที่มีเรขาคณิต 3D แต่ใช้ต้นทุนน้อยจนสามารถทำบน Pico ได้
    • เคยคิดว่าเกม 'Stardust' ใช้เอฟเฟกต์นี้ แต่จริง ๆ แล้วใช้แอนิเมชัน 6 เฟรมแบบวนซ้ำเป็นฉากหลัง
  • ให้ลิงก์วิดีโอเกี่ยวกับวิธีที่เกม 'The Legend of Zelda: Wind Waker' ใช้ตารางค้นหาเพื่อสร้างภาพลักษณ์ที่โดดเด่น

    • 'Breath of the Wild' และ 'Tears of the Kingdom' ก็ใช้เทคนิคเดียวกัน
  • แจ้งว่าผู้เขียนบทความเกี่ยวกับตารางค้นหาพร้อมจะมาตอบคำถาม

  • คำอธิบายเกี่ยวกับความสำคัญของตารางค้นหาในการพัฒนาเกมย้อนยุค

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

    • ใช้ตารางค้นหาเพื่อให้ได้เอฟเฟกต์ที่ดูซับซ้อนกว่าที่ระบบจะคำนวณแบบเรียลไทม์ได้มาก
  • แชร์พอดแคสต์ตอนหนึ่งเกี่ยวกับวิธีที่พอร์ต 'Doom' เวอร์ชัน SNES ใช้ตารางค้นหาในการคำนวณตรีโกณมิติ

    • SNES ไม่มีกราฟิกโปรเซสเซอร์ จึงต้องใช้ตารางค้นหาในการคำนวณ
  • แสดงความไม่พอใจที่คนซึ่งมีความรู้เรื่อง dynamic programming มักสับสนระหว่าง caching กับ memoization

    • memoization คือสถานะที่ใช้ร่วมกันในขอบเขตเฉพาะที่ ส่วน caching คือสถานะที่ใช้ร่วมกันแบบโกลบอล ซึ่งมีปัญหาคนละแบบ
    • caching คือการคาดการณ์ว่าสิ่งใดจะต้องใช้ในอนาคต ส่วน memoization คือการรู้ว่าสิ่งนั้นจำเป็นต้องใช้ทันที
    • tabulation คือการหาและแก้ปัญหาย่อยที่ซ้ำกันไว้ล่วงหน้า ส่วนตารางค้นหาคือ tabulation แบบขนาดคงที่
  • แชร์ข้อมูลเกี่ยวกับ 'Lattice' แอปบน Mac สำหรับจัดการตารางค้นหา

  • ให้รายการตัวอย่างเอฟเฟกต์หลากหลายแบบที่ใช้ตารางค้นหา

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