HDRI หรือ High Dynamic Range Image คืออะไร ??
หลายคนคงเคยได้ยินคำนี้แต่ยังไม่แน่ใจว่ามันคืออะไร และมีประโยชน์อะไรกันแน ่ลองอ่านดูครับ อาจจะวิชาการนิดนึง แต่ก ็ไม่ใช่เรื่องยากอะไร
โดยปติแล้วภาพทุกภาพที่สายตาเราสามารถเห็นได ้ไม่ว่าจะเป็นภาพถ่าย ภาพบนจอคอม ภาพพิมพ ์จะมีช่วงของ ปริมาณ แสงอยู่ช่วงหนึ่ง เช่นภาพจอจอมอนิเตอร์ของคอมพิวเตอร์ก็จะแสดงผลแบบ RGB คือแต่ละสีสามารถแสดงได ้อยู่ในช่วง 0255
(แบบ 8bit ต่อ 1สี) ภาพเหล่านี้จัดเป็นภาพแบบ Low Dynamic Range หรือมีการกระจายค่าระหว่าง ค่าสีสว่างที่สุด และมืดที่สุด ตํ่า
ส่วนภาพแบบ HDRI จะมีปริมาณที่มากกว่านั้นหลายเท่าโดยจะเก็บเป็นเลขทศนิยม ตั้ง 1 จนถึง หลายล้าน คือใช้ชนิด ข้อมูลแบบ Floating number (32bit ต่อ 1สี) ในการจัดเก็บนั่นเอง
แล้วจัดเก็บเยอะๆแบบนี้ดีอย่างไร ?
เคยลองสังเกตภาพที่มีจุดสว่างบนภาพรึเปล่าครับ เช่นจุดที่ถ่ายติดแสงไฟเข้ามา ดูขาวเป็นดวงไปหมดเลย แต่จริงๆแล้ว ไม ่ได้ขาว จะมีสีเจืออยู่ในปริมาณที่ต่างๆกันในแต่ละบริเวณเสมอ เนื่องจากความสามารถในการ มองเห็นที่จำกัดของ สายตาคน เรา ทำให้ไม่สามารถแยกแยะได้ว่าบริเวณนี้มีสีที่ต่างกันแบบไหนบ้าง แต่ภาพแบบ HDR สามารถบอกถึง ความแตกต่างตรง นี้ได ้นั่นหมายความว่า เราสามารถทำให้ภาพนี้มืดลง หรือสว่างขึ้น ได้ไม่เกิดเหตการณ์ที่เรียกว่า banding (สีแยกเป็นชั้น) ขึ้นเลย และการใช filter บางอย่าง จะใกล้เคียงความเป็นจริงมากขึ้นเช่น การใช Guassian Blur จะทำให ้จุดสว่างของภาพ ยังคงสว่าง ต่างจาก ภาพธรรมดาที่จุดสว่างจะมืดลง ลองเบรอใน Photoshop ดูครับ เห็นได้ชัดเลย
สร้าง HDRI ได้อย่างไร
เนื่องจากในปัจจุบันยังไม่มีอุปกรณ์ชนิดใดที่สามารถถ่ายภาพ HDRI ได้อย่างสมบูรณ ์จึงจำเป็นต้องถ่ายภาพ ที่มีค่าแสง แตกต่างกัน หลายๆภาพ แล้วเอามาประกอบกันขึ้นเพื่อให้ได้ข้อมูลสีที่ดีที่สุด ถ้าใครเคยเลยกล้องมา อาจจะคุ้นเคยกับ คำว่า f-stop เราจะทำการปรับ f-stop และ shutter speed หลายๆค่าแล้วถ่ายออกมา ตั้งแต่ภาพ over มากๆ จน under มากๆ อาจะสิบภาพ หรือหลายสิบภาพ แล้วแต่ความต้องการว่า ต้องการ ความถูกต้องของสีมากแค่ไหน โดยโปรแกรม HDRShop สามารถรวมภาพแบบนี้หลายๆภาพแล้วสร้างเป็น HDRI ได ้
แล้ว HDRI มาเกี่ยวกับ 3D ได้ยังไง ?
อันนี้ต้องพูดถึงการจำลองใน 3D ในเหมือนแสงสถานที่จริง มีหลายวิธีครับ ตั้งแต่เอา matte ball (ลูกบอลสีขาวไม ่สะท้อน แสง เช่นปูนปาสเตอร์) ไปตั้งแล้วถ่ายภาพมา หรือถ้าไม่มีโอกาศไปดูสถานที่จริง ก็ใช้ภาพฉากนั้นอ้างอิง แล้วนำมาวัด ประมาณสีตามจุดต่างๆ และ Light Probe Image ก็เป็นอีกวิธีที่จะวัด ปริมาณแสงได้อย่างแม่นยำ
การสร้าง Light Probe Image ให้ได้คุณภาพที่ดีและคุณภาพสูง Light Probe Image ตัวนี้ต้องเป็น HDRI หมายความว่า ต้องถ่ายภาพหลายๆภาพ ในปริมาณแสงที่แต่งต่างกันแล้วนำมาคำนวณเป็น HDRI ด้วยการใช HDRShop
ในการถ่ายภาพเพื่อนนำมาทำเป็น Light Probe Image นั้น จะใช mirror ball หรือลูกบอกสะท้อนแสง เช่นลูกเหล็ก โครเมี่ยม แล้วใช้เลนส์แบบ tele photo ถ่ายออกมา ภาพด้านล่างนี้ผมเอามาจาก Environment map ของ Rhino ถ่ายมาแค ่ภาพเดียว จึงเป็น Light Probe แบบคุณภาพตํ่า แต่ก็พอใช้งานได้ละครับ

ส่วนภาพด้านขวาเป็นภาพที่ใช HDRShop เปลี่ยนจากแบบ mirror ball เป็นแบบ latitude/longitude
ถ้าเราใช้ภาพธรรมดาเช่นข้างบนนี้มาเป็น Light Probe Image จะทำให้การคำนวณปริมาณแสง สีของแสง และตำแหน่ง ของแสงคลาดเคลื่อนจากความเป็นจริง อยู่บ้าง คือพอมองออกว่าไม่ค่อยเหมือน (specular บนเงาสะท้อนหาย) แต่ไม่ได ้เด่นชัดอะไร ผมยกขึ้นมาให้เห็นวิธีการคร่าวๆครับ ถ้าอยากลองใช HDRI ดูก็ใช้ได ้
แล้วจะใช Light Probe Image ใน 3D อย่างไร ?
เอาล่ะ เราได Light Probe Image มาแล้ว ถึงเวลาใช้งาน หลายคนอาจจะเคยไดยิน renderer หลายตัวโฆษณากันว่า สามารถใช HDRI ได ้เช่น Finalrender, Brazil อะไรพวกนี้นั่นก็คือแต renderer เหล่านี้มีความสามารถในการทำ Image Base Lighting ได้นั่นเอง บางคนอาจจะเคยทดลองทำ dome light หรือ Monte Carlo style global illumination หลักการก็คือ เอาภาพอะไรก็ตามไปแปะเป็น texture ของ sphere ที่มีขนาดใหญ่มากกว่าฉากพอสมควร แล้วสีของภาพ texture ก็จะกลายเป็นแสง ตกลงมากระทบกับวัตถุรอบทิศทาง renderer บางตัว ก็ไม่จำเป็นต้องสร้าง spere ขึ้นมา สามารถกำหนดภาพได้เลยว่าจะใช texture ไหน ถ้า texture ตัวนั้นเป็น Light Probe Image ก็จะทำให้ได ้แสงปริมาณใกล้เคียงกับความจริงมากที่สุด ให้ผลคล้ายๆกัน หลักการคล้ายๆกัน แต renderer แต่ละตัวก็มีalgorithm หรือ กระบวนการในการคำนวณที่แตกต่างกันออกไป มากบ้างน้อยบ้าง แล้วแต่เทคโนโลยีของใครของมัน
สำหรับ renderer ที่ไม่รู้จัก HDRI ล่ะทำไง ?
โดยทั่วไปการสร้างแสงเลียนแบบ สถานที่จริง จะใช directional light หรือ distance light วางตามจุดต่างๆ ที่คิดว่าแสง จริงๆมาจากบริเวณนั้น และทำการประมาณค่าสีและความสว่าง จากภาพถ่ายอ้างอิง หรือจาก matte ball ก็ได ้ถ้าเราทำด้วย มือได้ก็ดีครับ แต่ปกติแล้วการประมาณค่าพวกนี้ต้องอาศัยประสบการณ์สูงมาก ดังนั้นจึงเกิด scrpit และ plugin มากมายที่จะสร้างแสงพวกนี้ขึ้นมาอัตโนมัติไหนๆก็พูดถึง HDRShop มาเยอะแล้วก็พูดถึง lightgen plugin ของ HDRShop ซะ หน่อย มาลองสร้างสร้างเพื่อเอาเข้าไปใช้ใน Maya ดูครับ โดยใช้รูปด้านบนเป้น Light Probe Image
การติดตั้ง lightgen_plugin.exe ก็ไม่ยากครับ copy file lightgen_plugin.exe ไว้ใน folder plugins ของ HDRShop ก็ใช้ได้แล้ว เปิด HDRShop ขึ้นมาในหัวข้อ plugin ก็จะมีLightgen ขึ้นมา
ภาพที่จะใช้กับ Lightgen ต้องเปลี่ยนเป็นแบบ latitude/longitude ก่อนนะครับ

output filename คือตั้งชื่อ file ที่เราต้องการครับ output filetype เอาไปใช้ใน Maya เลือก MEL ได้เลย number of lightsources to generate อันนี้เป็นจำนวนแสงว่าจะให้สร้างขึ้นมากี่ดวง 20 ดวงก ็ok แล้วครับ จะ มากกว่านี้ก็ได ้แต render นาน maximum number of iterations เป็นจำนวนรอบของการวนลูปต่อรอบ ผมตั้งไว 20 เนื่องจากขี้เกียจรอนาน ถ้าตั้งไว ้เยอะ เช่น 100 อันนี้รอนานมากครับ แต่จะได้แสงที่ใกล้เคียงความจริงมากขึ้น number of searches อันนี้คล้ายๆอันบนแต่ไม่มีผลมากนัก ปกติตั้งไว 5 ก็พอแล้วครับ desired total light intensity ความสว่างโดยรวม ถ้าไม่อยากให้แสงมากไปก็ตั้งไว้ตํ่าๆเช่น 0.5
เสร็จแล้วเราจะได้เป็น .MEL ออกมา ซึ่งเป็น script ของ Maya เป็น text file ครับ เปิด Maya แล้วเปิด script editor ขึ้น มา เลือก File>>Open Script... แล้วก็เลือก .MEL ของเราขึ้นมา จากนั้นกด CTRL+Enter ก็จะเห็น แสงเกิดขึ้นมา

หลังจากมีแสงแล้วสังเกตตรงกลางจะมีlocator โผล่ขึ้นมาด้วย ซึ่งมีหน้าที่ปรับความสว่างโดยรวมของแสง วิธีปรับก ็คลิกที่locator ดูที่channel box จะเห็นคำว่า dimmer ฉากนี้ผมตั้งไว้ที่0.001 เพื่อไม่ให้สว่างไป
วาง object ที่ต้องการลงไปแล้ว แล้วก็ลอง render ดูก็จะออกมาประมาณนี้ครับ

จะเห็นว่าแสงที่ได ok เลยทีเดียว แต่เงาไม่ดีเท่าไหร เนื่องจากเป็น depth map shadow ธรรมดาเท่านั้นเอง ถ้าเป็นraytrace shadow ก็จะช้าจนเกินไป ถ้ามีเวลารอก็จะออกมาดีเลยครับ ซึ่งก็เป็นข้อเสียของวิธีนี้ส่วนเทคนิกที่จะทำให้ดีขึ้น ไว้จะเขียนถึง plugin แจกฟรี2-3 ตัวคราวหน้าครับ
<<Back |