ݺߣ

ݺߣShare a Scribd company logo
โครงงานพัฒนาเครื องมือ(Tools Development)

          เป็ น โครงงานเพือพัฒนาเรื องมือมาใช้ ช่วยสร้ างงานประยุกต์ต่าง ๆ ซึงโดย
ส่วนใหญ่จะเป็ นในรูปซอฟต์แวร์ ตัวอย่างของเครื องมือช่วยงาน เช่น ซอฟต์แวร์ วาด
รูป ซอฟต์แวร์ พิมพ์งาน ซอฟต์แวร์ ช่วยการมองวัตถุในมุมต่าง ๆ เป็ นต้ น สําหรับ
ซอฟต์แวร์ เพือการพิมพ์งานนั ,นสร้ างขึ ,นเป็ นโปรแกรมประมวลผลภาษา ซึงจะเป็ น
เครื องมือให้ เราใช้ งานในงานพิมพ์ต่าง ๆ บนเครื องคอมพิวเตอร์ เป็ นไปได้ โดยง่าย ซึง
รูปทีได้ สามารถนําไปใช้ งานต่าง ๆ ได้ มากมาย สําหรับซอฟต์แวร์ ช่วยในการมองวัตถุ
ในมุมต่าง ๆ ใช้ สาหรับช่วยในการออกแบบสิงของต่าง ๆ ตัวอย่างเช่น
                   ํ
1.โปรแกรมการค้ นหาคําภาษาไทย
2. โปรแกรมอ่านอักษรไทย
3. โปรแกรมวาดภาพสามมิติ
4. โปรแกรมบีบอัดข้ อมูล
5. โปรแกรมประมวลผลคําไทยบนระบบปฏิบติการลีนกซ์    ั      ุ
โปรแกรมสร้ างโมเดลสามมิตจากการวาดอย่ างง่ าย (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) ซึงผู้ใช้ จะต้ องทํางานผ่านคําสังทียุ่งยากจํานวนมากเพือให้ ได้ โมเดลสาม
มิติตามทีต้ องการ และถึงแม้ ว่าอินเตอร์ เฟสแบบนี ,จะรองรับการทํางานสร้ างโมเดลทุก
รูปแบบแต่ผ้ ใช้ ทีมีประสบการณ์น้อยจา เป็ นต้ องใช้ เวลาและความพยายามสูง แม้ แต่
              ู
ในการสร้ างโมเดลสามมิติทีมีรายละเอียดไม่มากนักขึ ,นมาชิ ,นหนึง
จากการสร้ างโมเดลในปั จจุบนทียาก ทําให้ มการคิดค้ นการขึ ,นโมเดลสามมิติจากการ
                             ั              ี
สเกตช์ขึ ,นซึงทําได้
ง่ายเนืองจากมนุษย์ถนัดกับการใช้ มือวาดเขียน ทําให้ สามารถสร้ างโมเดลสามมิติได้
เร็ วขึ ,น การสเกตช์คือภาษาหนึงทีใช้ ในการสือสาร ใช้ ในการจดบันทึกหรื อออกแบบสิง
ทีวาดไว้ ในจินตนาการของมนุษย์
ปั จจุบนได้ มีการสร้ างโปรแกรมสร้ างโมเดลสามมิติทีทา ตามแนวคิดการสเกตช์หรื อ
          ั
โปรแกรมแบบแบบ
เอสไอบีเอม(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) แบบ
มาตรฐาน
วัตถุประสงค์
เพือสร้ างโปรแกรมสร้ างโมเดลสามมิติทีมีอนเตอร์ เฟสแบบเอสบีไอเอ็ม(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) หมายถึง โมเดลสามมิติทีใช้ ในงานทางด้ าน
วิศวกรรมหรื องานทางด้ านสถาปั ตยกรรม
- โมเดลแบบฟรี ฟอร์ ม (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 ทัวไป ข้ อ
เสียเปรี ยบของโปรแกรมนี , คือ ทําได้ เพียงการขึ ,นรูปเพียงครังเดียวไม่สามารถเพิมเติม
                                                             ,
ต่อ ยืด ตัด โมเดลได้ ทําให้ การดัดแปลงโมเดลทา ไม่ได้ ต้องไปดัดแปลงต่อใน
โปรแกรมอืนแทน และรายละเอียดของโมเดลอาจมีความผิดพลาดไม่ถกต้ องได้ เนือง  ู
ด้ วยโปรแกรมถูกพัฒนาด้ วยภาษาจาว่า จึงสามารถนําไปใช้ งานได้ ในหลาย
Platform เมือมีการลง Java Virtual Machine ซึงในทีนี ,จึงสามารถนา
มาใช้ งานบน Linux ได้

ขอบคุณข้อมูลจาก http://www.hinsorn.ac.th/web/?p=41

More Related Content

โครงงานพัฒนาเครื่องมือ 5

  • 1. โครงงานพัฒนาเครื องมือ(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,
  • 3. 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) ซึงผู้ใช้ จะต้ องทํางานผ่านคําสังทียุ่งยากจํานวนมากเพือให้ ได้ โมเดลสาม มิติตามทีต้ องการ และถึงแม้ ว่าอินเตอร์ เฟสแบบนี ,จะรองรับการทํางานสร้ างโมเดลทุก รูปแบบแต่ผ้ ใช้ ทีมีประสบการณ์น้อยจา เป็ นต้ องใช้ เวลาและความพยายามสูง แม้ แต่ ู ในการสร้ างโมเดลสามมิติทีมีรายละเอียดไม่มากนักขึ ,นมาชิ ,นหนึง จากการสร้ างโมเดลในปั จจุบนทียาก ทําให้ มการคิดค้ นการขึ ,นโมเดลสามมิติจากการ ั ี สเกตช์ขึ ,นซึงทําได้ ง่ายเนืองจากมนุษย์ถนัดกับการใช้ มือวาดเขียน ทําให้ สามารถสร้ างโมเดลสามมิติได้ เร็ วขึ ,น การสเกตช์คือภาษาหนึงทีใช้ ในการสือสาร ใช้ ในการจดบันทึกหรื อออกแบบสิง ทีวาดไว้ ในจินตนาการของมนุษย์ ปั จจุบนได้ มีการสร้ างโปรแกรมสร้ างโมเดลสามมิติทีทา ตามแนวคิดการสเกตช์หรื อ ั โปรแกรมแบบแบบ เอสไอบีเอม(Sketch-based interface for modeling หรื อ SBIM) เช่น Google Sketchup ทีมีลกษณะการสร้ าง ั
  • 4. แบบโซลิด (SOLID) ซึงสามารถใช้ ได้ โดยการร่ างภาพทีเป็ นรูปหน้ าตัดของโมเดล สามมิติทีต้ องการและจึงยืดหน้ าตัดออกมาเป็ นโมเดลสามมิติ แต่มข้อเสีย คือ ี โปรแกรมไม่สามารถสร้ างโมเดลสามมิติทีเป็ นลักษณะโค้ งนูนได้ หรื อทําได้ ยาก และ โปรแกรมไม่สนับสนุนการทําโมเดล 3 มิติแบบฟรี ฟอร์ ม(Freeform) Teddy [1] เป็ นโปรแกรมสร้ างโมเดล 3 มิติ แบบเอสบีไอเอ็มทีมีลกษณะสนับสนุนการสร้ าง ั โมเดลแบบฟรี ฟอร์ มซึงสามารถสร้ างโมเดลทีมีลกษณะเป็ นทรงสมมาตรได้ ง่าย ต่าง ั จากงานแบบโซลิดทีจําเป็ นต้ องสร้ างโมเดลจากเส้ นตายตัว (fixed line) และ รูปร่ างทีกําหนด (Fixed Shape)ทําให้ เกิดปั ญหาการสร้ างโมเดลทีต้ องการ เหลียมมุมหรื อต้ องการขนาดทีสามารถวัดได้ ทําให้ Teddy ไม่เหมาะ สําหรับงานที ต้ องการอัตราส่วนทีถูกต้ องหรื อขนาดทีชัดเจน จากข้ อจํากัดของโปรแกรมดังทีกล่าวมา โครงงาน CPS’ketchuu จึงได้ ถูกออกแบบมาเพือให้ เป็ น โปรแกรมแบบ เอสบีไอเอมทีเพิมความยืดหยุนในการทา งานมากขึ ,นและรวมข้ อดี ่ ของทั ,งสองโปรแกรมทีได้ กล่าวข้ างต้ นเข้ าไว้ ด้วยกัน คือ โปรแกรมสามารถทํางานได้ ทั ,งการสร้ างโมเดล 3 มิติแบบฟรี ฟอร์ มทีสามารถปรับความระดับความนูนและโค้ งงอ ได้ และสร้ างโมเดล 3 มิติแบบโซลิดได้ CPS’ketchuu จึงเป็ นโปรแกรมสร้ าง โมเดลสามมิติทีมีสวนอินเตอร์ เฟสตั ,งอยู่บนพื ,นฐานของการวาดแบบเอสบีไอเอ็ม ซึง ่ ถูกพัฒนาขึ ,นมาเพือลดความยุ่งยากในสร้ างโมเดลสามมิติด้วยอินเตอร์ เฟสแบบ ดับบลิวไอเอ็มพี ซึงเป็ นวิธีแบบดั ,งเดิม เนืองจากผู้ใช้ งานส่วนมากจะคุ้นเคยกับวิธีการ วาดภาพซึงเป็ นพื ,นฐานของการทํางานทางด้ านศิลปะอยู่แล้ ว โดยการสเกตช์ทีใช้ ใน โปรแกรมนี ,จะเน้ นไปทางด้ านการสเกตช์ภาพทีออกแบบในความคิดเพือนํามาสร้ าง เป็ นโมเดลสามมิติใช้ งานต่อไป ในการทํางานในโหมดฟรี ฟอร์ ม ผู้ใช้ โปรแกรมจะวาด เส้ นแบบ 2 มิติด้วยอุปกรณ์ประเภท mouse หรื อ Graphic Tablet จากนั ,น โปรแกรมจะสร้ าง 3D polygon surface ขึ ,นตามเส้ น ซึงความหนาหรื อบาง
  • 5. ของตัวโมเดล จะคํานวณจากความกว้ างและแคบของพื ,นทีโดยพื ,นทีทีกว้ างจะทําให้ โมเดลส่วนนั ,นหนา และ พื ,นทีทีแคบจะทําให้ โมเดล ตรงส่วนนั ,นบาง นอกจากนี , ผู้ใช้ งานยังสามารถเลือกโหมดโซลิด เพือสนับสนุนการสร้ างโมเดลแบบโซลิด ตัว โปรแกรมถูกสร้ างด้ วยภาษาจาวา (JAVA) ให้ เป็ นโปรแกรมแบบ open source และสามารถสร้ างโมเดล ได้ แบบ real-time บนเครื องพีซี(PC) แบบ มาตรฐาน วัตถุประสงค์ เพือสร้ างโปรแกรมสร้ างโมเดลสามมิติทีมีอนเตอร์ เฟสแบบเอสบีไอเอ็ม(SBIM) ิ รายละเอียดการพัฒนา เนื ,อเรื องตัวอย่างการใช้ งานโปรแกรม 1) นายสร้ างสรรค์ เป็ นโปรแกรมเมอร์ ต้องการพัฒนาเกมเกมหนึง โดยต้ องการให้ มี ตัวละครทีเป็ น 3 มิติแต่ว่า นายสร้ างสรรค์ไม่มีความรู้ในการสร้ างโมเดล 3 มิติเลย นายสร้ างสรรค์จงได้ ใช้ CPS’ketchuu และได้ พบว่าเขาสามารถสร้ างตัวละครใน ึ เกมได้ อย่างทีต้ องการ ได้ ง่ายและรวดเร็ ว 2) นายพุชยิต เป็ นนักวาดการ์ ตน กําลังต้ องการจะทา ให้ การ์ ตนตัวเองเป็ นการ์ ตน ู ู ู แอนิเมชันแบบ 3 มิติจงได้ ลองใช้ CPS’ketchuu พบว่าสามารถใช้ วิธีวาด ึ การ์ ตนในแบบทีตนเองถนัดในการสร้ างโมเดล3มิติของตัวละครในการ์ ตน ได้ ทําให้ ู ู งานออกมาได้ ตามทีต้ องการและออกมาเหมือนตัวละครทีใช้ ตอนเป็ นการ์ ตน 2 มิติ ู 3) นางสาวณฐพร เป็ นสถาปนิกออกแบบภายใน ต้ องการสร้ างงาน 3 มิติเพือเสนอ ลูกค้ า โดยภายในแบบทีต้ องการสร้ างโมเดล 3 มิตินั ,นมีวตถุทีมีลกษณะโค้ งมนเยอะ ั ั มากมาย ซึงโปรแกรมSketch Up เพือสร้ างโมเดล 3 มิติทวไปความสามารถใน ั การสร้ างโมเดลทีโค้ งมนนั ,นน้ อย นางสาวณฐพร จึงได้ ลองใช้ CPS’ketchuu พบว่าสามารถสร้ างโมเดล 3 มิติทีโค้ งมนได้ ดี
  • 6. 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) หมายถึง โมเดลสามมิติทีใช้ ในงานทางด้ าน วิศวกรรมหรื องานทางด้ านสถาปั ตยกรรม - โมเดลแบบฟรี ฟอร์ ม (Freeform Model ) หมายถึง โมเดลสามมิติแบบทีไม่ มีรูปร่ างทีตายตัวแน่นอน หรื อ ไม่ใช่รูปร่ างทางเรขาคณิต
  • 7. วิธีการสร้ างโมเดล 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 ให้ พร้ อมสาหรับการยกแกนให้ สงขึ ,น ู
  • 8. 7) แบ่งสามเหลียมเพิม โดยใช้ แกนทีสร้ างขึ ,นมาใหม่ 8) ยกเส้ นแกนขึ ,นมาเป็ นความสูงโดยคํานวณค่าเฉลียจากระยะห่างของจุดกึงกลาง สามเหลียมรูปพัดถึง ขอบภายนอก (External Edge) ด้ านทีติดกับจุดกึงกลางดังกล่าว 9) เปลียนเส้ นทีเชือมกับแกนทียกขึ ,นให้ เป็ นโค้ งแบบไข่เพือสร้ าง Polygon แบบ โค้ ง 10) สร้ างเส้ นเชือมโครงข่ายให้ กลายเป็ น Polygonal Mesh 11) คัดลอกโครงสร้ างไปอีกด้ านแล้ วทาเป็ น Mesh Polygon ทีเป็ นรูปปิ ดและ สมมาตร สุดท้ ายลดเส้ นและสามเหลียมทีไม่จา เป็ นทิ ,ง จะได้ ผลลัพธ์เป็ นโมเดล 3 มิติขึ ,นมา จากการวาด ข้ อสรุ ปและข้ อเสนอแนะ จากการใช้ งานโปรแกรม พบว่าโปรแกรมช่วยอา นวยความสะดวกในการขึ ,นโมเดล เบื ,องต้ น โดยจะสามารถใช้ สร้ างโมเดลทั ,งแบบแคดและแบบฟรี ฟอร์ มได้ ด้วยการวาด เพียงครังเดียว ในงานทีไม่ต้องการความรายละเอียดถูกต้ อง การใช้ โปรแกรม , CP’Sketchuu จะสะดวกกว่าการใช้ โปรแกรมแบบ WIMP ทัวไป ข้ อ เสียเปรี ยบของโปรแกรมนี , คือ ทําได้ เพียงการขึ ,นรูปเพียงครังเดียวไม่สามารถเพิมเติม , ต่อ ยืด ตัด โมเดลได้ ทําให้ การดัดแปลงโมเดลทา ไม่ได้ ต้องไปดัดแปลงต่อใน โปรแกรมอืนแทน และรายละเอียดของโมเดลอาจมีความผิดพลาดไม่ถกต้ องได้ เนือง ู ด้ วยโปรแกรมถูกพัฒนาด้ วยภาษาจาว่า จึงสามารถนําไปใช้ งานได้ ในหลาย Platform เมือมีการลง Java Virtual Machine ซึงในทีนี ,จึงสามารถนา มาใช้ งานบน Linux ได้ ขอบคุณข้อมูลจาก http://www.hinsorn.ac.th/web/?p=41