430 likes | 1.38k Views
คอมพิวเตอร์กราฟิกส์ใช้ OpenGL (Computer Graphics using OpenGL). บทที่ 1 พื้นฐานคอมพิวเตอร์กราฟิกส์ (Fundamental of Computer Graphics). คอมพิวเตอร์กราฟิกส์ (Computer Graphics) ได้ขยายขอบเขตมาสู่การสร้างสรรค์งานด้านศิลปะ และการออกแบบมากขึ้น
E N D
คอมพิวเตอร์กราฟิกส์ใช้ OpenGL(Computer Graphics using OpenGL)
บทที่ 1พื้นฐานคอมพิวเตอร์กราฟิกส์(Fundamental of Computer Graphics)
คอมพิวเตอร์กราฟิกส์ (Computer Graphics) ได้ขยายขอบเขตมาสู่การสร้างสรรค์งานด้านศิลปะ และการออกแบบมากขึ้น ซอฟต์แวร์คอมพิวเตอร์กราฟิกได้รวมความพร้อมของอุปกรณ์กราฟิก หลาย ด้านเข้าไว้อย่างครบครันด้วยการจัดวางอย่างเป็นระบบ ความก้าวหน้าอย่างต่อเนื่องของคอมพิวเตอร์กราฟิกส์ก็มิได้เกิดจาก ความสำเร็จของการพัฒนาโปรเซสเซอร์ (processor) มีการพัฒนาอุปกรณ์ต่อพ่วง (Peripheral) ที่เอื้อต่อการทำงานและสนองการรับรู้ของมนุษย์มากยิ่งขึ้น มีการนำคอมพิวเตอร์มาใช้เป็นเครื่องมือสำคัญในการสร้างสรรค์งานของนักออกแบบ และศิลปิน พื้นฐานคอมพิวเตอร์กราฟิกส์
เรขภาพคอมพิวเตอร์ หรือ คอมพิวเตอร์กราฟิกส์ (Computer Graphics) หรือ ซีจี (CG) คือ การประมวลผลข้อมูลด้วยคอมพิวเตอร์โดยข้อมูลเข้าเป็นข้อมูลตัวเลข ตัวอักษร หรือสัญญาณต่าง ๆ แล้วแสดงผลลัพธ์ทางจอภาพเป็นข้อมูลเชิงเรขาคณิต รวมถึงข้อมูลอื่น ๆ ของภาพ เช่น ข้อมูลการเคลื่อนไหว การเปลี่ยนแปลง ลักษณะการเชื่อมต่อ และความสัมพันธ์ระหว่างออปเจ็กต์ในภาพ รวมถึงการศึกษาระบบการแสดงภาพ ทั้งสถาปัตยกรรมของเครื่องคอมพิวเตอร์ อุปกรณ์ต่อพ่วง หรืออุปกรณ์ในการนำเข้า และแสดงผล ปัจจุบันมีการประยุกต์คอมพิวเตอร์กราฟิกใช้งานร่วมกับเทคโนโลยีอื่น ๆ เช่น การสร้างภาพเคลื่อนไหวในงานภาพยนตร์ เกม สื่อประสมภาพและเสียง หรือระบบสร้างภาพความจริงเสมือน (Virtual Reality) เป็นต้น ความหมายคอมพิวเตอร์กราฟิกส์
ปี ค.ศ. 1940 คอมพิวเตอร์แสดงภาพกราฟิกโดยใช้เครื่องพิมพ์ โดยรูปภาพที่ได้จะเป็นภาพที่เกิดจากการใช้ตัวอักษรมาประกอบกัน ปี ค.ศ. 1950 สถาบันเทคโนโลยีแห่งแมสซาซูเซสต์ (MIT) ได้พัฒนาคอมพิวเตอร์ Whirlwind ซึ่งมีหลอดภาพ CRT (Cathode Ray Tube) เป็นส่วนแสดงผลแทนเครื่องพิมพ์ ระบบ SAGE (Semi - Automatic Ground Environment) ของกองทัพอากาศสหรัฐอเมริกาสามารถแปลงสัญญาณจากเรดาร์ให้เป็นภาพบน จอคอมพิวเตอร์ได้ ระบบ SAGE เป็นระบบกราฟิกเครื่องแรกที่ใช้ปากกาแสง (Light Pen) สำหรับการเลือกสัญลักษณ์บนจอภาพได้ ประวัติคอมพิวเตอร์กราฟิกส์
ปี ค.ศ. 1950 - 1960 มีการทำวิจัยเรื่องเกี่ยวกับระบบคอมพิวเตอร์เป็นจำนวนมาก ซึ่งต่อมาได้กลายเป็นต้นแบบของระบบคอมพิวเตอร์กราฟิกสมัยใหม่ ปี ค.ศ. 1963 วิทยานิพนธ์ปริญญาเอกของ อีวาน ซูเธอร์แลนด์ (Ivan Sutherland) เป็นการพัฒนาระบบการวาดเส้น ซึ่งผู้ใช้สามารถกำหนดจุดบนจอภาพได้โดยตรงโดยการใช้ปากกาแสง ระบบกราฟิกจะสามารถลากเส้นเชื่อมจุดต่าง ๆ เหล่านี้เข้าด้วยกัน กลายเป็นภาพโครงสร้างรูปหลายเหลี่ยม ระบบนี้ได้กลายเป็นหลักการพื้นฐานของโปรแกรมช่วยในการออกแบบระบบงานต่าง ๆ เช่น การออกแบบระบบไฟฟ้า และการออกแบบเครื่องจักร ประวัติคอมพิวเตอร์กราฟิกส์
ระบบหลอดภาพ CRT ในสมัยแรกสามารถวาดเส้นตรงระหว่างจุดสองจุดบนจอภาพได้ แต่ภาพเส้นที่วาดจะจางหายไปจากจอภาพอย่างรวดเร็ว ต้องมีการวาดซ้ำลงที่เดิมหลาย ๆ ครั้งในหนึ่งวินาที เพื่อให้เราสามารถ มองเห็นว่าเส้นไม่จางหายไป ซึ่งระบบแบบนี้มีราคาแพงมาก ในช่วงต้นปี ค.ศ. 1960 ในปี 1963 อีวาน ซูเธอร์แลนด์ได้ออกแบบ Sketchpad ซึ่งเป็นระบบอินเทอร์แอ็กทีฟกราฟิกเพื่อสร้างภาพทางกราฟิกได้ Sketchpad นี้ใช้จอ CRT, ปากกาแสง และแผ่นฟังก์ชันคีย์ในการสร้างงานกราฟิก สามารถซูมได้ เก็บออปเจ็กต์ลงในหน่วยความจำได้ ประวัติคอมพิวเตอร์กราฟิกส์
Sketchpad ของอีวาน ซูเธอร์แลนด์
ปี ค.ศ. 1965 ระบบที่วาดเส้นซ้ำลงที่เดิมหลาย ๆ ครั้งนี้มีราคาถูกลงเนื่องจากบริษัท ไอบีเอ็ม (IBM) ได้ผลิตออกมาขายเป็นจำนวนมากในราคาเครื่องละ 100,000 เหรียญสหรัฐฯ ปี ค.ศ. 1968 บริษัท เทคโทรนิกส์ (Tektronix) ได้ผลิตจอภาพแบบเก็บภาพไว้ได้จนกว่าต้องการจะลบ (Storage - Tube CRT) ซึ่งระบบนี้ไม่ต้องการหน่วยความจำและระบบการวาดซ้ำ ทำให้ราคาถูกลงมาก (เพียง 15,000 เหรียญสหรัฐฯ) ทำให้เป็นที่นิยมกันมากใน 5 ปีต่อมา กลางปี ค.ศ. 1970 เป็นช่วงเวลาที่อุปกรณ์ทางคอมพิวเตอร์เริ่มมีราคาลดลงมาก ทำให้ฮาร์ดแวร์ของระบบคอมพิวเตอร์กราฟิกมีราคาถูกลง ทำให้มีการใช้คอมพิวเตอร์กราฟิกเริ่มในงานด้านต่าง ๆ มากขึ้น ประวัติคอมพิวเตอร์กราฟิกส์
ซอฟต์แวร์ทางด้านกราฟิกมีการพัฒนาควบคู่มากับฮาร์ดแวร์ซอฟต์แวร์ทางด้านกราฟิกมีการพัฒนาควบคู่มากับฮาร์ดแวร์ อีวาน ซูเธอร์แลนด์ ผู้ซึ่งได้ออกแบบวิธีการหลัก ๆ รวมทั้งโครงสร้างข้อมูลของระบบคอมพิวเตอร์กราฟิก สตีเฟน คูน (Steven Coons, 1966) และปิแอร์ เบเซอร์ (Pierre Bazier, 1972) ซึ่งศึกษาเกี่ยวกับการสร้างเส้นโค้งและภาพพื้นผิว ทำให้ปัจจุบันเราสามารถสร้างภาพ 3 มิติ ได้สมจริงสมจังมากขึ้น 10 ปีต่อมาได้มีการพัฒนาวิธีการสร้างภาพมากมายสำหรับใช้ในระบบคอมพิวเตอร์กราฟิก และปัจจุบันเราก็ได้เห็นผลงานที่สวยงามและแปลกตา ซึ่งเป็นผลจากการศึกษาวิจัยต่าง ๆ ในอดีตนั่นเอง ประวัติคอมพิวเตอร์กราฟิกส์
คอมพิวเตอร์กราฟิกส์ได้ถูกพัฒนามาอย่างต่อเนื่อง สามารถแยกประวัติความเป็นมาได้ดังนี้ การปฎิวัติคอมพิวเตอร์กราฟิกส์ เป็นการเปลี่ยนแปลงทางเทคโนโลยีซึ่งเปลี่ยนแปลงความเป็นอยู่ของมนุษย์โดยสิ้นเชิง มีการพัฒนา ENIAC เป็นเครื่องจักรคำนวณหาความแม่นยำในการหาเป้าหมายหัวกระสุนปืนใหญ่ พัฒนาเป็น EDVAC และเป็น UNIVAC การวิจัยพัฒนาคอมพิวเตอร์กราฟิก เริ่มมีการพัฒนาระบบต่างๆ ของคอมพิวเตอร์ช่วยในการตรวจจับและเตือนภัยทางอากาศ ที่เด่นคือ ระบบ SAGE กลายเป็น GUI ทำให้นิยมใช้คอมพิวเตอร์ช่วยการออกแบบ (CAD) มีการพัฒนาส่วนต่อประสานกราฟิกกับผู้ใช้ เกิดสิ่งที่เรียกว่า WYSIWYG นำไปสู่การใช้ เมาส์ ปากกาแสง เป็นต้น ประวัติคอมพิวเตอร์กราฟิกส์
กราฟิกแบบบิตแมพ (Bit mapped) มีลักษณะเป็นช่อง ๆ เหมือนตาราง แต่ละบิตก็คือส่วนหนึ่งของข้อมูลคอมพิวเตอร์ (1 คือเปิด และ 0 คือปิด) หรือหมายถึงสีดำและสีขาว ดังนั้น ถ้าเราเอาบิตที่แตกต่างกันในแต่ละตารางมารวมกันเข้า จะสามารถสร้างภาพจากจุดดำและขาวเหล่านี้ได้ พิกเซล มาจากคำว่า Picture Element (Pixel) เป็นองค์ประกอบพื้นฐานของภาพบิตแมพ ซึ่งองค์ประกอบย่อย ๆ เหล่านี้ถูกรวมกันเข้าทำให้เกิดภาพ ที่มีส่วนประกอบย่อย ๆ มารวมกันเพื่อประกอบเป็นรายการสิ่งของต่าง ๆ อัตราส่วนแอสเป็กของภาพ (Image Aspect Ratio) คือ อัตราส่วนระหว่างจำนวนพิกเซลทางแนวนอน และจำนวนพิกเซลทางแนวตั้ง ประเภทภาพกราฟิก
ความละเอียด (Resolution) หมายถึง รายละเอียดที่อุปกรณ์แสดงกราฟิกชนิดหนึ่งมีอยู่ ค่าความละเอียดมักระบุเป็นจำนวนพิกเซลในแนวนอนคือแนวแกน X และจำนวนพิกเซลในแนวตั้งคือแนวแกน Y (ก) กราฟิกของฟอนต์แบบบิตแมพ (ข) กราฟิกแบบเวกเตอร์ ประเภทภาพกราฟิก
กราฟิกแบบเวกเตอร์ (Vector) ใช้สมการทางคณิตศาสตร์เป็นตัวสร้างภาพ เช่น วงกลม หรือเส้นตรง เป็นต้น หลักที่จะนำไปสู่กราฟิกแบบเวกเตอร์ก็คือ การรวมเอาคำสั่งทางคอมพิวเตอร์และสูตรทางคณิตศาสตร์เพื่ออธิบายเกี่ยวกับออปเจ็กต์ ปล่อยให้อุปกรณ์คอมพิวเตอร์ เช่น จอภาพ หรือเครื่องพิมพ์เป็นตัวกำหนดเองว่าจะวางจุดจริง ๆ ไว้ที่ตำแหน่งใดในการสร้างภาพ คุณลักษณะเด่นเหล่านี้ทำให้กราฟิกแบบเวกเตอร์มีข้อได้เปรียบ และข้อเสียเปรียบมากมายเมื่อเทียบกับกราฟิกแบบบิตแมพ ออปเจ็กต์ (Object) พื้นฐานสามารถนำมาสร้างออปเจ็กต์ที่ซับซ้อนขึ้น โดยการรวมเอาออปเจ็กต์หลาย ๆ ชนิดมาผสมกัน ประเภทภาพกราฟิก
การแสดงภาพกราฟิกบนจอภาพ กราฟิกแบบบิตแมพสามารถแสดงให้เห็นที่จอภาพได้เร็วกว่าแบบเวกเตอร์ การเปลี่ยนแปลงขนาดภาพให้ใหญ่ขึ้นหรือเล็กลงกว่าภาพเดิม กรณีภาพแบบบิตแมพจะทำได้ไม่มาก แต่ภาพแบบเวกเตอร์จะสามารถย่อและขยายขนาดได้มากกว่า โดยสัดส่วนและลักษณะของภาพยังคล้ายเดิม เปรียบเทียบกราฟิกแบบบิตแมพและเวกเตอร์
มาตรฐานซอฟต์แวร์ทางกราฟิกมาตรฐานซอฟต์แวร์ทางกราฟิก ปี ค.ศ. 1979 คณะกรรมการวางแผนมาตรฐานซอฟต์แวร์ทางกราฟิก (GSPC : Graphic Standard Planning Committee) ได้พยายามบริหารจัดการให้เกิดมาตรฐานของซอฟต์แวร์ทางกราฟิกขึ้นในสหรัฐอเมริกา ใช้ระบบ CORE (Core Graphic System) ซึ่งเป็นมาตรฐานสำหรับระบบการแสดงภาพ 3 มิติ ในเวลาใกล้เคียงกันนั้นเอง สถาบันกำหนดมาตรฐานของประเทศเยอรมัน (DIN : West German National Standard) ก็ได้พัฒนามาตรฐานกราฟิกของตัวเองขึ้นมา โดยมีชื่อเรียกว่า GKS (Graphic Kernel System) ซอฟต์แวร์ทางกราฟิก
GKS เป็นมาตรฐานสำหรับระบบการแสดงภาพ 2 มิติ ที่สนับสนุนฮาร์ดแวร์ที่หลากหลาย และมีภาษาคอมพิวเตอร์หลายภาษาที่สามารถเรียกใช้ GKS ได้ เช่น ภาษาปาสคาล ภาษาฟอร์แทรน และภาษาซี เป็นต้น แต่ GKS ยังขาดส่วนที่เป็น 3 มิติ ปี ค.ศ. 1982 ระบบ GKS ซึ่งถูกใช้เป็นมาตรฐานนานาชาติของระบบกราฟิก ทำให้สมาคมกราฟิกนานาชาติ (International Graphics Community) พยายามรวบรวมมาตรฐาน CORE กับ GKS เข้าเป็นมาตรฐานเดียวกัน แต่ไม่สำเร็จเนื่องจากมีการเมืองเข้ามาเกี่ยวข้อง มีการพัฒนาต่อยอด GKS ให้มีคุณสมบัติทางด้าน 3 มิติ ซึ่งเรียกว่า GKS-3D โดยเพิ่มเติมความสามารถด้านคอมพิวเตอร์กราฟิก 3 มิติ ซอฟต์แวร์ทางกราฟิก
มีการพัฒนามาตรฐานใหม่ให้เลือกใช้งานอีกด้วย มาตรฐาน PHIGS (Programmer's Hierarchical Interface Graphics Standard) เป็นระบบ ที่พัฒนาโดยยึดพื้นฐานของคอมพิวเตอร์กราฟิก 3 มิติ ซอฟต์แวร์ที่ใช้มาตรฐานนี้สนับสนุนการพัฒนาสภาพแวดล้อมทางกราฟิกแบบมีปฏิสัมพันธ์ หรือมีการโต้ตอบกับผู้ใช้ (Interactive Graphics Environment) เช่น CAD/CAM การสร้างโมเดลของแข็ง (Solid Model) หรือการสร้างภาพจำลอง (Simulation) เป็นต้น มาตรฐาน PHIGS ยังมีการพัฒนาโดยเพิ่มเติมความสามารถด้านต่าง ๆ เช่น เส้นโค้ง การให้แสง (Lighting) การให้เงา (Shading) หรือการสร้างพื้นผิว (Surface) ซอฟต์แวร์ทางกราฟิก
มาตรฐาน PHIGS ยังได้มีการแตกแขนงมาอีกมาตรฐานหนึ่งที่ชื่อว่า PHIGS+ ซึ่งความสามารถยังคงแตกต่างจากมาตรฐาน GKS และ GKS-3Dอยู่พอสมควร ส่วนพัฒนากราฟิกของบริษัท Silicon Graphicsเริ่มมีชื่อเสียง ส่วนการพัฒนานี้ได้ออกแบบและนำเสนอชุดของรูทีนที่ชื่อว่า GL (Graphics Library) ต่อมาไม่นาน GLกลายเป็นที่นิยมอย่างแพร่หลายในสังคมของกราฟิก ทำให้กลายเป็นมาตรฐานทางกราฟิก รูทีนของ GLถูกออกแบบมาให้ทำงานเร็ว มีการทำงานเป็นแบบเรียลไทม์ ซอฟต์แวร์ทางกราฟิก
ต่อมาได้มีการขยายการใช้งานออกไปยังระบบฮาร์ดแวร์อื่น มีผลทำให้ GL มีสภาพเป็น OpenGL (Open Graphics Library) เนื่องจากมีการพัฒนาให้เป็นอิสระในการทำงานร่วมกับฮาร์ดแวร์ (hardware-independent) ปัจจุบันกราฟิกแพ็กเกจนี้อยู่ในความดูแลและอัปเดทของ OpenGL Architecture Review Board ซึ่งเป็นของกลุ่มบริษัทและองค์กรที่มีชื่อเสียงทางด้านกราฟิกหลายบริษัท ไลบรารีของ OpenGL ถูกออกแบบพิเศษสำหรับแอปพลิเคชันเพื่อทำงานด้านกราฟิก 3 มิติอย่างมีประสิทธิภาพ แต่ก็สามารถใชกับงาน 2 มิติซึ่งเป็นกรณีพิเศษของ 3 มิติที่ค่าโคออร์ดิเนต z เป็น 0 ซอฟต์แวร์ทางกราฟิก
ประเภทของซอฟต์แวร์ทางกราฟิกประเภทของซอฟต์แวร์ทางกราฟิก โปรแกรมสำเร็จรูป(Package)สร้างขึ้นโดยผู้เชี่ยวชาญทางด้านคอมพิวเตอร์กราฟิก เพื่อให้ผู้ใช้โปรแกรมสามารถใช้คอมพิวเตอร์ดำเนินการเกี่ยวกับภาพได้อย่างสะดวกรวดเร็ว โปรแกรมที่ผู้ใช้เขียนขึ้นเอง เป็นโปรแกรมที่เขียนขึ้นด้วยภาษาคอมพิวเตอร์ เช่น เบสิก ฟอร์แทรน ปาสคาล และอื่น ๆ โดยเขียนด้วยคำและหลักการของภาษานั้น เพื่อให้คอมพิวเตอร์ดำเนินการเกี่ยวกับกราฟิกตามที่เราต้องการ ซอฟต์แวร์ทางกราฟิก
โปรแกรมสำเร็จรูปทางกราฟิก Photoshop CS และ DesignCAD 3D MAX
ข้อพิจารณาการเลือกซอฟต์แวร์ทางกราฟิกข้อพิจารณาการเลือกซอฟต์แวร์ทางกราฟิก โปรแกรมสำเร็จรูปสามารถใช้งานได้ทันที เสียเวลาศึกษาวิธีการใช้โปรแกรมเพียงเล็กน้อยเท่านั้น จึงเหมาะกับงานเร่งด่วน และใช้ในการศึกษาของผู้เริ่มต้น โปรแกรมสำเร็จรูปแต่ละโปรแกรม มีจุดมุ่งหมายของการใช้งานแตกต่างกัน โปรแกรมสำเร็จรูปเพียงโปรแกรมเดียว ไม่สามารถทำงานให้ตรงกับความต้องการของเราได้ครบถ้วน ในระยะยาว การใช้โปรแกรมสำเร็จรูปทำให้สิ้นเปลืองมากกว่า เนื่องจากจะต้องหาซื้อโปรแกรมรุ่นใหม่มาใช้แทนโปรแกรมรุ่นเก่าอยู่เสมอ การเขียนโปรแกรมขึ้นใช้เอง ทำให้เราเกิดความเข้าใจเกี่ยวกับฮาร์ดแวร์ และซอฟต์แวร์ของคอมพิวเตอร์ ที่ใช้งานด้านกราฟิกได้ดีขึ้น ซอฟต์แวร์ทางกราฟิก
แสดงผลงานด้วยภาพแทนการแสดงด้วยข้อความแสดงผลงานด้วยภาพแทนการแสดงด้วยข้อความ แสดงแผนที่ แผนผัง และภาพของสิ่งต่าง ๆ ซึ่งภาพเหล่านี้ไม่สามารถแสดงในลักษณะอื่นได้ ใช้ในการออกแบทางด้านต่าง ๆ เช่น ออกแบบบ้าน รถยนต์ เครื่องจักร เครื่องแต่งกาย การแต่งหน้า และเครื่องมือเครื่องใช้อื่น ๆ ช่วยงานด้านเรียนการสอน โดยเฉพาะในวิชาที่ต้องใช้ภาพ แผนผัง หรือแผนที่ประกอบ ใช้ในการจำลองสถานการณ์ (Simulation) เพื่อหาคำตอบว่า ถ้าสถานการณ์เป็นอย่างนี้แล้วจะเกิดอะไรขึ้น นำมาสร้างภาพนิ่ง ภาพสไลด์ ภาพยนตร์ และรายการวิดีโอ ใช้คอมพิวเตอร์กราฟิกส์สร้างเกมส์คอมพิวเตอร์ ประโยชน์ของคอมพิวเตอร์กราฟิกส์
การออกแบบ (CAD : Computer - Aided Design ) การประยุกต์ใช้คอมพิวเตอร์กราฟิกส์
กราฟและแผนภาพ (Graph) การประยุกต์ใช้คอมพิวเตอร์กราฟิกส์
ภาพศิลป์ (Art) การประยุกต์ใช้คอมพิวเตอร์กราฟิกส์
สื่อการเรียนการสอน (CAI : Computer Assisted Instruction) การประยุกต์ใช้คอมพิวเตอร์กราฟิกส์
ภาพเคลื่อนไหว (Animation) การประยุกต์ใช้คอมพิวเตอร์กราฟิกส์
อิเมจโปรเซสซิงก์ (Image Processing) เป็นการแสดงภาพที่เกิดจากการถ่ายรูปหรือจากการสแกนภาพให้ปรากฏบนจอภาพคอมพิวเตอร์ การประยุกต์ใช้คอมพิวเตอร์กราฟิกส์
การจำลองสถานการณ์ (Simulation) การประยุกต์ใช้คอมพิวเตอร์กราฟิกส์
เกมส์คอมพิวเตอร์ (Games) การประยุกต์ใช้คอมพิวเตอร์กราฟิกส์
ภาพยนตร์ (Movie) การประยุกต์ใช้คอมพิวเตอร์กราฟิกส์
ระบบสื่อประสม (Multimedia) อนาคตคอมพิวเตอร์กราฟิกส์
ระบบเสมือนจริง (VR : Virtual Reality) อนาคตคอมพิวเตอร์กราฟิกส์