คณิตศาสตร์กับงานคอมพิวเตอร์กราฟฟิกส์ตอนที่ 1

บทความนี้เขียนโดย อ.ดร. ธนาสัย สุคนธ์พันธุ์ เผยแพร่ครั้งแรก ที่นี่ เมื่อ 7 ธันวาคม 2014 ในคอลัมน์ Intelligence and Information ของ Manager Online


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

รูปที่ 1 ตัวอย่างของเครื่องมือที่ใช้ในงานคอมพิวเตอร์กราฟฟิกส์ ซ้ายสุด: Adobe Photoshop สำหรับงานแต่งภาพและวาดภาพ, กลาง: Zbrush สำหรับงานปั้น 3 มิติ และ ขวาสุด: Maya สำหรับงานออกแบบและแสดงผล 3 มิติ (ที่มา: Adobe และ Pixologic)
รูปที่ 1 ตัวอย่างของเครื่องมือที่ใช้ในงานคอมพิวเตอร์กราฟฟิกส์ ซ้ายสุด: Adobe Photoshop สำหรับงานแต่งภาพและวาดภาพ, กลาง: Zbrush สำหรับงานปั้น 3 มิติ และ ขวาสุด: Maya สำหรับงานออกแบบและแสดงผล 3 มิติ (ที่มา: Adobe และ Pixologic)

การแสดงภาพบนจอคอมพิวเตอร์

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

แสดงรูปแบบของ Pixel บนหน้าจอคอมพิวเตอร์ (ที่มา: digestgraphicdesign.com/bitmap_vs_vector.html)
รูปที่ 2 แสดงรูปแบบของ Pixel บนหน้าจอคอมพิวเตอร์ (ที่มา: digestgraphicdesign.com/bitmap_vs_vector.html)

ในแง่ของการทำงานของจอคอมพิวเตอร์เบื้องต้นนั้น การผสมแม่สี ก็คือการกำหนดตัวเลขความเข้มของแสงของแต่ละแม่สี ตัวอย่างเช่นถ้าเราใช้ 1 Byte ในการเก็บความเข้มของแม่สีแต่ละแม่สี ความเข้มของแม่สีแต่ละแม่สีก็จะมีค่าอยู่ระหว่าง 0 ถึง 255 ซึ่ง 0 หมายถึง ไม่มีแสงจากแม่สีนั้นเลย ส่วน 255 นั้น หมายถึง เปิดแสงจากแม่สีนั้นเต็มที่ ตัวอย่างเช่น การให้ความเข้มของแม่สีทุกตัวเป็น 0 นั้นก็จะได้สีดำ เพราะไม่มีแสงอะไรเลย ในทางกลับกันการให้ความเข้มแม่สีทุกตัวเป็น 255 นั้นก็จะได้สีขาวเพราะทุกตัวเปิดสว่างเท่ากันและสว่างที่สุดนั่นเอง ส่วนรูปที่ 3 จะแสดงสีของการผสมแม่สีแดงความเข้ม 213 กับแม่สีเขียวความเข้ม 111 กับแม่สีฟ้าความเข้ม 56 เข้าได้ด้วยกัน ได้เป็นสีออกน้ำตาลส้ม ตามที่แสดงในรูปที่ 3

การผสมความเข้มของแสงของแม่สี R, G, B เข้าด้วยกัน โดยใช้เครื่องมือผสมสีด้วย Slider ที่มักมีอยู่บนเครื่องมือสร้างงานศิลปะทั่วไป (ที่มา: en.wikipedia.org/wiki/RGB_color_model)
รูปที่ 3 การผสมความเข้มของแสงของแม่สี R, G, B เข้าด้วยกัน โดยใช้เครื่องมือผสมสีด้วย Slider ที่มักมีอยู่บนเครื่องมือสร้างงานศิลปะทั่วไป (ที่มา: en.wikipedia.org/wiki/RGB_color_model)

ในการแสดงภาพ หนึ่งภาพบนหน้าจอคอมพิวเตอร์นั้น เราสามารถทำได้โดยการแบ่งภาพนั้น ออกเป็น Pixel ย่อยๆ เหมือนกับที่เราเห็น ในการแปรอักษรบนอัฒจรรย์ในการเชียร์กีฬานั่นเอง Pixel แต่ละตัวก็จะมีตำแหน่งของมัน เพื่อให้การกำหนดค่าเป็นไปอย่างมีระบบ ซึ่งถ้ารูปที่เราต้องการจะแสดงเป็นภาพดิจิตอล เช่น ภาพจากการถ่ายด้วยกล้องถ่ายรูปดิจิตอล ภาพต่างๆเหล่านี้ก็จะมีค่าสีของแต่ละ Pixel อยู่แล้ว ซึ่งเราก็สามารถนำภาพเหล่านี้มาตบแต่งเพิ่มเติม ก็คือการเปลี่ยนค่า R, G, B ของแต่ละ Pixel ให้เหมาะสมนั่นเอง เครื่องมือในปัจจุบันก็ยังมีการช่วยให้การแต่งภาพง่ายขึ้นด้วยการใช้ Filter ในการแต่งสี โดยใช้ หลักการ Image Processing ให้ภาพออกมาตามรูปแบบที่ต้องการได้ ซึ่งการใช้ Filter ก็คือ การนำเอาคณิตศาสตร์มาช่วยในการทำให้ค่าสีของแต่ละ Pixel ปรับเปลี่ยนไปในทิศทางที่ต้องการ ตัวอย่างเช่น การทำให้ภาพนั้นดูมัวขึ้นอย่างง่ายๆ ก็ทำได้โดยการ นำเอาค่า R,G,B จาก Pixel ใกล้เคียงโดยรอบ (เช่น จากข้างบน ข้างซ้าย ข้างขวา ข้างล่าง และในทิศเฉียงต่างๆ) มารวมกับ R,G,B ของตัวเอง แล้วหาค่าเฉลี่ย (หารด้วยด้วยจำนวน Pixel ที่ใช้) ทำแบบนี้ทีละ Pixel ภาพทั้งหมดก็จะมัวขึ้น เหมือนตัวอย่างในรูปที่ 4

การทำภาพให้มัว โดยการหาค่าเฉลี่ยจาก Pixel ใกล้เคียง ซ้าย: ภาพต้นฉบับ ขวา: รูปที่ผ่านการทำให้มัว โดยในตัวอย่างนี้ใช้ Pixel ข้างเคียงจำนวน 20 Pixels
รูปที่ 4 การทำภาพให้มัว โดยการหาค่าเฉลี่ยจาก Pixel ใกล้เคียง ซ้าย: ภาพต้นฉบับ ขวา: รูปที่ผ่านการทำให้มัว โดยในตัวอย่างนี้ใช้ Pixel ข้างเคียงจำนวน 20 Pixels

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

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