Contenu connexe Similaire à โครงงานพัฒนาเครื่องมือ 5 Similaire à โครงงานพัฒนาเครื่องมือ 5 (20) Plus de Aungkana Na Na (20) โครงงานพัฒนาเครื่องมือ 51. โครงงานพัฒนาเครืองมือ(Tools Development)
เป็ น โครงงานเพือพัฒนาเรื องมือมาใช้ช่วยสร้างงานประยุกต์ต่าง ๆ ซึงโดยส่ วนใหญ่จะ
เป็ นในรู ปซอฟต์แวร์ ตัวอย่างของเครื องมือช่วยงาน เช่น ซอฟต์แวร์วาดรู ป ซอฟต์แวร์พิมพ์งาน
ซอฟต์แวร์ช่วยการมองวัตถุในมุมต่าง ๆ เป็ นต้น สําหรับซอฟต์แวร์เพือการพิมพ์งานนั-นสร้างขึ-น
เป็ นโปรแกรมประมวลผลภาษา ซึงจะเป็ นเครื องมือให้เราใช้งานในงานพิมพ์ต่าง ๆ บนเครื อง
คอมพิวเตอร์เป็ นไปได้โดยง่าย ซึงรู ปทีได้สามารถนําไปใช้งานต่าง ๆ ได้มากมาย สําหรับ
ซอฟต์แวร์ช่วยในการมองวัตถุในมุมต่าง ๆ ใช้สาหรับช่วยในการออกแบบสิ งของต่าง ๆ
ํ
ตัวอย่างเช่น
1.โปรแกรมการค้นหาคําภาษาไทย
2. โปรแกรมอ่านอักษรไทย
3. โปรแกรมวาดภาพสามมิติ
4. โปรแกรมบีบอัดข้อมูล
5. โปรแกรมประมวลผลคําไทยบนระบบปฏิบติการลีนุกซ์
ั
2. โปรแกรมสร้ างโมเดลสามมิติจากการวาดอย่ างง่ าย (CPS’ketchuu)
บทคัดย่อ
โครงการนี-มีจุดประสงค์เพือสร้างโปรแกรมสร้างโมเดลสามมิติทีมีส่วนอินเตอร์ เฟสตั-งอยูบน ่
่
พื-นฐานของการวาด ซึ งถูกพัฒนาขึ-นมาเพือลดความยุงยากในสร้างโมเดลสามมิติดวยอินเตอร์ เฟสแบบ
้
ดับบลิวไอเอ็มพีซึงเป็ นวิธีแบบดั-งเดิม เนืองจากผูใช้งานส่ วนมากจะคุนเคยกับวิธีการวาดภาพซึ งเป็ นพื-นฐาน
้ ้
่
ของการทํางานทางด้านศิลปะอยูแล้ว ผูใช้โปรแกรมจะวาดเส้นแบบ 2 มิติดวยอุปกรณ์ประเภท mouse หรื อ
้ ้
Graphic Tablet จากนั-นโปรแกรมจะสร้างโมเดลสามมิติข- ึนตามเส้น ซึ งวิธีการสร้างโมเดลสามมิติจะ
สามารถแบ่งออกเป็ น 2แบบตามลักษณะของโมเดลทีจะเกิดขึ-น คือ 1.สร้างโมเดลแบบฟรี ฟอร์ มทีตัวโมเดลที
เกิดขึ-นจะมีความหนาหรื อบางของแต่ละส่ วนแต่งต่างกันไป โดยจะคํานวณจากความกว้างและแคบของพื-นที
โดยพื-นทีทีกว้างจะทําให้โมเดลส่ วนนั-นหนา และ พื-นทีทีแคบจะทําให้โมเดลตรงส่ วนนั-นบาง และ 2. สร้าง
โมเดลแบบโซลิดทีตัวโมเดลสามมิติจะมีความโค้งมนของตัวโมเดลน้อยและมีความเหมาะสมกับงาน
ทางด้านสถาปั ตยกรรมหรื อวิศวกรรมมากกว่าโมเดลแบบฟรี ฟอร์ ม โครงการนี-ถูกพัฒนาขึ-นมาด้วยภาษาจา
ว่าเพือให้สามารถทํางานได้บนหลายระบบปฎิบติการและให้สามารถทา งานได้แบบทันท่วงนี- (Real-
ั
time)บนคอมพิวเตอร์ ส่วนบุคคลทัวไป
Abstract
This project is to provide a sketching interface 3D modeling program which reduce the difficulty in
tradition WIMP 3D modeling style. The user draws several 2D strokes interactively on the screen using
whether mouse or graphic tablet and the system will generate a 3D model according to the silhouette
drawn by user. The model generating style can be categorized in 2 type: freeform modeling and solid
modeling . The freeform modeling will generate model based on the wideness of each region of silhouette
making wide areas fat, and narrow area thin. The solid modeling will generate the non smooth model
which is more suitable for the engineering and architect work. This project is implemented by Java
language in order to, and mes construction is done in real time on standard PC.
ทีมาและความสําคัญของปั ญหา
การสร้างโมเดลสามมิติในปั จจุบนได้เข้ามามีบทบาทเป็ นอย่างมากต่อการทํางานในด้านต่างๆ เช่น การ
ั
ออกแบบผลิตภัณฑ์หรื อสิ นค้า การออกแบบอาคาร การผลิตภาพยนตร์ หรื อการ์ ตูนแอนิ เมชัน ทําให้
โปรแกรมและวิธีการสร้างโมเดลสามมิติได้รับการพัฒนาไปอย่างมาก แม้กระนั-นงานในด้านนี-กลับเป็ นงาน
ทียากและต้องอาศัยเวลา เนืองจากความสลับซับซ้อนของ อินเตอร์ เฟสของโปรแกรมสร้างโมเดลจําลองแบบ
สามมิติในปั จจุบนทีเป็ นแบบดับบลิวไอเอ็มพี [8] (WIMP: Window, Icon, Menu, Pointer) ซึ งผูใช้จะต้อง
ั ้
่ ่
ทํางานผ่านคําสังทียุงยากจํานวนมากเพือให้ได้โมเดลสามมิติตามทีต้องการ และถึงแม้วาอินเตอร์ เฟสแบบนี-
3. จะรองรับการทํางานสร้างโมเดลทุกรู ปแบบแต่ผใช้ทีมีประสบการณ์นอยจา เป็ นต้องใช้เวลาและความ
ู้ ้
พยายามสู ง แม้แต่ในการสร้างโมเดลสามมิติทีมีรายละเอียดไม่มากนักขึ-นมาชิ-นหนึง
จากการสร้างโมเดลในปั จจุบนทียาก ทําให้มีการคิดค้นการขึ-นโมเดลสามมิติจากการสเกตช์ข- ึนซึ งทําได้
ั
ง่ายเนืองจากมนุษย์ถนัดกับการใช้มือวาดเขียน ทําให้สามารถสร้างโมเดลสามมิติได้เร็ วขึ-น การสเกตช์คือ
ภาษาหนึงทีใช้ในการสื อสาร ใช้ในการจดบันทึกหรื อออกแบบสิ งทีวาดไว้ในจินตนาการของมนุษย์
ปั จจุบนได้มีการสร้างโปรแกรมสร้างโมเดลสามมิติทีทา ตามแนวคิดการสเกตช์หรื อโปรแกรมแบบแบบ
ั
เอสไอบีเอม(Sketch-based interface for modeling หรื อ SBIM) เช่น Google Sketchup ทีมีลกษณะการสร้าง
ั
แบบโซลิด (SOLID) ซึ งสามารถใช้ได้โดยการร่ างภาพทีเป็ นรู ปหน้าตัดของโมเดลสามมิติทีต้องการและจึง
ยืดหน้าตัดออกมาเป็ นโมเดลสามมิติ แต่มีขอเสี ย คือโปรแกรมไม่สามารถสร้างโมเดลสามมิติทีเป็ นลักษณะ
้
โค้งนูนได้หรื อทําได้ยาก และโปรแกรมไม่สนับสนุนการทําโมเดล 3 มิติแบบฟรี ฟอร์ ม(Freeform) Teddy
[1] เป็ นโปรแกรมสร้างโมเดล 3 มิติ แบบเอสบีไอเอ็มทีมีลกษณะสนับสนุนการสร้างโมเดลแบบฟรี ฟอร์ มซึ ง
ั
สามารถสร้างโมเดลทีมีลกษณะเป็ นทรงสมมาตรได้ง่าย ต่างจากงานแบบโซลิดทีจําเป็ นต้องสร้างโมเดลจาก
ั
เส้นตายตัว (fixed line) และรู ปร่ างทีกําหนด (Fixed Shape)ทําให้เกิดปั ญหาการสร้างโมเดลทีต้องการเหลียม
มุมหรื อต้องการขนาดทีสามารถวัดได้ทาให้ Teddy ไม่เหมาะ สําหรับงานทีต้องการอัตราส่ วนทีถูกต้องหรื อ
ํ
ขนาดทีชัดเจน
จากข้อจํากัดของโปรแกรมดังทีกล่าวมา โครงงาน CPS’ketchuu จึงได้ถูกออกแบบมาเพือให้เป็ น
่
โปรแกรมแบบ เอสบีไอเอมทีเพิมความยืดหยุนในการทา งานมากขึ-นและรวมข้อดีของทั-งสองโปรแกรมที
ได้กล่าวข้างต้นเข้าไว้ดวยกัน คือ โปรแกรมสามารถทํางานได้ท- งการสร้างโมเดล 3 มิติแบบฟรี ฟอร์ มที
้ ั
สามารถปรับความระดับความนูนและโค้งงอได้และสร้างโมเดล 3 มิติแบบโซลิดได้ CPS’ketchuu จึงเป็ น
โปรแกรมสร้างโมเดลสามมิติทีมีส่วนอินเตอร์ เฟสตั-งอยูบนพื-นฐานของการวาดแบบเอสบีไอเอ็ม ซึ งถูก
่
่
พัฒนาขึ-นมาเพือลดความยุงยากในสร้างโมเดลสามมิติดวยอินเตอร์ เฟสแบบดับบลิวไอเอ็มพี ซึ งเป็ นวิธีแบบ
้
ดั-งเดิม เนืองจากผูใช้งานส่ วนมากจะคุนเคยกับวิธีการวาดภาพซึ งเป็ นพื-นฐานของการทํางานทางด้านศิลปะ
้ ้
่
อยูแล้ว โดยการสเกตช์ทีใช้ในโปรแกรมนี-จะเน้นไปทางด้านการสเกตช์ภาพทีออกแบบในความคิดเพือนํามา
สร้างเป็ นโมเดลสามมิติใช้งานต่อไป ในการทํางานในโหมดฟรี ฟอร์ ม ผูใช้โปรแกรมจะวาดเส้นแบบ 2 มิติ
้
ด้วยอุปกรณ์ประเภท mouse หรื อ Graphic Tablet จากนั-นโปรแกรมจะสร้าง 3D polygon surface ขึ-นตาม
เส้น ซึ งความหนาหรื อบางของตัวโมเดล จะคํานวณจากความกว้างและแคบของพื-นทีโดยพื-นทีทีกว้างจะทํา
ให้โมเดลส่ วนนั-นหนา และ พื-นทีทีแคบจะทําให้โมเดล ตรงส่ วนนั-นบาง นอกจากนี-ผใช้งานยังสามารถเลือก
ู้
โหมดโซลิด เพือสนับสนุ นการสร้างโมเดลแบบโซลิด ตัวโปรแกรมถูกสร้างด้วยภาษาจาวา (JAVA) ให้เป็ น
โปรแกรมแบบ open source และสามารถสร้างโมเดล ได้แบบ real-time บนเครื องพีซี(PC) แบบมาตรฐาน
4. วัตถุประสงค์
เพือสร้างโปรแกรมสร้างโมเดลสามมิติทีมีอินเตอร์ เฟสแบบเอสบีไอเอ็ม(SBIM)
รายละเอียดการพัฒนา
เนื-อเรื องตัวอย่างการใช้งานโปรแกรม
1) นายสร้างสรรค์ เป็ นโปรแกรมเมอร์ ตองการพัฒนาเกมเกมหนึง โดยต้องการให้มีตวละครทีเป็ น 3 มิติแต่
้ ั
ว่า นายสร้างสรรค์ไม่มีความรู ้ในการสร้างโมเดล 3 มิติเลย นายสร้างสรรค์จึงได้ใช้CPS’ketchuu และได้
พบว่าเขาสามารถสร้างตัวละครในเกมได้อย่างทีต้องการ ได้ง่ายและรวดเร็ ว
2) นายพุชยิต เป็ นนักวาดการ์ ตูน กําลังต้องการจะทา ให้การ์ ตูนตัวเองเป็ นการ์ ตูน แอนิเมชันแบบ 3 มิติจึงได้
ลองใช้ CPS’ketchuu พบว่าสามารถใช้วธีวาดการ์ ตูนในแบบทีตนเองถนัดในการสร้างโมเดล3มิติของตัว
ิ
ละครในการ์ ตูน ได้ ทําให้งานออกมาได้ตามทีต้องการและออกมาเหมือนตัวละครทีใช้ตอนเป็ นการ์ ตูน 2 มิติ
3) นางสาวณฐพร เป็ นสถาปนิกออกแบบภายใน ต้องการสร้างงาน 3 มิติเพือเสนอลูกค้า โดยภายในแบบที
ต้องการสร้างโมเดล 3 มิติน- นมีวตถุทีมีลกษณะโค้งมนเยอะมากมาย ซึ งโปรแกรมSketch Up เพือสร้างโมเดล
ั ั ั
3 มิติทวไปความสามารถในการสร้างโมเดลทีโค้งมนนั-นน้อย นางสาวณฐพร จึงได้ลองใช้ CPS’ketchuu
ั
พบว่าสามารถสร้างโมเดล 3 มิติทีโค้งมนได้ดี
4) นายตาวัน เป็ นผูใช้คอมพิวเตอร์ ทวไป ต้องการทีจะสร้างโมเดล 3 มิติจากภาพถ่าย ซึ งนายตาวันได้ใช้
้ ั
โปรแกรมทําให้ภาพถ่ายนั-นกลายเป็ นภาพแบบภาพวาด แล้วจึงนา มาเข้ามาใช้ในโปรแกรม CPS’ketchuu
ซึ งพบว่าสามารถลากเส้นตามภาพทีนํามาใช้ แล้วสร้างเป็ นโมเดลได้โดยง่าย
5) นายธนัท เป็ นนักพัฒนาโปรแกรมในบริ ษทสร้างงาน แอนิเมชัน 3 มิติ ได้นา CPS’ketchuuไปใช้พบว่าการ
ั ํ
ทํางานขึ-นโมเดลต่างๆ ทีเป็ นส่ วนย่อย รายละเอียดไม่เยอะนักสร้างได้โดยง่ายทําให้ไม่ตองเสี ยเวลาในส่ วนนี-
้
มาก และเนืองจาก CPS’ketchuu เป็ น Open Source จึงสามารถนํามาปรับปรุ ง ปรับเปลียนให้เหมาะกับงาน
ต่างๆเพิมขึ-นได้
งานวิจยและทฤษฎีทีเกียวข้อง
ั
1. คําศัพท์และความหมาย
- สเกตช์ (Sketch ) หมายถึง การสร้างภาพโดยการวาดด้วยมือเปล่าโดยโดยไม่ใส่ รายละเอียดจนสมบูรณ์
่
แบบ กล่าวได้วาเป็ นการวาดเพียงเพือให้เห็นแนวคิดของภาพเท่านั-น
- SBIM ( Sketch-based interface for modeling ) หมายถึง อินเตอร์ เฟสในการสร้างโมเดล 3 มิติ ทีมีพ-นฐาน
ื
จากการวาดแบบสเกตช์ ผูใช้งานจะใช้วธีการวาดเส้นแบบ 2 มิติลงไปเพือให้โปรแกรมสร้างโมเดล 3 มิติให้
้ ิ
- WIMP ( Window, Icon, Menu ,Pointer) หมายถึง อินเตอร์ เฟสทีผูใช้งานจะต้องทา งานผ่านหน้าต่าง
้
ไอคอน เมนู และตัวชี-เพือให้บรรลุวตถุประสงค์ของการทํางาน
ั
- โมเดลแบบโซลิด(Solid Model) หมายถึง โมเดลสามมิติทีใช้ในงานทางด้านวิศวกรรมหรื องานทางด้าน
สถาปั ตยกรรม
5. - โมเดลแบบฟรี ฟอร์ ม (Freeform Model ) หมายถึง โมเดลสามมิติแบบทีไม่มีรูปร่ างทีตายตัวแน่นอน หรื อ
ไม่ใช่รูปร่ างทางเรขาคณิ ต
วิธีการสร้างโมเดล 3 มิติ แบบฟรี ฟอร์ ม
1) รับข้อมูลจาก เมาส์ หรื อ Graphic Tablet เป็ นเส้นสเกตช์แบบฟรี ฟอร์ ม เข้ามาเป็ นจุดทีลากเชือมต่อกันโดย
การสเกตช์ จากนั-นจึงนา จุดทีได้ไปลดปริ มาณลงโดยใช้อลกอริ ทึมตามงานวิจย [10]
ั ั
2) เชือมรอยต่อให้เป็ นรู ปโพลีกอนแบนเรี ยบแบบปิ ด โดยใช้การลากเส้นจากจุดเริ มต้นเข้าไปหาจุดท้ายสุ ด
3) สร้าง Delaunay triangulation โดยใช้วธีการเชื อมจุดใน space
ิ
4) หาแกนคอดัล (Chordal Axis) ของ Polygon ทุกอันในรู ปปิ ดตามงานวิจย [9] โดยการลากเส้น
ั
เชือมจุดกึงกลางของสามเหลียม Delaunay ทุกอันในรู ปปิ ด เพือให้สามารถแบ่งสามเหลียมออกเป็ น 3 แบบ
คือสามเหลียมแบบ เทอร์ มินล (terminal )สามเหลียมแบบสลีฟ (sleeve) และสามเหลียมแบบจังก์ชน
ั ั
(junction)
5) ขลิบบางส่ วนออกให้ได้สามเหลียมรู ปพัด( Fan triangle) โดยใช้วธีตามงานวิจย [9] โดยใช้
ิ ั
อัลกอริ ทึมแบบพรู นนิง (pruning)โดยสร้างวงกลมขึ-นมาจากเส้นขอบภายใน (internal edge) ของ
สามเหลียมแบบเทอร์ มินล จากนั-นจึงรวมสามเหลียมนี-เข้ากับสาสมเหลียมภายในอันถัดไป และสร้าง
ั
่
วงกลมซ้า ไปเรื อยๆจนกว่าจะมีจุดของสามเหลียมทีอยูนอกวงกลม และจึงสร้างสามเหลียมแบบพัด
่
จากจุดกึงกลางของขอบภายในทีอยูนอกสุ ด
6) สร้างแกนเชื อมระหว่างจุดกึงกลางของสามเหลียมรู ปพัด เพือเตรี ยม Polygon ให้พร้อมสาหรับการยกแกน
ให้สูงขึ-น
7) แบ่งสามเหลียมเพิม โดยใช้แกนทีสร้างขึ-นมาใหม่
8) ยกเส้นแกนขึ-นมาเป็ นความสู งโดยคํานวณค่าเฉลียจากระยะห่างของจุดกึงกลางสามเหลียมรู ปพัดถึง
ขอบภายนอก (External Edge) ด้านทีติดกับจุดกึงกลางดังกล่าว
9) เปลียนเส้นทีเชื อมกับแกนทียกขึ-นให้เป็ นโค้งแบบไข่เพือสร้าง Polygon แบบโค้ง
10) สร้างเส้นเชื อมโครงข่ายให้กลายเป็ น Polygonal Mesh
11) คัดลอกโครงสร้างไปอีกด้านแล้วทาเป็ น Mesh Polygon ทีเป็ นรู ปปิ ดและสมมาตร
สุ ดท้ายลดเส้นและสามเหลียมทีไม่จา เป็ นทิ-ง จะได้ผลลัพธ์เป็ นโมเดล 3 มิติข- ึนมาจากการวาด
ข้อสรุ ปและข้อเสนอแนะ
จากการใช้งานโปรแกรม พบว่าโปรแกรมช่วยอา นวยความสะดวกในการขึ-นโมเดลเบื-องต้น โดยจะสามารถ
ใช้สร้างโมเดลทั-งแบบแคดและแบบฟรี ฟอร์ มได้ดวยการวาดเพียงครั-งเดียว ในงานทีไม่ตองการความ
้ ้
รายละเอียดถูกต้อง การใช้โปรแกรม CP’Sketchuu จะสะดวกกว่าการใช้โปรแกรมแบบ WIMP ทัวไป ข้อ
เสี ยเปรี ยบของโปรแกรมนี- คือ ทําได้เพียงการขึ-นรู ปเพียงครั-งเดียวไม่สามารถเพิมเติม ต่อ ยืด ตัด โมเดลได้
ทําให้การดัดแปลงโมเดลทา ไม่ได้ตองไปดัดแปลงต่อในโปรแกรมอืนแทน และรายละเอียดของโมเดลอาจ
้