SlideShare a Scribd company logo
0
รหัสโครงการ 13p15c009
โปรแกรมสร้างโมเดลสามมิติจากการวาดอย่างง่าย (CPS’ketchuu)
ประเภทโปรแกรม เพื่อประยุกต์ใช้งานสาหรับลินุกซ์(ระดับ นิสิต นักศึกษา)
รายงานฉบับสมบูรณ์
เสนอต่อ
ศูนย์เทคโนโลยีอิเล็กทรอนิกส์และคอมพิวเตอร์แห่งชาติ
สานักงานพัฒนาวิทยาศาสตร์และเทคโนโลยีแห่งชาติ
กระทรวงวิทยาศาสตร์และเทคโนโลยี
ได้รับทุนอุดหนุนโครงการวิจัย พัฒนาและวิศวกรรม
โครงการแข่งขันพัฒนาโปรแกรมคอมพิวเตอร์แห่งประเทศไทย ครั้งที่ 13
ประจาปีงบประมาณ 2553
โดย
ผู้พัฒนา นาย พิชยุตม์ พีระเสถียร (หัวหน้าโครงการ)
นาย ชลทิตย์ประทีปมโนวงศ์
อาจารย์ที่ปรึกษาโครงการ ผศ.ดร. พิษณุ คะนองชัยยศ
สถาบันการศึกษา จุฬาลงกรณ์มหาวิทยาลัย
1
กิตติกรรมประกาศ
โครงการวิจัยเรื่อง “โปรแกรมสร้างโมเดลสามมิติจากการวาดอย่างง่าย CPS’ketchuu” เป็นโครงการที่
ได้รับทุนอุดหนุนจากการการแข่งขันพัฒนาโปรแกรมคอมพิวเตอร์แห่งประเทศไทย ครั้งที่ 13 จัดโดยศูนย์
เทคโนโลยีอิเล็กทรอนิกส์และคอมพิวเตอร์แห่งชาติ สานักงานพัฒนาวิทยาศาสตร์และเทคโนโลยีแห่งชาติ
ทั้งนี้โครงการนี้จะสาเร็จลุล่วงไปไม่ได้เลยหากปราศจากความอนุเคราะห์จาก ผศ.ดร.พิษณุ คนองชัยยศ
อาจารย์ที่ปรึกษาโครงการที่ได้ติดตามและให้คาแนะนาที่เป็นประโยชน์ต่อการพัฒนาโครงการนี้มาโดยตลอด
ชลทิตย์ประทีปมโนวงศ์
พิชยุตม์ พีระเสถียร
2
1.บทคัดย่อ
โครงการนี้มีจุดประสงค์เพื่อสร้างโปรแกรมสร้างโมเดลสามมิติที่มีส่วนอินเตอร์เฟสตั้งอยู่บนพื้นฐาน
ของการวาด ซึ่งถูกพัฒนาขึ้นมาเพื่อลดความยุ่งยากในสร้างโมเดลสามมิติด้วยอินเตอร์เฟสแบบดับบลิวไอเอ็มพี
ซึ่งเป็นวิธีแบบดั้งเดิม เนื่องจากผู้ใช้งานส่วนมากจะคุ้นเคยกับวิธีการวาดภาพซึ่งเป็นพื้นฐานของการทางาน
ทางด้านศิลปะอยู่แล้ว ผู้ใช้โปรแกรมจะวาดเส้นแบบ 2 มิติด้วยอุปกรณ์ประเภท mouse หรือ Graphic Tablet
จากนั้นโปรแกรมจะสร้างโมเดลสามมิติขึ้นตามเส้น ซึ่งวิธีการสร้างโมเดลสามมิติจะสามารถแบ่งออกเป็น 2
แบบตามลักษณะของโมเดลที่จะเกิดขึ้น คือ1.สร้างโมเดลแบบฟรีฟอร์มที่ตัวโมเดลที่เกิดขึ้นจะมีความหนาหรือ
บางของแต่ละส่วนแต่งต่างกันไป โดยจะคานวณจากความกว้างและแคบของพื้นที่โดยพื้นที่ที่กว้างจะทาให้
โมเดลส่วนนั้นหนา และ พื้นที่ที่แคบจะทาให้โมเดลตรงส่วนนั้นบาง และ2. สร้างโมเดลแบบโซลิดที่ตัวโมเดล
สามมิติจะมีความโค้งมนของตัวโมเดลน้อยและมีความเหมาะสมกับงานทางด้านสถาปัตยกรรมหรือวิศวกรรม
มากกว่าโมเดลแบบฟรีฟอร์ม โครงการนี้ถูกพัฒนาขึ้นมาด้วยภาษาจาว่าเพื่อให้สามารถทางานได้บนหลาย
ระบบปฎิบัติการและให้สามารถทางานได้แบบทันท่วงนี้ (Real-time)บนคอมพิวเตอร์ส่วนบุคคลทั่วไป
Abstract
This project is to provide a sketching interface 3D modeling program whichreduce the difficulty in
tradition WIMP 3D modeling style. The user draws several 2D strokes interactively on the screen using
whether mouse or graphic tabletand 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 eachregion of silhouette making wide
areas fat,and narrowarea thin. The solid modeling will generate the non smooth model which is more suitable
for the engineeringand architect work. This project is implemented by Java language in order to, and mesh
construction is done in real time on standardPC.
Key word: 3D modeling, sketch-based modeling, SBIM , Linux , Open source
3
2. ที่มาและความสาคัญของปัญหา
การสร้างโมเดลสามมิติในปัจจุบันได้เข้ามามีบทบาทเป็นอย่างมากต่อการทางานในด้านต่างๆ เช่น การ
ออกแบบผลิตภัณฑ์หรือสินค้าการออกแบบอาคาร การผลิตภาพยนตร์หรือการ์ตูนแอนิเมชัน ทาให้โปรแกรม
และวิธีการสร้างโมเดลสามมิติได้รับการพัฒนาไปอย่างมาก แม้กระนั้นงานในด้านนี้กลับเป็นงานที่ยากและต้อง
อาศัยเวลา เนื่องจากความสลับซับซ้อนของ อินเตอร์เฟสของโปรแกรมสร้างโมเดลจาลองแบบสามมิติใน
ปัจจุบันที่เป็นแบบดับบลิวไอเอ็มพี [8] (WIMP: Window, Icon, Menu,Pointer) ซึ่งผู้ใช้จะต้องทางานผ่าน
คาสั่งที่ยุ่งยากจานวนมากเพื่อให้ได้โมเดลสามมิติตามที่ต้องการ และถึงแม้ว่าอินเตอร์เฟสแบบนี้จะรองรับการ
ทางานสร้างโมเดลทุกรูปแบบแต่ผู้ใช้ที่มีประสบการณ์น้อยจาเป็นต้องใช้เวลาและความพยายามสูง แม้แต่ในการ
สร้างโมเดลสามมิติที่มีรายละเอียดไม่มากนักขึ้นมาชิ้นหนึ่ง ดังแสดงในภาพที่ 1.1
ภาพที่ 2.1 แสดงอินเตอร์เฟสแบบ WIMP ในโปรแกรม maya 2008
4
จากการสร้างโมเดลในปัจจุบันที่ยาก ทาให้มีการคิดค้นการขึ้นโมเดลสามมิติจากการสเกตช์ขึ้นซึ่งทาได้
ง่ายเนื่องจากมนุษย์ถนัดกับการใช้มือวาดเขียน ทาให้สามารถสร้างโมเดลสามมิติได้เร็วขึ้น การสเกตช์คือภาษา
หนึ่งที่ใช้ในการสื่อสาร ใช้ในการจดบันทึกหรือออกแบบสิ่งที่วาดไว้ในจินตนาการของมนุษย์
ปัจจุบันได้มีการสร้างโปรแกรมสร้างโมเดลสามมิติที่ทาตามแนวคิดการสเกตช์หรือโปรแกรมแบบแบบ
เอสไอบีเอม(Sketch-based interface for modelingหรือ SBIM) เช่น Google Sketchup ที่มีลักษณะการสร้าง
แบบโซลิด (SOLID) ซึ่งสามารถใช้ได้โดยการร่างภาพที่เป็นรูปหน้าตัดของโมเดลสามมิติที่ต้องการและจึงยืด
หน้าตัดออกมาเป็นโมเดลสามมิติ แต่มีข้อเสีย คือโปรแกรมไม่สามารถสร้างโมเดลสามมิติที่เป็นลักษณะโค้งนูน
ได้หรือทาได้ยาก และโปรแกรมไม่สนับสนุนการทาโมเดล 3 มิติแบบฟรีฟอร์ม(Freeform) ดังแสดงในภาพที่
1.2
ภาพที่2. 2 แสดงโมเดลที่ได้ใน Google Sketchup
Teddy[1] เป็นโปรแกรมสร้างโมเดล 3 มิติ แบบเอสบีไอเอ็มที่มีลักษณะสนับสนุนการสร้างโมเดลแบบ
ฟรีฟอร์มซึ่งสามารถสร้างโมเดลที่มีลักษณะเป็นทรงสมมาตรได้ง่าย ต่างจากงานแบบโซลิดที่จาเป็นต้องสร้าง
โมเดลจากเส้นตายตัว (fixed line) และรูปร่างที่กาหนด (Fixed Shape) ดังแสดงในภาพที่ 1.3 กระนั้น Teddy ก็
5
ทาให้เกิดปัญหาการสร้างโมเดลที่ต้องการเหลี่ยมมุมหรือต้องการขนาดที่สามารถวัดได้ทาให้ Teddyไม่เหมาะ
สาหรับงานที่ต้องการอัตราส่วนที่ถูกต้องหรือขนาดที่ชัดเจน
ภาพที่ 2.3 แสดงโปรแกรม Teddy
จากข้อจากัดของโปรแกรมดังที่กล่าวมา โครงงาน CPS’ketchuu จึงได้ถูกออกแบบมาเพื่อให้เป็น
โปรแกรมแบบ เอสบีไอเอมที่เพิ่มความยืดหยุ่นในการทางานมากขึ้นและรวมข้อดีของทั้งสองโปรแกรมที่ได้
กล่าวข้างต้นเข้าไว้ด้วยกัน คือ โปรแกรมสามารถทางานได้ทั้งการสร้างโมเดล 3 มิติแบบฟรีฟอร์มที่สามารถ
ปรับความระดับความนูนและโค้งงอได้และสร้างโมเดล 3 มิติแบบโซลิดได้
CPS’ketchuu จึงเป็นโปรแกรมสร้างโมเดลสามมิติที่มีส่วนอินเตอร์เฟสตั้งอยู่บนพื้นฐานของการวาด
แบบเอสบีไอเอ็ม ซึ่งถูกพัฒนาขึ้นมาเพื่อลดความยุ่งยากในสร้างโมเดลสามมิติด้วยอินเตอร์เฟสแบบดับบลิว
ไอเอ็มพี ซึ่งเป็นวิธีแบบดั้งเดิม เนื่องจากผู้ใช้งานส่วนมากจะคุ้นเคยกับวิธีการวาดภาพซึ่งเป็นพื้นฐานของการ
ทางานทางด้านศิลปะอยู่แล้ว โดยการสเกตช์ที่ใช้ในโปรแกรมนี้จะเน้นไปทางด้านการสเกตช์ภาพที่ออกแบบ
ในความคิดเพื่อนามาสร้างเป็นโมเดลสามมิติใช้งานต่อไปในการทางานในโหมดฟรีฟอร์ม ผู้ใช้โปรแกรมจะ
6
วาดเส้นแบบ 2 มิติด้วยอุปกรณ์ประเภท mouse หรือ Graphic Tablet จากนั้นโปรแกรมจะสร้าง 3D polygon
surface ขึ้นตามเส้น ซึ่งความหนาหรือบางของตัวโมเดล จะคานวณจากความกว้างและแคบของพื้นที่โดยพื้นที่ที่
กว้างจะทาให้โมเดลส่วนนั้นหนา และ พื้นที่ที่แคบจะทาให้โมเดล ตรงส่วนนั้นบาง นอกจากนี้ผู้ใช้งานยัง
สามารถเลือกโหมด โซลิด เพื่อสนับสนุนการสร้างโมเดลแบบโซลิด ตัวโปรแกรมถูกสร้างด้วยภาษาจาวา
(JAVA) ให้เป็นโปรแกรมแบบopen source และสามารถสร้างโมเดล ได้แบบreal-time บนเครื่องพีซี(PC) แบบ
มาตรฐาน
7
สารบัญ
หน้า
กิตติกรรมประกาศ 1
บทคัดยอ 2
ที่มาและความสาคัญของปัญหา 3
วัตถุประสงค์ 8
รายละเอียดการพัฒนา 8
เนื้อเรื่องย่อ (Story Board) 8
งานวิจัยและทฤษฎีที่เกี่ยวข้อง 9
คาศัพทและความหมาย 9
ระดับของการสเกตช์ 10
งานวิจัย Teddy 10
ทฤษฎีการสร้างสามเหลี่ยม Delaunay 14
การทาโมเดลแบบโซลิด 15
เครื่องมือที่ใช้ในการพัฒนา 16
รายละเอียดโปรแกรมที่พัฒนา 17
โครงสร้าง Software 18
แหล่งที่มาของ Source Code ที่นามาประกอบ 18
ขอบเขตและข้อจากัดของโปรแกรมที่พัฒนา 19
กลุ่มผู้ใช้โปรแกรม 19
ผลการทดสอบโปรแกรม 19
ปัญหาและอุปสรรค 22
แนวทางการพัฒนาและการประยุกต์ใช้ร่วมกับงานอื่นๆ 23
บรรณานุกรม 25
ภาคผนวก 26
8
4. วัตถุประสงค์
เพื่อสร้างโปรแกรมสร้างโมเดลสามมิติที่มีอินเตอร์เฟสแบบเอสบีไอเอ็ม(SBIM)
5.รายละเอียดการพัฒนา
5.1 - เนื้อเรื่องย่อ (StoryBoard)
ภาพที่ 5.1 แสดงเนื้อเรื่องย่อ
เนื้อเรื่องตัวอย่างการใช้งานโปรแกรม
1) นายสร้างสรรค์เป็นโปรแกรมเมอร์ต้องการพัฒนาเกมเกมหนึ่ง โดยต้องการให้มีตัวละครที่
เป็น 3 มิติแต่ว่า นายสร้างสรรค์ไม่มีความรู้ในการสร้างโมเดล 3 มิติเลย นายสร้างสรรค์จึงได้ใช้
CPS’ketchuu และได้พบว่าเขาสามารถสร้างตัวละครในเกมได้อย่างที่ต้องการ ได้ง่ายและ
รวดเร็ว
2) นายพุชยิต เป็นนักวาดการ์ตูน กาลังต้องการจะทาให้การ์ตูนตัวเองเป็นการ์ตูนแอนิเมชัน
แบบ 3 มิติจึงได้ลองใช้CPS’ketchuu พบว่าสามารถใช้วิธีวาดการ์ตูนในแบบที่ตนเองถนัดใน
การสร้างโมเดล3มิติของตัวละครในการ์ตูนได้ทาให้งานออกมาได้ตามที่ต้องการและออกมา
เหมือนตัวละครที่ใช้ตอนเป็นการ์ตูน 2 มิติ
นาภาพเข้ามา
เป็นพื้นหลัง
ส่วนรับ input เส้น
และติดต่อผู้ใช้
โมเดล3
มิติ.obj
ผู้ใช้
ส่วนแปลง
ภาพที่
สเกตช์เป็น
โมเดล 3 มิติ
ส่วนแปลง
โมเดล 3 มิติ
เป็นไฟล์
.obj
สเกตช์
ภาพ
รูปถ่าย
ภาพร่างเพื่อ
ใช้เป็นแบบ
โมเดล
3 มิติ
ข้อมูลจุดและเส้น
9
3) นางสาวณฐพร เป็นสถาปนิกออกแบบภายใน ต้องการสร้างงาน 3 มิติเพื่อเสนอลูกค้า โดย
ภายในแบบที่ต้องการสร้างโมเดล 3 มิตินั้นมีวัตถุที่มีลักษณะโค้งมนเยอะมากมาย ซึ่งโปรแกรม
Sketch Upเพื่อสร้างโมเดล 3 มิติทั่วไปความสามารถในการสร้างโมเดลที่โค้งมนนั้นน้อย
นางสาวณฐพร จึงได้ลองใช้CPS’ketchuu พบว่าสามารถสร้างโมเดล 3 มิติที่โค้งมนได้ดี
4) นายตาวัน เป็นผู้ใช้คอมพิวเตอร์ทั่วไป ต้องการที่จะสร้างโมเดล 3 มิติจากภาพถ่าย ซึ่งนายตา
วันได้ใช้โปรแกรมทาให้ภาพถ่ายนั้นกลายเป็นภาพแบบภาพวาด แล้วจึงนามาเข้ามาใช้ใน
โปรแกรม CPS’ketchuu ซึ่งพบว่าสามารถลากเส้นตามภาพที่นามาใช้แล้วสร้างเป็นโมเดลได้
โดยง่าย
5) นายธนัท เป็นนักพัฒนาโปรแกรมในบริษัทสร้างงาน แอนิเมชัน 3 มิติ ได้นา CPS’ketchuu
ไปใช้พบว่าการทางานขึ้นโมเดลต่างๆ ที่เป็นส่วนย่อย รายละเอียดไม่เยอะนักสร้างได้โดยง่าย
ทาให้ไม่ต้องเสียเวลาในส่วนนี้มาก และเนื่องจาก CPS’ketchuu เป็น Open Source จึงสามารถ
นามาปรับปรุง ปรับเปลี่ยนให้เหมาะกับงานต่างๆเพิ่มขึ้นได้
5.2 งานวิจัยและทฤษฎีที่เกี่ยวข้อง
5.2.1 คาศัพท์และความหมาย
- สเกตช์(Sketch) หมายถึง การสร้างภาพโดยการวาดด้วยมือเปล่าโดยโดยไม่ใส่รายละเอียดจน
สมบูรณ์แบบ กล่าวได้ว่าเป็นการวาดเพียงเพื่อให้เห็นแนวคิดของภาพเท่านั้น
- SBIM ( Sketch-based interface for modeling ) หมายถึง อินเตอร์เฟสในการสร้างโมเดล 3 มิติ ที่มี
พื้นฐานจากการวาดแบบสเกตช์ ผู้ใช้งานจะใช้วิธีการวาดเส้นแบบ 2 มิติลงไปเพื่อให้โปรแกรมสร้าง
โมเดล 3 มิติให้
- WIMP ( Window,Icon, Menu ,Pointer) หมายถึง อินเตอร์เฟสที่ผู้ใช้งานจะต้องทางานผ่านหน้าต่าง
ไอคอน เมนู และตัวชี้เพื่อให้บรรลุวัตถุประสงค์ของการทางาน
10
- โมเดลแบบโซลิด(Solid Model) หมายถึง โมเดลสามมิติที่ใช้ในงานทางด้านวิศวกรรมหรืองาน
ทางด้านสถาปัตยกรรม
- โมเดลแบบฟรีฟอร์ม (Freeform Model ) หมายถึง โมเดลสามมิติแบบที่ไม่มีรูปร่างที่ตายตัวแน่นอน
หรือ ไม่ใช่รูปร่างทางเรขาคณิต
5.2.2. ระดับของการสเกตช์อ้างอิงจาก [7]
การสเกตช์แบ่งออกเป็น 5 ระดับ คือ
1.1 การสเกตช์เพื่อใช้ติดต่อหรือเสนอผลงานแบบไม่เป็นทางการ เป็นการสเกตช์คร่าวๆ ไม่ละเอียดเพื่อ
ใช้ในการเสนอยกตัวอย่างของงานให้แก่ผู้อื่นแบบไม่เป็นทางการ
1.2 การสเกตช์ภาพงานที่ออกแบบไว้ในความคิด เป็นการสเกตช์ที่มีรายละเอียดเพิ่มขึ้น เพื่อเสนอ
ผลงานกับนักออกแบบคนอื่นๆ
1.3 การสเกตช์ภาพงานทางเทคนิค เป็นการสเกตช์ที่ใช้หลักการระหว่างงานศิลปะกับวิศวกรรม เพื่อ
บอกรายละเอียดที่ต่างๆ ช่วยในการผลิตผลงานที่ออกแบบออกมาเป็นชิ้น
1.4 การสเกตช์เพื่อใช้ในการเสนอผลงาน เป็นสเกตช์ที่เน้นใส่รายละเอียดการใช้งานที่น่าสนใจของ
ผลงาน เพื่อช่วยในการเสนอผลงาน มีการสเกตช์เพื่อให้ความรู้สึกแก่ผู้ที่ดูด้วยเล็กน้อย
1.5 การสเกตช์ภาพก่อให้เกิดความรู้สึก เป็นการสเกตช์ที่เน้นการให้ความรู้สึกแก่ผู้ที่ดูงานสเกตช์
5.2.3 งานวิจัย Teddy[1] เรื่องวิธีการสร้างโมเดล 3 มิติแบบฟรีฟอร์ม
1) รับข้อมูลจาก เมาส์ หรือ Graphic Tablet เป็นเส้นสเกตช์แบบฟรีฟอร์ม เข้ามาเป็นจุดที่ลากเชื่อมต่อ
กันโดยการสเกตช์จากนั้นจึงนาจุดที่ได้ไปลดปริมาณลงโดยใช้อัลกอริทึมตามงานวิจัย [10]
2) เชื่อมรอยต่อให้เป็นรูปโพลีกอนแบนเรียบแบบปิด โดยใช้การลากเส้นจากจุดเริ่มต้นเข้าไปหาจุด
ท้ายสุด ดังแสดงในภาพที่ 5.2
11
ภาพที่ 5.2 แสดงรูปปิดที่ได้จากการเชื่อมต่อจุดเริ่มต้นและจุดท้ายเข้าด้วยกัน
3) สร้าง Delaunay triangulation โดยใช้วิธีการเชื่อมจุดใน space ดังแสดงในภาพที่ 5.3
ภาพที่ 5.3 แสดงรูปปิดที่ถูกบรรจุสามเหลี่ยม Delaunay เข้าไปจนเต็ม
4) หาแกนคอดัล (Chordal Axis) ของ Polygon ทุกอันในรูปปิด ตามงานวิจัย [9] โดยการลากเส้น
เชื่อมจุดกึ่งกลาง
ของสามเหลี่ยม Delaunay ทุกอันในรูปปิด เพื่อให้สามารถแบ่งสามเหลี่ยมออกเป็น 3 แบบ คือ
สามเหลี่ยมแบบ เทอร์มินัล (terminal )สามเหลี่ยมแบบ สลีฟ (sleeve) และสามเหลี่ยมแบบจังก์ชั่น
(junction) ดังแสดงในภาพที่ 5.4
12
ภาพที่ 5.4 แสดงแกนแบบคอดัล
5) ขลิบบางส่วนออกให้ได้สามเหลี่ยมรูปพัด( Fan triangle) โดยใช้วิธีตามงานวิจัย [9] โดยใช้
อัลกอริทึมแบบพรูนนิ่ง (pruning)โดยสร้างวงกลมขึ้นมาจากเส้นขอบภายใน (internaledge) ของ
สามเหลี่ยมแบบเทอร์มินัล จากนั้นจึงรวมสามเหลี่ยมนี้เข้ากับสาสมเหลี่ยมภายในอันถัดไป และสร้าง
วงกลมซ้าไปเรื่อยๆจนกว่าจะมีจุดของสามเหลี่ยมที่อย่ายนอกวงกลม และจึงสร้างสามเหลี่ยมแบบพัด
จากจุดกึ่งกลางของขอบภายในที่อยู่นอกสุด ดังแสดงในภาพที่ 5.5
ภาพที่ 5.5 แสดงการทาขลิบ
จะได้ผลลัพธ์ดังแสดงในภาพที่ 5.6
13
ภาพที่ 5.6 แสดงรูปปิดภายหลังการขลิบ
6) สร้างแกนเชื่อมระหว่างจุดกึ่งกลางของสามเหลี่ยมรูปพัด เพื่อเตรียมPolygon ให้พร้อมสาหรับการยก
แกนให้สูงขึ้นดังแสดงในภาพที่ 5.7
ภาพที่ 5.7 แสดงรูปปิดภายหลังการสร้างแกนเชื่อมระหว่างจุดกึ่งกลางขอสามเหลี่ยมรูป
พัด
7) แบ่งสามเหลี่ยมเพิ่ม โดยใช้แกนที่สร้างขึ้นมาใหม่ดังแสดงในภาพที่ 5.8
ภาพที่ 5.8 แสดงรูปปิดภายหลังการสร้างสามเหลี่ยมตามแกนเชื่อม
8) ยกเส้นแกนขึ้นมาเป็นความสูงโดยคานวณค่าเฉลี่ยจากระยะห่างของจุดกึ่งกลางสามเหลี่ยมรูปพัดถึง
ขอบภายนอก (External Edge)ด้านที่ติดกับจุดกึ่งกลางดังกล่าวดังภาพที่ 5.9
14
ภาพที่ 5.9 แสดงแกนเชื่อที่ถูกยกสูงขึ้น
9) เปลี่ยนเส้นที่เชื่อมกับแกนที่ยกขึ้นให้เป็นโค้งแบบไข่ เพื่อสร้าง Polygon แบบโค้งดังภาพที่ 5.10
ภาพที่ 5.10แสดงรูปปิดภายหลังการสร้างPolygom ตามแกนเชื่อมที่ถูกยก
10 ) สร้างเส้นเชื่อมโครงข่ายให้กลายเป็น Polygonal Mesh ดังรูปที่ 5.11
ภาพที่ 5.11 แสดงรูปปิดภายหลังสร้างเส้นเชื่อมโครงข่าย
11) คัดลอกโครงสร้างไปอีกด้านแล้วทาเป็น Mesh Polygon ที่เป็นรูปปิดและสมมาตร
สุดท้ายลดเส้นและสามเหลี่ยมที่ไม่จาเป็นทิ้ง จะได้ผลลัพธ์เป็นโมเดล 3 มิติขึ้นมาจากการวาด
5.2.4 ทฤษฎีการสร้างสามเหลี่ยม Delaunay
Delaunay triangle คือสามเหลี่ยมที่มีคุณสมบัติคือ มุมที่น้อยที่สุดใน สามเหลี่ยมทั้งหมดจะมี
ค่ามากสุด และ วงกลมที่ล้อมรอบสามเหลี่ยมทุกอันจะต้องไม่มีจุดอยู่ในวงกลมดังแสดงในภาพ 5.12
15
ภาพที่ 5.12 ซ้าย ภาพแสดงสามเหลี่ยมไม่มีมุมถึง 90 องศา กลาง ภาพสามเหลี่ยมมุมฉากและ ขวา
สามเหลี่ยมมุมป้าน
โดยมีวิธีคานวณหาสามเหลี่ยม Delaunay ดังต่อไปนี้
1. กาหนดจุดนอก space นี้แล้วสร้างสามเหลี่ยมโดยร่วมกับอีกสองจุดใน space
2. เพิ่มจุดใน space เข้าไปในกลุ่มสามเหลี่ยมที่สร้างไว้
3. คานวณหา circum-circle ทุกอันเพื่อหาสามเหลี่ยมที่ล้อมรอบจุดใหม่นี้ ซึ่งสามเหลี่ยมที่หาพบจะไม่ใช่
Delaunay triangle ให้ลบสามเหลี่ยมนั้นทิ้ง
4. จากขั้นที่สองสร้างสามเหลี่ยมใหม่ จากจุดที่เพิ่มเข้าไปในขั้นสอง และจุดที่โดนลบสามเหลี่ยมทิ้งไป
5. ไปยังข้อสองจนกว่าทุกจุดใน space จะถูกเพิ่มเข้าไปใน สามเหลี่ยม Delaunay จะได้Polygon บรรจุอยู่
ในรูปปิดดังรูป
5.2.5 การทาโมเดลแบบโซลิด (SOLID Modeling)
ในการทาโมเดลแบบโซลิดสามารถทาได้โดย
1) รับข้อมูลจาก เมาส์ หรือ Graphic Tablet เป็นเส้นสเกตช์ตามรูปร่างทางเรขาคณิต เข้ามาเป็นจุดที่
ลากเชื่อมต่อกันโดยการสเกตช์จากนั้นจึงนาจุดที่ได้ไปลดปริมาณลงโดยใช้อัลกอริทึมตามงานวิจัย [10]
2) เชื่อมรอยต่อให้เป็นรูปโพลีกอนแบนเรียบแบบปิด โดยใช้การลากเส้นจากจุดเริ่มต้นเข้าไปหาจุด
ท้ายสุด ดังแสดงในภาพที่ 5.13
16
ภาพที่ 5.13 แสดงรูปปิดที่ได้จากการเชื่อมต่อจุดเริ่มต้นและจุดท้ายเข้าด้วยกัน
3) คานวณจุดกึ่งกลางหรือจุดตัดของเส้นทแยงมุมของรูปปิดเพื่อเตรียมสร้าง Delaunay triangle
4) สร้าง Delaunay triangulation เข้าไปในรูปปิดดังรูปที่ 5.14
ภาพที่ 5.14 แสดงรูปปิดที่ถูกบรรจุสามเหลี่ยม Delaunay เข้าไป
4) คัดลอก Polygonและยก Polygon ที่ได้ขึ้นมาตามค่าที่ผู้ใช้กาหนดดังแสดงตามภาพที่ 5.15
ภาพที่ 5.15 แสดงการสร้างPolygon เพื่อเตรียมทาเป็นโมเดล 3 มิติที่สมบูรณ์
17
5) สร้าง polygon เชื่อมจุดทั้งหมดเข้าด้วยกัน
ภาพที่ 5.16 แสดงโมเดลสามมิติแบบโซลิดที่สมบูรณ์
5.3 เครื่องมือที่ใช้ในการพัฒนา
Hardware
- Graphic Tablet ใช้เป็น input device ในการสเกตช์ภาพเพื่อสร้างโมเดล 3 มิติ
Software(เพิ่ม OS,Environment ใช้พัฒนา)
- Ubuntu
- Eclipse IDEfor Java เพื่อใช้เขียนหรือแก้ไขโปรแกรมภาษา Java
- Java3D เพื่อใช้ในการสร้างโมเดล 3 มิติ
- Oracle VM VirtualBox
5.4 รายละเอียดโปรแกรมที่พัฒนา
Input/Output Specification
- Input เป็นเส้นและพิกัดที่มาจากการใช้Graphic Tablet
- Output ไฟล์โมเดล 3 มิตินามสกุล.obj ซึ่งสามารถนาไปต่อยอดในโปรแกรมสร้างโมเดลสาม
มิติอื่นได้
18
Functional Specification
Functionที่โปรแกรมจะต้องทาได้มีดังนี้
1. Functionในการ import รูปภาพเพื่อใส่ Sketch Effect เพื่อนามาแสดงเป็น
ภาพต้นแบบให้ผู้ใช้sketch ตาม
2. Functionในการแปลงเส้นที่ Sketch เป็นโมเดล 3 มิติ แบบฟรีฟอร์มหรือ
แบบโซลิด
3. Functionในการ Exportโมเดล 3 มิติออกมาเป็นไฟล์.obj
โครงสร้างของซอฟแวร์(Design)
ภาพที่ 5.1 8 แสดงโครงสร้างของซอฟแวร์
ซอฟต์แวร์ประกอบเป็น 4 ส่วนคือ
1. Sketch Effect Unit ส่วนที่รับรูปเข้ามาจากโปรแกรม GIMP โดยในส่วนนี้จะใช้ก็ต่อเมื่อผู้ใช้
ต้องการแปลงรูปภาพที่ไม่ใช่ภาพวาดเพื่อใช้เป็นแบบในการร่างภาพโดย Graphic Tablet เข้ามา
แสดงภาพใน CPS’ketchuu
2. Input Unit เป็นการรับจุดหรือเส้นจากการสเกตช์ภาพของผู้ใช้จาก Graphic Tablet หรือ
mouse
CPS’ketchuu
Input Unit
รับตาแหน่งจุดจากการสเกตช์ด้วย
Graphic Tablet หรือMouse
Sketch Effect Unit
หาขอบของรูปภาพเพื่อให้ผู้ใช้วาดตาม
Sketch to 3D
Model Unit
สร้างโมเดลสามมิติ
จากเส้นที่รับเข้ามา
Output Unit
แปลงโมเดลสามมิติ
เป็นไฟล์นามสกุล
.obj
19
3. Sketch to 3D Model Unit เป็นส่วนที่ใช้Algorithm ในการสร้างโมเดล 3 มิติจากเส้นที่
สเกตช์มาจาก Input Unit
4. Output Unit ทาหน้าที่แปลงข้อมูล 3D ของJava 3Dเป็นไฟล์โมเดลนามสกุล .obj
แหล่งที่มาของ Source Code ที่นามาประกอบ
1.ไลบารี่สาหรับสร้างสามเหลี่ยมDelaunay
- quickhull3d.1.4.jar, LEE BYRON , Carnegie Mellon University
- mesh.jar, LEE BYRON , Carnegie Mellon University
2. ไลบารี่จาว่าสาหรับการทางานทางด้านสามมิติ
- The Java 3D API, version 1.3 , Sun Microsystems, Inc
5.5 ขอบเขตและข้อจากัดของโปรแกรมที่พัฒนา
- โปรแกรมสามารถสร้างโมเดล 3 มิติแบบฟรีฟอร์มและแบบ แคดเท่านั้น
- โปรแกรมไม่รองรับการทางานในส่วนของ การยืด ( Extrusion) ตัด (Cut) หรือ การจัดการลวดลายบน
พื้นผิวโมเดล (Texture) จึงทาให้ไม่สามารถสร้างโมเดลที่มีรายละเอียดมากไปกว่า โมเดลที่ได้จากการ
สเกตช์ที่โปรแกรมรับเข้ามาในตอนเริ่มต้น
- โปรแกรมต้องทางานอยู่บนจาวาเวอร์ชวลมาชีน
- โมเดล 3 มิติที่สร้างจาเป็นต้องมีลักษณะสมมาตรในด้านหน้าและหลัง หรือซ้ายและขวา
- การแก้ไขหรือเพิ่มเติมรายละเอียดบนโมเดลภายหลังสร้างเสร็จแล้ว ไม่สามารถทาได้ด้วยโปรแกรมนี้
หากต้องการแก้ไขจะต้อง export โมเดลและใช้โปรแกรมอื่นในการแก้ไขแทน
20
6.กลุ่มผู้ใช้โปรแกรม
1. ผู้ที่ทางานเกี่ยวข้องกับงานทางด้านสามมิติ หรืองานที่เกี่ยวข้องกับการสร้างโมเดลสามมิติ เช่น งาน
ออกแบบ
7.ผลการทดสอบโปรแกรม
FunctionalTesting
- การทดสอบในส่วนนาเข้าข้อมูลเส้นวาดและสร้างโมเดลสามมิติ
Input รูปแบบของโมเดล Output ความถูกต้อง
Solid ถูกต้อง
Freeform ถูกต้อง
Solid
ถูกต้อง
Freeform
ถูกต้อง
ตารางที่ 6.1 แสดงผลการทดสอบนาเข้าข้อมูลเส้นวาดและสร้างโมเดลสามมิติ
การทดสอบในส่วนรับข้อมูลเส้นวาดจากผู้ใช้พบว่าได้ผลเป็นที่น่าพอใจเมื่อใส่ข้อมูลขาเข้าเป็นภาพที่
ตรงตามเงื่อนไขที่กาหนดไว้
- การทดสอบส่วนส่งออกโมเดลเป็นไฟล์แบบ objและนาไปเปิดกับโปรแกรมประยุกต์อื่นๆสามารถทางานได้
ถูกต้อง
21
- การทดสอบในส่วนการหาเส้นขอบของภาพเพื่อช่วยในการวาด
Input Output ความถูกต้อง
ถูกต้อง
ถูกต้อง
ตารางที่ 6.2 แสดงผลการทดสอบส่วนการหาเส้นขอบของภาพเพื่อช่วยในการวาด
การทดสอบในส่วนการหาเส้นขอบของภาพเพื่อช่วยในการวาดพบว่าโปรแกรมสามารถหาเส้นขอบได้
และสามาถแสดงผลออกมาได้ถูกต้อง
22
Usability Testing
- การทดสอบความง่ายในการใช้งานของส่วนโปรแกม
การประเมินการใช้งานทางผู้พัฒนาได้ใช้วิธีการประเมินแบบจาคอบเนลสันฮิลลิสติก (Jakob Nielsen's
heuristic) โดยได้ให้ผู้รับการทดสอบจานวน 5 คนทดลองใช้โปรแกรมและประเมินผลของโปรแกรมซึ่งได้ผล
เป็นดังต่อไปนี้
คะแนนที่ได้รับ (จากคะแนนเต็ม 5 คะแนน)
Visibility of system status: 4.0
Match between system and the real world: 4.4
User control and freedom: 4.5
Consistency and standards: 4.1
Error prevention: 4.7
Recognition rather than recall: 4.6
Flexibility and efficiency of use: 4.8
Aesthetic and minimalist design: 4.4
Help users recognize,diagnose, and recover from
errors:
3.9
Help and documentation: 4.1
จากผลการทดสอบความง่ายในการใช้งานโปรแกรมพบว่า โปรแกรม CPS’ketchuu สามารถใช้งานได้ง่ายและใช้
เวลาในการเรียนรู้ที่น้อย แต่ไม่สามารถรองรับข้อผิดพลาดที่เกิดขึ้นได้ดีเท่าที่ควรและไม่สามารถบอกสถานะของโปรแกรมให้
ผู้ใช้รับราบได้
8.ปัญหาและอุปสรรค
จากขั้นตอนการสร้างโปรแกรม ส่วนสร้างและแก้ไขโพลีกอน
ปัญหา จานวนโพลีกอนที่เกิดขึ้นในขั้นตอนการสร้างสามเหลี่ยมดีลัวเนย์มีจานวนมากเกินความ
จาเป็น ทาให้การนาโพลีกอนที่ได้ไปประมวลผลเกิดความล่าช้า
23
การแก้ไข ใช้การลดจานวนจุดที่นาเข้าจากเส้นวาดจากผู้ใช้โดยนาไปประมาณหาค่าเฉลี่ยของ
จุดที่อยู่ในบริเวณใกล้กันก่อนจึงนาไปประมวลผลในขั้นตอนการสร้างสามเหลี่ยมดีลัวเนย์
ปัญหา ไลบารี่ที่ผู้พฒนาใช้ในการสร้างสามเหลี่ยมดีลัวเนย์มีความผิดพลาดในหลายส่วนทาให้
ค่าของโพลีกอนที่ได้ไม่ถูกต้องตามที่ผู้พัฒนาต้องการ
การแก้ไข นาไลบารี่ดั้งเดิมมาปรับปรุงด้วยการเขียนโค้ดเพิ่มลงไป เพื่อให้สามารถทางานได้
ถูกต้อง
9. แนวทางการพัฒนาและการประยุกต์ใช้ร่วมกับงานอื่นๆ
1. พัฒนาส่วนจัดการลวดลายบนพื้นผิวโมเดล (Texture) เพื่อให้สามารถสร้างโมเดลที่สมบูรณ์ได้ในโปรแกรม
2.พัฒนาส่วนปรับเปลี่ยนรูปร่าง โดยการยืด ( Extrusion) และตัด (Cut) เพื่อให้ผู้ใช้งานโปรแกรมสามารถ
ปรับเปลี่ยนรูปร่างของโมเดลได้ภายหลังจากการสร้างโมเดลแล้ว
3. พัฒนาโปรแกรม เพื่อลดข้อจากัดของโมเดลที่สามารถสร้างได้ลง
4. พัฒนาให้โปรแกรมสามารถสร้างไฟล์ที่ใช้งานร่วมกับโปรแกรมประยุกต์อื่นๆ เช่น Maya , 3DMax ได้
5. เพิ่มเติมส่วนแนะนาวิธีการใช้งานและการบอกสถานะปัจจุบันโปรแกรม
6. เพิ่มเติมส่วนจัดการข้อผิดพลาด (Error) ที่เกิดขึ้นเพื่อลดภาระและการจดจาของผู้ใช้งาน
10. ข้อสรุปและข้อเสนอแนะ
จากการใช้งานโปรแกรม พบว่าโปรแกรมช่วยอานวยความสะดวกในการขึ้นโมเดลเบื้องต้น โดยจะ
สามารถใช้สร้างโมเดลทั้งแบบแคดและแบบฟรีฟอร์มได้ด้วยการวาดเพียงครั้งเดียว ในงานที่ไม่ต้องการความ
รายละเอียดถูกต้อง การใช้โปรแกรม CP’Sketchuu จะสะดวกกว่าการใช้โปรแกรมแบบ WIMP ทั่วไป ข้อ
เสียเปรียบของโปรแกรมนี้ คือ ทาได้เพียงการขึ้นรูปเพียงครั้งเดียวไม่สามารถเพิ่มเติม ต่อ ยืด ตัด โมเดลได้ทาให้
24
การดัดแปลงโมเดลทาไม่ได้ต้องไปดัดแปลงต่อในโปรแกรมอื่นแทน และรายละเอียดของโมเดลอาจมีความ
ผิดพลาดไม่ถูกต้องได้
เนื่องด้วยโปรแกรมถูกพัฒนาด้วยภาษาจาว่าจึงสามารถนาไปใช้งานได้ในหลาย Platformเมื่อมีการลง
Java Virtual Machine ซึ่งในที่นี้จึงสามารถนามาใช้งานบน Linux ได้
25
11. บรรณานุกรม
[1] Takeo Igarashi ,Satoshi Matsuoka , and Hideo Tanaka , Teddy: A Sketching Interface for 3D Freeform
Design.Los Angeles CA USA : SIGGRAPH 99,pages 5-6 , 1999.
[2] Hong Zhang Y and Daniel Liang, ComputerGraphics Using Java™ 2D and 3D , 1st ed. United States
of America : Pearson Education , 2007.
1. [3] Daniel Selman , "Java 3D Programming , 1st ed. United States of America : Manning Publication,
2002.
2. [4] Eclipse,” Eclipse,” 2010.[Online]. Available : http://www.eclipse.org [Access : July 2010].
3. [5] The Java 3D Community Site , “Code Repository ,”February 2002 . [Online]. Available :
http://code.j3d.org [Access : July 2010 ].
4. [6] Peter Mikhalenko , “Create graphics applications with Java 3D ,” December 2007. [Online].
Available :
5. http://blogs.techrepublic.com.com/programming-and-development/?p=578 [Access : July 2010 ].
[7] Idsketching , “Toolbox: Level of Sketching ,” February 2009 .[Online].Available :
http://www.idsketching.com/toolbox/toolbox-levels-of-sketching [Access : July 2010 ].
[8] Tiago Lemos de Araujo Machado, Alex Sandro Gomes ,and Marcelo Walter , A comparison study:
sketch-based interface versus WIMP interfaces in three-dimensional modeling tasks , Los Angeles CA
USA : IEEE ,pages 1-2, 2009
6. [9] L. Prasad , Morphological analysis of shapes CNLS Newsletter, 139: 1-18, July 1997.
7. [10] ChenYang ,Sketch-based Modeling of Parameterized Objects, P.R. China : Tsinghua University
,pages 18-20, 2006
8. [11] Matthew T. Cook , Arvin Agah , A Survey of sketch-based 3D modeling technique , Kansas USA :
Science Direct, pages 4 -10, 2009.
26
13. ภาคผนวก
คู่มือการติดตั้งโปรแกรม
1.ติดตั้งJava Virtual Machine โดยดาวน์โหลดจาก http://www.java.com/en/download/ และเลือกให้ตรงกับ
ระบบปฎิบัตารที่ใช้โดยในที่นี้จะนาเสนอการติดตั้งบนระบบปฏิบัติการ Linux ดังต่อไปนี้
1.1 เปลี่ยน permission ของไฟล์โดยการพิมพ์คาสั่ง
chmod a+x jre-6u<version>-linux-i586.bin
1.2 ตรวจสอบว่าผู้ติดตั้งมีสถานะที่พร้อมจะสั่งติดตั้งได้โดยพิมพ์คาสั่ง
ls -l
1.3 เปลี่ยนตาแหน่งไปยังแฟ้มที่ต้องการติดตั้งโดยพิมพ์คาสั่ง
cd <directory path name>
1.4 สั่งติดตั้งโปรแกรม
./jre-6u<version>-linux-i586.bin
จากนั้นจะปรากฎหน้าต่างข้อตกลงและเงื่อนไขที่ต้องยอมรับให้กด spacebar เพื่อดาเนินการในขั้นตอน
ต่อไป และกด yes เพื่อเริ่มการติดตั้ง
1.5 เมื่อการติดตั้งสมบูรณ์จะปรากฎข้อความ Done
27
1.6 ตรวจสอบการติดตั้งโดยพิมพ์คาสั่ง
ls
2.ติดตั้ง Java3D
ดาวน์โหลดไลบารี่ java3d จาก https://java3d.dev.java.net/binary-builds.html จากนั้นจึงพิมพ์คาสั่ง
cd /usr/java/jdk1.6.0_01/jre
sh /path-to-download-files/java3d-1_5_1-linux-i586.bi
3.โปรแกรมสามารถเริ่มต้นได้ทันทีโดยไม่จาเป็นต้องติดตั้ง
4. กรณีที่โปรแกรมแสดงรูปภพไม่ถูกต้องให้ตรวจสอบว่าแฟ้ม Imagesอยู่ที่ตาแหน่งเดียวกับโปรแกรมหรือไม่
28
คู่มือการใช้งานโปรแกรม
1.ดับเบิ้ลคลิกที่ไฟล์ชื่อ CPSketchuu.jar จะพบกับโปรแกรมดังรูปที่ 13.1 โดยหน้าต่างจะแบ่งเป็นส่วนต่างๆดังนี้
รูปที่ 1a แสดงหน้าต่างการใช้งานของโปรแกรม
1.1 บริเวณแสดงเครื่องมือสาหรับการทางานในโหมดวาด
1.2 ปุ่ม Load BG Img สาหรับนาเข้ารูปภาพพื้นหลัง
1.3 ปุ่ม Edge Detectionสาหรับหาขอบของภาพพื้นหลังที่นาเข้ามาเพื่อช่วยให้สามารถวาดตามได้ง่ายขึ้น
1.4 ปุ่ม Rectangle สาหรับเลือกวาดรูปสี่เหลี่ยม
1.5 ปุ่ม Freeform สาหรับเลือกวาดเส้นอิสระ
1.1
1.2
1.3
1.4
1.5
1.6
1.7
1.8
1.11
1.10
1.12
1.14
1.15
1.13
1.9
1.16
1.17
29
1.6 ปุ่ม Line สาหรับเลือกวาดเส้นตรง
1.8 ปุ่ม Freeform Model สาหรับสร้างโมเดลแบบฟรีฟอร์มตามเส้นที่วาดเอาไว้
1.9 ปุ่ม Solid Model สาหรับสร้างโมเดลสามมิติแบโซลิดจากเส้นที่วาดเอาไว้
1.10 บริเวณแสดงเครื่องมือสาหรับการทางานในโหมดสามมิติ
1.11 ปุ่ม Export Modelสาหรับส่งออกโมเดลเป็นไฟล์ประเภท obj
1.12 บริเวณสาหรับการวาดภาพ เพื่อนาไปสร้างเป็นโมเดลสามมิติ
1.13 บริเวณแสดงคาสั่งสาหรับย่อหรือขยายขนาดโมเดลสามมิติ
1.14 บริเวณแสดงคาสั่งสาหรับแสดงลักษณะของโมเดล
1.15 บริเวณแสดงคาสั่งสาหรับนาเข้าลวดลายบนตัวโมเดล
1.16 บริวเวณแสดงคาสั่งสาหรับแก้ไขโมเดล
1.17 แถบเครื่องมือแสดงคาสั่ง
2. ในกรณีที่ต้องการนาเข้าภาพพื้นหลัง ให้กดที่ปุ่ม Load BG Img ( ปุ่มที่ 1.2 )จะปรากฎหน้าต่างดังแสดงในรูป
ที่ จากนั้นจึงเลือกไฟล์รูปภาพที่ต้องการ เพื่อนาเข้ามาเป็นแบบในการสร้างโมเดลสามมิติ
30
รูปที่ 1b แสดงหน้าต่างการนาเข้าภาพพื้นหลัง
3. ในกรณีที่ภาพมีขอบไม่ชัดเจน สามารถกดที่ปุ่ม Edge Detectionเพื่อให้สามารถเห็นขอบของภาพชัดเจนขึ้น
ได้
31
รูปที่ 1c แสดงหน้าต่างโปรแกรมหลังการหาขอบภาพ
4. เลือกรูปแบบของเส้นที่ต้องการจากแถบเครื่องมือทางด้านขวาของโปรแกรม จากนั้นจึงวาดลงบนบริเวณตรง
กลางของโปรแกรม
32
รูปที่ 1d แสดงการวาดลงบนโปรแกรม
5. หลังจากได้เส้นที่ต้องการแล้วให้กดที่ปุ่มFreeform Model เพื่อสร้างโมเดลแบบฟรีฟอร์มหรือ กดที่ปุ่ม Solid
Model เพื่อสร้างโมเดลแบบโซลิด
6. โปรแกรมจะแสดงโมเดลสามมิตที่ถูกสร้างขึ้น
33
รูปที่ 1e แสดงโมเดลสามมิติที่เกิดขึ้นภายหลังการวาด
7. ผู้ใช้งานสามารถหมุนกล้องเพื่อดูโมเดลสามมิติที่เกิดขึ้นได้โดยการคลิกเมาส์ซ้ายค้างบนโมเดลสามมิติที่
เกิดขึ้น จากนั้นจึงเลื่อนเมาส์ไปตามทิศทางที่ต้องการ
8. ในกรณีที่ต้องการส่งออกโมเดลเพื่อนาไปใช้กับโปรแกรมประยุกต์อื่นๆให้กดที่ปุ่ม Export Model และเลือก
ตาแหน่งที่ต้องการบันทึก
9. หากต้องการสร้างโมเดลชิ้นใหม่ให้เลือกที่แถบเมนูด้านบนของโปรแกรมโดยเลือกที่ File -> Init
10. เมื่อต้องการจบการทางานของโปรแกรมให้เลือกที่แถบเมนูด้านบนของโปรแกรมโดยเลือกที่ File -> Exit

More Related Content

Similar to Full report

โครงงานพัฒนาเครื่องมือ 5
โครงงานพัฒนาเครื่องมือ 5โครงงานพัฒนาเครื่องมือ 5
โครงงานพัฒนาเครื่องมือ 5JoyCe Zii Zii
 
โครงงานพัฒนาเครื่องมือ 5
โครงงานพัฒนาเครื่องมือ 5โครงงานพัฒนาเครื่องมือ 5
โครงงานพัฒนาเครื่องมือ 5Aungkana Na Na
 
โครงงานพัฒนาเครื่องมือ5
โครงงานพัฒนาเครื่องมือ5โครงงานพัฒนาเครื่องมือ5
โครงงานพัฒนาเครื่องมือ5Aungkana Na Na
 
โครงงานพัฒนาเครื่องมือ 5
โครงงานพัฒนาเครื่องมือ 5โครงงานพัฒนาเครื่องมือ 5
โครงงานพัฒนาเครื่องมือ 5Aungkana Na Na
 
โครงงานพัฒนาเครื่องมือ 5
โครงงานพัฒนาเครื่องมือ 5โครงงานพัฒนาเครื่องมือ 5
โครงงานพัฒนาเครื่องมือ 5Aungkana Na Na
 
ใบงานที่ 8 เรื่อง โครงงานประเภท
ใบงานที่ 8 เรื่อง โครงงานประเภทใบงานที่ 8 เรื่อง โครงงานประเภท
ใบงานที่ 8 เรื่อง โครงงานประเภทPermtrakul Khammoon
 
โครงงานประเภท “การพัฒนาเครื่องมือ”
โครงงานประเภท “การพัฒนาเครื่องมือ”โครงงานประเภท “การพัฒนาเครื่องมือ”
โครงงานประเภท “การพัฒนาเครื่องมือ”Mymi Santikunnukan
 
รายงานโปรแกรมสื่อบทเรียนสำหรับระบบการเรียนรู้ออนไลน์ เรื่อง ส่วนประกอบของคอมพ...
รายงานโปรแกรมสื่อบทเรียนสำหรับระบบการเรียนรู้ออนไลน์ เรื่อง ส่วนประกอบของคอมพ...รายงานโปรแกรมสื่อบทเรียนสำหรับระบบการเรียนรู้ออนไลน์ เรื่อง ส่วนประกอบของคอมพ...
รายงานโปรแกรมสื่อบทเรียนสำหรับระบบการเรียนรู้ออนไลน์ เรื่อง ส่วนประกอบของคอมพ...
Noppakhun Suebloei
 
ใบงานท 7
ใบงานท   7ใบงานท   7
ใบงานท 7Winwin Nim
 
ใบงานที่8
ใบงานที่8ใบงานที่8
ใบงานที่8Patpeps
 
โครงงานคอมพิวเตอร์เรื่อง การออกแบบอาคาร บ้าน เรือน ด้วยโปรแกรม 3 มิติ
โครงงานคอมพิวเตอร์เรื่อง การออกแบบอาคาร บ้าน เรือน ด้วยโปรแกรม 3 มิติโครงงานคอมพิวเตอร์เรื่อง การออกแบบอาคาร บ้าน เรือน ด้วยโปรแกรม 3 มิติ
โครงงานคอมพิวเตอร์เรื่อง การออกแบบอาคาร บ้าน เรือน ด้วยโปรแกรม 3 มิติ
พัน พัน
 

Similar to Full report (20)

โครงงานพัฒนาเครื่องมือ 5
โครงงานพัฒนาเครื่องมือ 5โครงงานพัฒนาเครื่องมือ 5
โครงงานพัฒนาเครื่องมือ 5
 
โครงงานพัฒนาเครื่องมือ 5
โครงงานพัฒนาเครื่องมือ 5โครงงานพัฒนาเครื่องมือ 5
โครงงานพัฒนาเครื่องมือ 5
 
โครงงานพัฒนาเครื่องมือ5
โครงงานพัฒนาเครื่องมือ5โครงงานพัฒนาเครื่องมือ5
โครงงานพัฒนาเครื่องมือ5
 
โครงงานพัฒนาเครื่องมือ 5
โครงงานพัฒนาเครื่องมือ 5โครงงานพัฒนาเครื่องมือ 5
โครงงานพัฒนาเครื่องมือ 5
 
โครงงานพัฒนาเครื่องมือ 5
โครงงานพัฒนาเครื่องมือ 5โครงงานพัฒนาเครื่องมือ 5
โครงงานพัฒนาเครื่องมือ 5
 
Dthgh
DthghDthgh
Dthgh
 
Dthgh
DthghDthgh
Dthgh
 
ใบงานที่ 8 เรื่อง โครงงานประเภท
ใบงานที่ 8 เรื่อง โครงงานประเภทใบงานที่ 8 เรื่อง โครงงานประเภท
ใบงานที่ 8 เรื่อง โครงงานประเภท
 
โครงงานประเภท “การพัฒนาเครื่องมือ”
โครงงานประเภท “การพัฒนาเครื่องมือ”โครงงานประเภท “การพัฒนาเครื่องมือ”
โครงงานประเภท “การพัฒนาเครื่องมือ”
 
7
77
7
 
7
77
7
 
งานที่5
งานที่5งานที่5
งานที่5
 
รายงานโปรแกรมสื่อบทเรียนสำหรับระบบการเรียนรู้ออนไลน์ เรื่อง ส่วนประกอบของคอมพ...
รายงานโปรแกรมสื่อบทเรียนสำหรับระบบการเรียนรู้ออนไลน์ เรื่อง ส่วนประกอบของคอมพ...รายงานโปรแกรมสื่อบทเรียนสำหรับระบบการเรียนรู้ออนไลน์ เรื่อง ส่วนประกอบของคอมพ...
รายงานโปรแกรมสื่อบทเรียนสำหรับระบบการเรียนรู้ออนไลน์ เรื่อง ส่วนประกอบของคอมพ...
 
ใบงานท 7
ใบงานท   7ใบงานท   7
ใบงานท 7
 
ใบงานที่8
ใบงานที่8ใบงานที่8
ใบงานที่8
 
7
77
7
 
ใบงาน7
ใบงาน7ใบงาน7
ใบงาน7
 
ใบงาน7
ใบงาน7ใบงาน7
ใบงาน7
 
ใบงาน7
ใบงาน7ใบงาน7
ใบงาน7
 
โครงงานคอมพิวเตอร์เรื่อง การออกแบบอาคาร บ้าน เรือน ด้วยโปรแกรม 3 มิติ
โครงงานคอมพิวเตอร์เรื่อง การออกแบบอาคาร บ้าน เรือน ด้วยโปรแกรม 3 มิติโครงงานคอมพิวเตอร์เรื่อง การออกแบบอาคาร บ้าน เรือน ด้วยโปรแกรม 3 มิติ
โครงงานคอมพิวเตอร์เรื่อง การออกแบบอาคาร บ้าน เรือน ด้วยโปรแกรม 3 มิติ
 

More from Nutthachai Thaobunrueang

โครงงาน การแต่งกายในอาเซียน
โครงงาน การแต่งกายในอาเซียนโครงงาน การแต่งกายในอาเซียน
โครงงาน การแต่งกายในอาเซียนNutthachai Thaobunrueang
 
โครงงาน การแต่งกายในอาเซียน
โครงงาน การแต่งกายในอาเซียนโครงงาน การแต่งกายในอาเซียน
โครงงาน การแต่งกายในอาเซียนNutthachai Thaobunrueang
 
เฉลยข้อสอบวิชา สุขศึกษาและพลศึกษาฯ รหัสวิชา 06 51
เฉลยข้อสอบวิชา สุขศึกษาและพลศึกษาฯ รหัสวิชา 06 51เฉลยข้อสอบวิชา สุขศึกษาและพลศึกษาฯ รหัสวิชา 06 51
เฉลยข้อสอบวิชา สุขศึกษาและพลศึกษาฯ รหัสวิชา 06 51Nutthachai Thaobunrueang
 
เฉลยวิชาสุขศึกษา ศิลปะ การงานอาชีพฯ รหัสวิขา 06 50
เฉลยวิชาสุขศึกษา ศิลปะ การงานอาชีพฯ รหัสวิขา 06 50เฉลยวิชาสุขศึกษา ศิลปะ การงานอาชีพฯ รหัสวิขา 06 50
เฉลยวิชาสุขศึกษา ศิลปะ การงานอาชีพฯ รหัสวิขา 06 50Nutthachai Thaobunrueang
 
โครงงานคอมพิวเตอร์นะ
โครงงานคอมพิวเตอร์นะโครงงานคอมพิวเตอร์นะ
โครงงานคอมพิวเตอร์นะNutthachai Thaobunrueang
 
โครงงานคอมพ วเตอร
โครงงานคอมพ วเตอร โครงงานคอมพ วเตอร
โครงงานคอมพ วเตอร Nutthachai Thaobunrueang
 
โครงงานคอมพ วเตอร
โครงงานคอมพ วเตอร โครงงานคอมพ วเตอร
โครงงานคอมพ วเตอร Nutthachai Thaobunrueang
 
โครงงานคอมพิวเตอร์
โครงงานคอมพิวเตอร์  โครงงานคอมพิวเตอร์
โครงงานคอมพิวเตอร์ Nutthachai Thaobunrueang
 

More from Nutthachai Thaobunrueang (20)

โครงงาน การแต่งกายในอาเซียน
โครงงาน การแต่งกายในอาเซียนโครงงาน การแต่งกายในอาเซียน
โครงงาน การแต่งกายในอาเซียน
 
โครงงาน การแต่งกายในอาเซียน
โครงงาน การแต่งกายในอาเซียนโครงงาน การแต่งกายในอาเซียน
โครงงาน การแต่งกายในอาเซียน
 
เฉลยข้อสอบวิชา สุขศึกษาและพลศึกษาฯ รหัสวิชา 06 51
เฉลยข้อสอบวิชา สุขศึกษาและพลศึกษาฯ รหัสวิชา 06 51เฉลยข้อสอบวิชา สุขศึกษาและพลศึกษาฯ รหัสวิชา 06 51
เฉลยข้อสอบวิชา สุขศึกษาและพลศึกษาฯ รหัสวิชา 06 51
 
Onet0651
Onet0651Onet0651
Onet0651
 
Onet06 52
Onet06 52Onet06 52
Onet06 52
 
Key onet m6_housework_53
Key onet m6_housework_53Key onet m6_housework_53
Key onet m6_housework_53
 
06 e53
06 e5306 e53
06 e53
 
06 art50
06 art5006 art50
06 art50
 
เฉลยวิชาสุขศึกษา ศิลปะ การงานอาชีพฯ รหัสวิขา 06 50
เฉลยวิชาสุขศึกษา ศิลปะ การงานอาชีพฯ รหัสวิขา 06 50เฉลยวิชาสุขศึกษา ศิลปะ การงานอาชีพฯ รหัสวิขา 06 50
เฉลยวิชาสุขศึกษา ศิลปะ การงานอาชีพฯ รหัสวิขา 06 50
 
ใบงานท 9-16
ใบงานท   9-16ใบงานท   9-16
ใบงานท 9-16
 
ใบงานท 9-16
ใบงานท   9-16ใบงานท   9-16
ใบงานท 9-16
 
ใบงานท 9-16
ใบงานท   9-16ใบงานท   9-16
ใบงานท 9-16
 
ใบงาน 9 16
ใบงาน 9 16ใบงาน 9 16
ใบงาน 9 16
 
โครงงานคอมพิวเตอร์นะ
โครงงานคอมพิวเตอร์นะโครงงานคอมพิวเตอร์นะ
โครงงานคอมพิวเตอร์นะ
 
โครงงานคอมพ วเตอร
โครงงานคอมพ วเตอร โครงงานคอมพ วเตอร
โครงงานคอมพ วเตอร
 
โครงงานคอมพ วเตอร
โครงงานคอมพ วเตอร โครงงานคอมพ วเตอร
โครงงานคอมพ วเตอร
 
โครงงานคอมพิวเตอร์
โครงงานคอมพิวเตอร์  โครงงานคอมพิวเตอร์
โครงงานคอมพิวเตอร์
 
Blog
BlogBlog
Blog
 
7 bio1
7 bio17 bio1
7 bio1
 
7 phy1
7 phy17 phy1
7 phy1
 

Full report

  • 1. 0 รหัสโครงการ 13p15c009 โปรแกรมสร้างโมเดลสามมิติจากการวาดอย่างง่าย (CPS’ketchuu) ประเภทโปรแกรม เพื่อประยุกต์ใช้งานสาหรับลินุกซ์(ระดับ นิสิต นักศึกษา) รายงานฉบับสมบูรณ์ เสนอต่อ ศูนย์เทคโนโลยีอิเล็กทรอนิกส์และคอมพิวเตอร์แห่งชาติ สานักงานพัฒนาวิทยาศาสตร์และเทคโนโลยีแห่งชาติ กระทรวงวิทยาศาสตร์และเทคโนโลยี ได้รับทุนอุดหนุนโครงการวิจัย พัฒนาและวิศวกรรม โครงการแข่งขันพัฒนาโปรแกรมคอมพิวเตอร์แห่งประเทศไทย ครั้งที่ 13 ประจาปีงบประมาณ 2553 โดย ผู้พัฒนา นาย พิชยุตม์ พีระเสถียร (หัวหน้าโครงการ) นาย ชลทิตย์ประทีปมโนวงศ์ อาจารย์ที่ปรึกษาโครงการ ผศ.ดร. พิษณุ คะนองชัยยศ สถาบันการศึกษา จุฬาลงกรณ์มหาวิทยาลัย
  • 2. 1 กิตติกรรมประกาศ โครงการวิจัยเรื่อง “โปรแกรมสร้างโมเดลสามมิติจากการวาดอย่างง่าย CPS’ketchuu” เป็นโครงการที่ ได้รับทุนอุดหนุนจากการการแข่งขันพัฒนาโปรแกรมคอมพิวเตอร์แห่งประเทศไทย ครั้งที่ 13 จัดโดยศูนย์ เทคโนโลยีอิเล็กทรอนิกส์และคอมพิวเตอร์แห่งชาติ สานักงานพัฒนาวิทยาศาสตร์และเทคโนโลยีแห่งชาติ ทั้งนี้โครงการนี้จะสาเร็จลุล่วงไปไม่ได้เลยหากปราศจากความอนุเคราะห์จาก ผศ.ดร.พิษณุ คนองชัยยศ อาจารย์ที่ปรึกษาโครงการที่ได้ติดตามและให้คาแนะนาที่เป็นประโยชน์ต่อการพัฒนาโครงการนี้มาโดยตลอด ชลทิตย์ประทีปมโนวงศ์ พิชยุตม์ พีระเสถียร
  • 3. 2 1.บทคัดย่อ โครงการนี้มีจุดประสงค์เพื่อสร้างโปรแกรมสร้างโมเดลสามมิติที่มีส่วนอินเตอร์เฟสตั้งอยู่บนพื้นฐาน ของการวาด ซึ่งถูกพัฒนาขึ้นมาเพื่อลดความยุ่งยากในสร้างโมเดลสามมิติด้วยอินเตอร์เฟสแบบดับบลิวไอเอ็มพี ซึ่งเป็นวิธีแบบดั้งเดิม เนื่องจากผู้ใช้งานส่วนมากจะคุ้นเคยกับวิธีการวาดภาพซึ่งเป็นพื้นฐานของการทางาน ทางด้านศิลปะอยู่แล้ว ผู้ใช้โปรแกรมจะวาดเส้นแบบ 2 มิติด้วยอุปกรณ์ประเภท mouse หรือ Graphic Tablet จากนั้นโปรแกรมจะสร้างโมเดลสามมิติขึ้นตามเส้น ซึ่งวิธีการสร้างโมเดลสามมิติจะสามารถแบ่งออกเป็น 2 แบบตามลักษณะของโมเดลที่จะเกิดขึ้น คือ1.สร้างโมเดลแบบฟรีฟอร์มที่ตัวโมเดลที่เกิดขึ้นจะมีความหนาหรือ บางของแต่ละส่วนแต่งต่างกันไป โดยจะคานวณจากความกว้างและแคบของพื้นที่โดยพื้นที่ที่กว้างจะทาให้ โมเดลส่วนนั้นหนา และ พื้นที่ที่แคบจะทาให้โมเดลตรงส่วนนั้นบาง และ2. สร้างโมเดลแบบโซลิดที่ตัวโมเดล สามมิติจะมีความโค้งมนของตัวโมเดลน้อยและมีความเหมาะสมกับงานทางด้านสถาปัตยกรรมหรือวิศวกรรม มากกว่าโมเดลแบบฟรีฟอร์ม โครงการนี้ถูกพัฒนาขึ้นมาด้วยภาษาจาว่าเพื่อให้สามารถทางานได้บนหลาย ระบบปฎิบัติการและให้สามารถทางานได้แบบทันท่วงนี้ (Real-time)บนคอมพิวเตอร์ส่วนบุคคลทั่วไป Abstract This project is to provide a sketching interface 3D modeling program whichreduce the difficulty in tradition WIMP 3D modeling style. The user draws several 2D strokes interactively on the screen using whether mouse or graphic tabletand 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 eachregion of silhouette making wide areas fat,and narrowarea thin. The solid modeling will generate the non smooth model which is more suitable for the engineeringand architect work. This project is implemented by Java language in order to, and mesh construction is done in real time on standardPC. Key word: 3D modeling, sketch-based modeling, SBIM , Linux , Open source
  • 4. 3 2. ที่มาและความสาคัญของปัญหา การสร้างโมเดลสามมิติในปัจจุบันได้เข้ามามีบทบาทเป็นอย่างมากต่อการทางานในด้านต่างๆ เช่น การ ออกแบบผลิตภัณฑ์หรือสินค้าการออกแบบอาคาร การผลิตภาพยนตร์หรือการ์ตูนแอนิเมชัน ทาให้โปรแกรม และวิธีการสร้างโมเดลสามมิติได้รับการพัฒนาไปอย่างมาก แม้กระนั้นงานในด้านนี้กลับเป็นงานที่ยากและต้อง อาศัยเวลา เนื่องจากความสลับซับซ้อนของ อินเตอร์เฟสของโปรแกรมสร้างโมเดลจาลองแบบสามมิติใน ปัจจุบันที่เป็นแบบดับบลิวไอเอ็มพี [8] (WIMP: Window, Icon, Menu,Pointer) ซึ่งผู้ใช้จะต้องทางานผ่าน คาสั่งที่ยุ่งยากจานวนมากเพื่อให้ได้โมเดลสามมิติตามที่ต้องการ และถึงแม้ว่าอินเตอร์เฟสแบบนี้จะรองรับการ ทางานสร้างโมเดลทุกรูปแบบแต่ผู้ใช้ที่มีประสบการณ์น้อยจาเป็นต้องใช้เวลาและความพยายามสูง แม้แต่ในการ สร้างโมเดลสามมิติที่มีรายละเอียดไม่มากนักขึ้นมาชิ้นหนึ่ง ดังแสดงในภาพที่ 1.1 ภาพที่ 2.1 แสดงอินเตอร์เฟสแบบ WIMP ในโปรแกรม maya 2008
  • 5. 4 จากการสร้างโมเดลในปัจจุบันที่ยาก ทาให้มีการคิดค้นการขึ้นโมเดลสามมิติจากการสเกตช์ขึ้นซึ่งทาได้ ง่ายเนื่องจากมนุษย์ถนัดกับการใช้มือวาดเขียน ทาให้สามารถสร้างโมเดลสามมิติได้เร็วขึ้น การสเกตช์คือภาษา หนึ่งที่ใช้ในการสื่อสาร ใช้ในการจดบันทึกหรือออกแบบสิ่งที่วาดไว้ในจินตนาการของมนุษย์ ปัจจุบันได้มีการสร้างโปรแกรมสร้างโมเดลสามมิติที่ทาตามแนวคิดการสเกตช์หรือโปรแกรมแบบแบบ เอสไอบีเอม(Sketch-based interface for modelingหรือ SBIM) เช่น Google Sketchup ที่มีลักษณะการสร้าง แบบโซลิด (SOLID) ซึ่งสามารถใช้ได้โดยการร่างภาพที่เป็นรูปหน้าตัดของโมเดลสามมิติที่ต้องการและจึงยืด หน้าตัดออกมาเป็นโมเดลสามมิติ แต่มีข้อเสีย คือโปรแกรมไม่สามารถสร้างโมเดลสามมิติที่เป็นลักษณะโค้งนูน ได้หรือทาได้ยาก และโปรแกรมไม่สนับสนุนการทาโมเดล 3 มิติแบบฟรีฟอร์ม(Freeform) ดังแสดงในภาพที่ 1.2 ภาพที่2. 2 แสดงโมเดลที่ได้ใน Google Sketchup Teddy[1] เป็นโปรแกรมสร้างโมเดล 3 มิติ แบบเอสบีไอเอ็มที่มีลักษณะสนับสนุนการสร้างโมเดลแบบ ฟรีฟอร์มซึ่งสามารถสร้างโมเดลที่มีลักษณะเป็นทรงสมมาตรได้ง่าย ต่างจากงานแบบโซลิดที่จาเป็นต้องสร้าง โมเดลจากเส้นตายตัว (fixed line) และรูปร่างที่กาหนด (Fixed Shape) ดังแสดงในภาพที่ 1.3 กระนั้น Teddy ก็
  • 6. 5 ทาให้เกิดปัญหาการสร้างโมเดลที่ต้องการเหลี่ยมมุมหรือต้องการขนาดที่สามารถวัดได้ทาให้ Teddyไม่เหมาะ สาหรับงานที่ต้องการอัตราส่วนที่ถูกต้องหรือขนาดที่ชัดเจน ภาพที่ 2.3 แสดงโปรแกรม Teddy จากข้อจากัดของโปรแกรมดังที่กล่าวมา โครงงาน CPS’ketchuu จึงได้ถูกออกแบบมาเพื่อให้เป็น โปรแกรมแบบ เอสบีไอเอมที่เพิ่มความยืดหยุ่นในการทางานมากขึ้นและรวมข้อดีของทั้งสองโปรแกรมที่ได้ กล่าวข้างต้นเข้าไว้ด้วยกัน คือ โปรแกรมสามารถทางานได้ทั้งการสร้างโมเดล 3 มิติแบบฟรีฟอร์มที่สามารถ ปรับความระดับความนูนและโค้งงอได้และสร้างโมเดล 3 มิติแบบโซลิดได้ CPS’ketchuu จึงเป็นโปรแกรมสร้างโมเดลสามมิติที่มีส่วนอินเตอร์เฟสตั้งอยู่บนพื้นฐานของการวาด แบบเอสบีไอเอ็ม ซึ่งถูกพัฒนาขึ้นมาเพื่อลดความยุ่งยากในสร้างโมเดลสามมิติด้วยอินเตอร์เฟสแบบดับบลิว ไอเอ็มพี ซึ่งเป็นวิธีแบบดั้งเดิม เนื่องจากผู้ใช้งานส่วนมากจะคุ้นเคยกับวิธีการวาดภาพซึ่งเป็นพื้นฐานของการ ทางานทางด้านศิลปะอยู่แล้ว โดยการสเกตช์ที่ใช้ในโปรแกรมนี้จะเน้นไปทางด้านการสเกตช์ภาพที่ออกแบบ ในความคิดเพื่อนามาสร้างเป็นโมเดลสามมิติใช้งานต่อไปในการทางานในโหมดฟรีฟอร์ม ผู้ใช้โปรแกรมจะ
  • 7. 6 วาดเส้นแบบ 2 มิติด้วยอุปกรณ์ประเภท mouse หรือ Graphic Tablet จากนั้นโปรแกรมจะสร้าง 3D polygon surface ขึ้นตามเส้น ซึ่งความหนาหรือบางของตัวโมเดล จะคานวณจากความกว้างและแคบของพื้นที่โดยพื้นที่ที่ กว้างจะทาให้โมเดลส่วนนั้นหนา และ พื้นที่ที่แคบจะทาให้โมเดล ตรงส่วนนั้นบาง นอกจากนี้ผู้ใช้งานยัง สามารถเลือกโหมด โซลิด เพื่อสนับสนุนการสร้างโมเดลแบบโซลิด ตัวโปรแกรมถูกสร้างด้วยภาษาจาวา (JAVA) ให้เป็นโปรแกรมแบบopen source และสามารถสร้างโมเดล ได้แบบreal-time บนเครื่องพีซี(PC) แบบ มาตรฐาน
  • 8. 7 สารบัญ หน้า กิตติกรรมประกาศ 1 บทคัดยอ 2 ที่มาและความสาคัญของปัญหา 3 วัตถุประสงค์ 8 รายละเอียดการพัฒนา 8 เนื้อเรื่องย่อ (Story Board) 8 งานวิจัยและทฤษฎีที่เกี่ยวข้อง 9 คาศัพทและความหมาย 9 ระดับของการสเกตช์ 10 งานวิจัย Teddy 10 ทฤษฎีการสร้างสามเหลี่ยม Delaunay 14 การทาโมเดลแบบโซลิด 15 เครื่องมือที่ใช้ในการพัฒนา 16 รายละเอียดโปรแกรมที่พัฒนา 17 โครงสร้าง Software 18 แหล่งที่มาของ Source Code ที่นามาประกอบ 18 ขอบเขตและข้อจากัดของโปรแกรมที่พัฒนา 19 กลุ่มผู้ใช้โปรแกรม 19 ผลการทดสอบโปรแกรม 19 ปัญหาและอุปสรรค 22 แนวทางการพัฒนาและการประยุกต์ใช้ร่วมกับงานอื่นๆ 23 บรรณานุกรม 25 ภาคผนวก 26
  • 9. 8 4. วัตถุประสงค์ เพื่อสร้างโปรแกรมสร้างโมเดลสามมิติที่มีอินเตอร์เฟสแบบเอสบีไอเอ็ม(SBIM) 5.รายละเอียดการพัฒนา 5.1 - เนื้อเรื่องย่อ (StoryBoard) ภาพที่ 5.1 แสดงเนื้อเรื่องย่อ เนื้อเรื่องตัวอย่างการใช้งานโปรแกรม 1) นายสร้างสรรค์เป็นโปรแกรมเมอร์ต้องการพัฒนาเกมเกมหนึ่ง โดยต้องการให้มีตัวละครที่ เป็น 3 มิติแต่ว่า นายสร้างสรรค์ไม่มีความรู้ในการสร้างโมเดล 3 มิติเลย นายสร้างสรรค์จึงได้ใช้ CPS’ketchuu และได้พบว่าเขาสามารถสร้างตัวละครในเกมได้อย่างที่ต้องการ ได้ง่ายและ รวดเร็ว 2) นายพุชยิต เป็นนักวาดการ์ตูน กาลังต้องการจะทาให้การ์ตูนตัวเองเป็นการ์ตูนแอนิเมชัน แบบ 3 มิติจึงได้ลองใช้CPS’ketchuu พบว่าสามารถใช้วิธีวาดการ์ตูนในแบบที่ตนเองถนัดใน การสร้างโมเดล3มิติของตัวละครในการ์ตูนได้ทาให้งานออกมาได้ตามที่ต้องการและออกมา เหมือนตัวละครที่ใช้ตอนเป็นการ์ตูน 2 มิติ นาภาพเข้ามา เป็นพื้นหลัง ส่วนรับ input เส้น และติดต่อผู้ใช้ โมเดล3 มิติ.obj ผู้ใช้ ส่วนแปลง ภาพที่ สเกตช์เป็น โมเดล 3 มิติ ส่วนแปลง โมเดล 3 มิติ เป็นไฟล์ .obj สเกตช์ ภาพ รูปถ่าย ภาพร่างเพื่อ ใช้เป็นแบบ โมเดล 3 มิติ ข้อมูลจุดและเส้น
  • 10. 9 3) นางสาวณฐพร เป็นสถาปนิกออกแบบภายใน ต้องการสร้างงาน 3 มิติเพื่อเสนอลูกค้า โดย ภายในแบบที่ต้องการสร้างโมเดล 3 มิตินั้นมีวัตถุที่มีลักษณะโค้งมนเยอะมากมาย ซึ่งโปรแกรม Sketch Upเพื่อสร้างโมเดล 3 มิติทั่วไปความสามารถในการสร้างโมเดลที่โค้งมนนั้นน้อย นางสาวณฐพร จึงได้ลองใช้CPS’ketchuu พบว่าสามารถสร้างโมเดล 3 มิติที่โค้งมนได้ดี 4) นายตาวัน เป็นผู้ใช้คอมพิวเตอร์ทั่วไป ต้องการที่จะสร้างโมเดล 3 มิติจากภาพถ่าย ซึ่งนายตา วันได้ใช้โปรแกรมทาให้ภาพถ่ายนั้นกลายเป็นภาพแบบภาพวาด แล้วจึงนามาเข้ามาใช้ใน โปรแกรม CPS’ketchuu ซึ่งพบว่าสามารถลากเส้นตามภาพที่นามาใช้แล้วสร้างเป็นโมเดลได้ โดยง่าย 5) นายธนัท เป็นนักพัฒนาโปรแกรมในบริษัทสร้างงาน แอนิเมชัน 3 มิติ ได้นา CPS’ketchuu ไปใช้พบว่าการทางานขึ้นโมเดลต่างๆ ที่เป็นส่วนย่อย รายละเอียดไม่เยอะนักสร้างได้โดยง่าย ทาให้ไม่ต้องเสียเวลาในส่วนนี้มาก และเนื่องจาก CPS’ketchuu เป็น Open Source จึงสามารถ นามาปรับปรุง ปรับเปลี่ยนให้เหมาะกับงานต่างๆเพิ่มขึ้นได้ 5.2 งานวิจัยและทฤษฎีที่เกี่ยวข้อง 5.2.1 คาศัพท์และความหมาย - สเกตช์(Sketch) หมายถึง การสร้างภาพโดยการวาดด้วยมือเปล่าโดยโดยไม่ใส่รายละเอียดจน สมบูรณ์แบบ กล่าวได้ว่าเป็นการวาดเพียงเพื่อให้เห็นแนวคิดของภาพเท่านั้น - SBIM ( Sketch-based interface for modeling ) หมายถึง อินเตอร์เฟสในการสร้างโมเดล 3 มิติ ที่มี พื้นฐานจากการวาดแบบสเกตช์ ผู้ใช้งานจะใช้วิธีการวาดเส้นแบบ 2 มิติลงไปเพื่อให้โปรแกรมสร้าง โมเดล 3 มิติให้ - WIMP ( Window,Icon, Menu ,Pointer) หมายถึง อินเตอร์เฟสที่ผู้ใช้งานจะต้องทางานผ่านหน้าต่าง ไอคอน เมนู และตัวชี้เพื่อให้บรรลุวัตถุประสงค์ของการทางาน
  • 11. 10 - โมเดลแบบโซลิด(Solid Model) หมายถึง โมเดลสามมิติที่ใช้ในงานทางด้านวิศวกรรมหรืองาน ทางด้านสถาปัตยกรรม - โมเดลแบบฟรีฟอร์ม (Freeform Model ) หมายถึง โมเดลสามมิติแบบที่ไม่มีรูปร่างที่ตายตัวแน่นอน หรือ ไม่ใช่รูปร่างทางเรขาคณิต 5.2.2. ระดับของการสเกตช์อ้างอิงจาก [7] การสเกตช์แบ่งออกเป็น 5 ระดับ คือ 1.1 การสเกตช์เพื่อใช้ติดต่อหรือเสนอผลงานแบบไม่เป็นทางการ เป็นการสเกตช์คร่าวๆ ไม่ละเอียดเพื่อ ใช้ในการเสนอยกตัวอย่างของงานให้แก่ผู้อื่นแบบไม่เป็นทางการ 1.2 การสเกตช์ภาพงานที่ออกแบบไว้ในความคิด เป็นการสเกตช์ที่มีรายละเอียดเพิ่มขึ้น เพื่อเสนอ ผลงานกับนักออกแบบคนอื่นๆ 1.3 การสเกตช์ภาพงานทางเทคนิค เป็นการสเกตช์ที่ใช้หลักการระหว่างงานศิลปะกับวิศวกรรม เพื่อ บอกรายละเอียดที่ต่างๆ ช่วยในการผลิตผลงานที่ออกแบบออกมาเป็นชิ้น 1.4 การสเกตช์เพื่อใช้ในการเสนอผลงาน เป็นสเกตช์ที่เน้นใส่รายละเอียดการใช้งานที่น่าสนใจของ ผลงาน เพื่อช่วยในการเสนอผลงาน มีการสเกตช์เพื่อให้ความรู้สึกแก่ผู้ที่ดูด้วยเล็กน้อย 1.5 การสเกตช์ภาพก่อให้เกิดความรู้สึก เป็นการสเกตช์ที่เน้นการให้ความรู้สึกแก่ผู้ที่ดูงานสเกตช์ 5.2.3 งานวิจัย Teddy[1] เรื่องวิธีการสร้างโมเดล 3 มิติแบบฟรีฟอร์ม 1) รับข้อมูลจาก เมาส์ หรือ Graphic Tablet เป็นเส้นสเกตช์แบบฟรีฟอร์ม เข้ามาเป็นจุดที่ลากเชื่อมต่อ กันโดยการสเกตช์จากนั้นจึงนาจุดที่ได้ไปลดปริมาณลงโดยใช้อัลกอริทึมตามงานวิจัย [10] 2) เชื่อมรอยต่อให้เป็นรูปโพลีกอนแบนเรียบแบบปิด โดยใช้การลากเส้นจากจุดเริ่มต้นเข้าไปหาจุด ท้ายสุด ดังแสดงในภาพที่ 5.2
  • 12. 11 ภาพที่ 5.2 แสดงรูปปิดที่ได้จากการเชื่อมต่อจุดเริ่มต้นและจุดท้ายเข้าด้วยกัน 3) สร้าง Delaunay triangulation โดยใช้วิธีการเชื่อมจุดใน space ดังแสดงในภาพที่ 5.3 ภาพที่ 5.3 แสดงรูปปิดที่ถูกบรรจุสามเหลี่ยม Delaunay เข้าไปจนเต็ม 4) หาแกนคอดัล (Chordal Axis) ของ Polygon ทุกอันในรูปปิด ตามงานวิจัย [9] โดยการลากเส้น เชื่อมจุดกึ่งกลาง ของสามเหลี่ยม Delaunay ทุกอันในรูปปิด เพื่อให้สามารถแบ่งสามเหลี่ยมออกเป็น 3 แบบ คือ สามเหลี่ยมแบบ เทอร์มินัล (terminal )สามเหลี่ยมแบบ สลีฟ (sleeve) และสามเหลี่ยมแบบจังก์ชั่น (junction) ดังแสดงในภาพที่ 5.4
  • 13. 12 ภาพที่ 5.4 แสดงแกนแบบคอดัล 5) ขลิบบางส่วนออกให้ได้สามเหลี่ยมรูปพัด( Fan triangle) โดยใช้วิธีตามงานวิจัย [9] โดยใช้ อัลกอริทึมแบบพรูนนิ่ง (pruning)โดยสร้างวงกลมขึ้นมาจากเส้นขอบภายใน (internaledge) ของ สามเหลี่ยมแบบเทอร์มินัล จากนั้นจึงรวมสามเหลี่ยมนี้เข้ากับสาสมเหลี่ยมภายในอันถัดไป และสร้าง วงกลมซ้าไปเรื่อยๆจนกว่าจะมีจุดของสามเหลี่ยมที่อย่ายนอกวงกลม และจึงสร้างสามเหลี่ยมแบบพัด จากจุดกึ่งกลางของขอบภายในที่อยู่นอกสุด ดังแสดงในภาพที่ 5.5 ภาพที่ 5.5 แสดงการทาขลิบ จะได้ผลลัพธ์ดังแสดงในภาพที่ 5.6
  • 14. 13 ภาพที่ 5.6 แสดงรูปปิดภายหลังการขลิบ 6) สร้างแกนเชื่อมระหว่างจุดกึ่งกลางของสามเหลี่ยมรูปพัด เพื่อเตรียมPolygon ให้พร้อมสาหรับการยก แกนให้สูงขึ้นดังแสดงในภาพที่ 5.7 ภาพที่ 5.7 แสดงรูปปิดภายหลังการสร้างแกนเชื่อมระหว่างจุดกึ่งกลางขอสามเหลี่ยมรูป พัด 7) แบ่งสามเหลี่ยมเพิ่ม โดยใช้แกนที่สร้างขึ้นมาใหม่ดังแสดงในภาพที่ 5.8 ภาพที่ 5.8 แสดงรูปปิดภายหลังการสร้างสามเหลี่ยมตามแกนเชื่อม 8) ยกเส้นแกนขึ้นมาเป็นความสูงโดยคานวณค่าเฉลี่ยจากระยะห่างของจุดกึ่งกลางสามเหลี่ยมรูปพัดถึง ขอบภายนอก (External Edge)ด้านที่ติดกับจุดกึ่งกลางดังกล่าวดังภาพที่ 5.9
  • 15. 14 ภาพที่ 5.9 แสดงแกนเชื่อที่ถูกยกสูงขึ้น 9) เปลี่ยนเส้นที่เชื่อมกับแกนที่ยกขึ้นให้เป็นโค้งแบบไข่ เพื่อสร้าง Polygon แบบโค้งดังภาพที่ 5.10 ภาพที่ 5.10แสดงรูปปิดภายหลังการสร้างPolygom ตามแกนเชื่อมที่ถูกยก 10 ) สร้างเส้นเชื่อมโครงข่ายให้กลายเป็น Polygonal Mesh ดังรูปที่ 5.11 ภาพที่ 5.11 แสดงรูปปิดภายหลังสร้างเส้นเชื่อมโครงข่าย 11) คัดลอกโครงสร้างไปอีกด้านแล้วทาเป็น Mesh Polygon ที่เป็นรูปปิดและสมมาตร สุดท้ายลดเส้นและสามเหลี่ยมที่ไม่จาเป็นทิ้ง จะได้ผลลัพธ์เป็นโมเดล 3 มิติขึ้นมาจากการวาด 5.2.4 ทฤษฎีการสร้างสามเหลี่ยม Delaunay Delaunay triangle คือสามเหลี่ยมที่มีคุณสมบัติคือ มุมที่น้อยที่สุดใน สามเหลี่ยมทั้งหมดจะมี ค่ามากสุด และ วงกลมที่ล้อมรอบสามเหลี่ยมทุกอันจะต้องไม่มีจุดอยู่ในวงกลมดังแสดงในภาพ 5.12
  • 16. 15 ภาพที่ 5.12 ซ้าย ภาพแสดงสามเหลี่ยมไม่มีมุมถึง 90 องศา กลาง ภาพสามเหลี่ยมมุมฉากและ ขวา สามเหลี่ยมมุมป้าน โดยมีวิธีคานวณหาสามเหลี่ยม Delaunay ดังต่อไปนี้ 1. กาหนดจุดนอก space นี้แล้วสร้างสามเหลี่ยมโดยร่วมกับอีกสองจุดใน space 2. เพิ่มจุดใน space เข้าไปในกลุ่มสามเหลี่ยมที่สร้างไว้ 3. คานวณหา circum-circle ทุกอันเพื่อหาสามเหลี่ยมที่ล้อมรอบจุดใหม่นี้ ซึ่งสามเหลี่ยมที่หาพบจะไม่ใช่ Delaunay triangle ให้ลบสามเหลี่ยมนั้นทิ้ง 4. จากขั้นที่สองสร้างสามเหลี่ยมใหม่ จากจุดที่เพิ่มเข้าไปในขั้นสอง และจุดที่โดนลบสามเหลี่ยมทิ้งไป 5. ไปยังข้อสองจนกว่าทุกจุดใน space จะถูกเพิ่มเข้าไปใน สามเหลี่ยม Delaunay จะได้Polygon บรรจุอยู่ ในรูปปิดดังรูป 5.2.5 การทาโมเดลแบบโซลิด (SOLID Modeling) ในการทาโมเดลแบบโซลิดสามารถทาได้โดย 1) รับข้อมูลจาก เมาส์ หรือ Graphic Tablet เป็นเส้นสเกตช์ตามรูปร่างทางเรขาคณิต เข้ามาเป็นจุดที่ ลากเชื่อมต่อกันโดยการสเกตช์จากนั้นจึงนาจุดที่ได้ไปลดปริมาณลงโดยใช้อัลกอริทึมตามงานวิจัย [10] 2) เชื่อมรอยต่อให้เป็นรูปโพลีกอนแบนเรียบแบบปิด โดยใช้การลากเส้นจากจุดเริ่มต้นเข้าไปหาจุด ท้ายสุด ดังแสดงในภาพที่ 5.13
  • 17. 16 ภาพที่ 5.13 แสดงรูปปิดที่ได้จากการเชื่อมต่อจุดเริ่มต้นและจุดท้ายเข้าด้วยกัน 3) คานวณจุดกึ่งกลางหรือจุดตัดของเส้นทแยงมุมของรูปปิดเพื่อเตรียมสร้าง Delaunay triangle 4) สร้าง Delaunay triangulation เข้าไปในรูปปิดดังรูปที่ 5.14 ภาพที่ 5.14 แสดงรูปปิดที่ถูกบรรจุสามเหลี่ยม Delaunay เข้าไป 4) คัดลอก Polygonและยก Polygon ที่ได้ขึ้นมาตามค่าที่ผู้ใช้กาหนดดังแสดงตามภาพที่ 5.15 ภาพที่ 5.15 แสดงการสร้างPolygon เพื่อเตรียมทาเป็นโมเดล 3 มิติที่สมบูรณ์
  • 18. 17 5) สร้าง polygon เชื่อมจุดทั้งหมดเข้าด้วยกัน ภาพที่ 5.16 แสดงโมเดลสามมิติแบบโซลิดที่สมบูรณ์ 5.3 เครื่องมือที่ใช้ในการพัฒนา Hardware - Graphic Tablet ใช้เป็น input device ในการสเกตช์ภาพเพื่อสร้างโมเดล 3 มิติ Software(เพิ่ม OS,Environment ใช้พัฒนา) - Ubuntu - Eclipse IDEfor Java เพื่อใช้เขียนหรือแก้ไขโปรแกรมภาษา Java - Java3D เพื่อใช้ในการสร้างโมเดล 3 มิติ - Oracle VM VirtualBox 5.4 รายละเอียดโปรแกรมที่พัฒนา Input/Output Specification - Input เป็นเส้นและพิกัดที่มาจากการใช้Graphic Tablet - Output ไฟล์โมเดล 3 มิตินามสกุล.obj ซึ่งสามารถนาไปต่อยอดในโปรแกรมสร้างโมเดลสาม มิติอื่นได้
  • 19. 18 Functional Specification Functionที่โปรแกรมจะต้องทาได้มีดังนี้ 1. Functionในการ import รูปภาพเพื่อใส่ Sketch Effect เพื่อนามาแสดงเป็น ภาพต้นแบบให้ผู้ใช้sketch ตาม 2. Functionในการแปลงเส้นที่ Sketch เป็นโมเดล 3 มิติ แบบฟรีฟอร์มหรือ แบบโซลิด 3. Functionในการ Exportโมเดล 3 มิติออกมาเป็นไฟล์.obj โครงสร้างของซอฟแวร์(Design) ภาพที่ 5.1 8 แสดงโครงสร้างของซอฟแวร์ ซอฟต์แวร์ประกอบเป็น 4 ส่วนคือ 1. Sketch Effect Unit ส่วนที่รับรูปเข้ามาจากโปรแกรม GIMP โดยในส่วนนี้จะใช้ก็ต่อเมื่อผู้ใช้ ต้องการแปลงรูปภาพที่ไม่ใช่ภาพวาดเพื่อใช้เป็นแบบในการร่างภาพโดย Graphic Tablet เข้ามา แสดงภาพใน CPS’ketchuu 2. Input Unit เป็นการรับจุดหรือเส้นจากการสเกตช์ภาพของผู้ใช้จาก Graphic Tablet หรือ mouse CPS’ketchuu Input Unit รับตาแหน่งจุดจากการสเกตช์ด้วย Graphic Tablet หรือMouse Sketch Effect Unit หาขอบของรูปภาพเพื่อให้ผู้ใช้วาดตาม Sketch to 3D Model Unit สร้างโมเดลสามมิติ จากเส้นที่รับเข้ามา Output Unit แปลงโมเดลสามมิติ เป็นไฟล์นามสกุล .obj
  • 20. 19 3. Sketch to 3D Model Unit เป็นส่วนที่ใช้Algorithm ในการสร้างโมเดล 3 มิติจากเส้นที่ สเกตช์มาจาก Input Unit 4. Output Unit ทาหน้าที่แปลงข้อมูล 3D ของJava 3Dเป็นไฟล์โมเดลนามสกุล .obj แหล่งที่มาของ Source Code ที่นามาประกอบ 1.ไลบารี่สาหรับสร้างสามเหลี่ยมDelaunay - quickhull3d.1.4.jar, LEE BYRON , Carnegie Mellon University - mesh.jar, LEE BYRON , Carnegie Mellon University 2. ไลบารี่จาว่าสาหรับการทางานทางด้านสามมิติ - The Java 3D API, version 1.3 , Sun Microsystems, Inc 5.5 ขอบเขตและข้อจากัดของโปรแกรมที่พัฒนา - โปรแกรมสามารถสร้างโมเดล 3 มิติแบบฟรีฟอร์มและแบบ แคดเท่านั้น - โปรแกรมไม่รองรับการทางานในส่วนของ การยืด ( Extrusion) ตัด (Cut) หรือ การจัดการลวดลายบน พื้นผิวโมเดล (Texture) จึงทาให้ไม่สามารถสร้างโมเดลที่มีรายละเอียดมากไปกว่า โมเดลที่ได้จากการ สเกตช์ที่โปรแกรมรับเข้ามาในตอนเริ่มต้น - โปรแกรมต้องทางานอยู่บนจาวาเวอร์ชวลมาชีน - โมเดล 3 มิติที่สร้างจาเป็นต้องมีลักษณะสมมาตรในด้านหน้าและหลัง หรือซ้ายและขวา - การแก้ไขหรือเพิ่มเติมรายละเอียดบนโมเดลภายหลังสร้างเสร็จแล้ว ไม่สามารถทาได้ด้วยโปรแกรมนี้ หากต้องการแก้ไขจะต้อง export โมเดลและใช้โปรแกรมอื่นในการแก้ไขแทน
  • 21. 20 6.กลุ่มผู้ใช้โปรแกรม 1. ผู้ที่ทางานเกี่ยวข้องกับงานทางด้านสามมิติ หรืองานที่เกี่ยวข้องกับการสร้างโมเดลสามมิติ เช่น งาน ออกแบบ 7.ผลการทดสอบโปรแกรม FunctionalTesting - การทดสอบในส่วนนาเข้าข้อมูลเส้นวาดและสร้างโมเดลสามมิติ Input รูปแบบของโมเดล Output ความถูกต้อง Solid ถูกต้อง Freeform ถูกต้อง Solid ถูกต้อง Freeform ถูกต้อง ตารางที่ 6.1 แสดงผลการทดสอบนาเข้าข้อมูลเส้นวาดและสร้างโมเดลสามมิติ การทดสอบในส่วนรับข้อมูลเส้นวาดจากผู้ใช้พบว่าได้ผลเป็นที่น่าพอใจเมื่อใส่ข้อมูลขาเข้าเป็นภาพที่ ตรงตามเงื่อนไขที่กาหนดไว้ - การทดสอบส่วนส่งออกโมเดลเป็นไฟล์แบบ objและนาไปเปิดกับโปรแกรมประยุกต์อื่นๆสามารถทางานได้ ถูกต้อง
  • 22. 21 - การทดสอบในส่วนการหาเส้นขอบของภาพเพื่อช่วยในการวาด Input Output ความถูกต้อง ถูกต้อง ถูกต้อง ตารางที่ 6.2 แสดงผลการทดสอบส่วนการหาเส้นขอบของภาพเพื่อช่วยในการวาด การทดสอบในส่วนการหาเส้นขอบของภาพเพื่อช่วยในการวาดพบว่าโปรแกรมสามารถหาเส้นขอบได้ และสามาถแสดงผลออกมาได้ถูกต้อง
  • 23. 22 Usability Testing - การทดสอบความง่ายในการใช้งานของส่วนโปรแกม การประเมินการใช้งานทางผู้พัฒนาได้ใช้วิธีการประเมินแบบจาคอบเนลสันฮิลลิสติก (Jakob Nielsen's heuristic) โดยได้ให้ผู้รับการทดสอบจานวน 5 คนทดลองใช้โปรแกรมและประเมินผลของโปรแกรมซึ่งได้ผล เป็นดังต่อไปนี้ คะแนนที่ได้รับ (จากคะแนนเต็ม 5 คะแนน) Visibility of system status: 4.0 Match between system and the real world: 4.4 User control and freedom: 4.5 Consistency and standards: 4.1 Error prevention: 4.7 Recognition rather than recall: 4.6 Flexibility and efficiency of use: 4.8 Aesthetic and minimalist design: 4.4 Help users recognize,diagnose, and recover from errors: 3.9 Help and documentation: 4.1 จากผลการทดสอบความง่ายในการใช้งานโปรแกรมพบว่า โปรแกรม CPS’ketchuu สามารถใช้งานได้ง่ายและใช้ เวลาในการเรียนรู้ที่น้อย แต่ไม่สามารถรองรับข้อผิดพลาดที่เกิดขึ้นได้ดีเท่าที่ควรและไม่สามารถบอกสถานะของโปรแกรมให้ ผู้ใช้รับราบได้ 8.ปัญหาและอุปสรรค จากขั้นตอนการสร้างโปรแกรม ส่วนสร้างและแก้ไขโพลีกอน ปัญหา จานวนโพลีกอนที่เกิดขึ้นในขั้นตอนการสร้างสามเหลี่ยมดีลัวเนย์มีจานวนมากเกินความ จาเป็น ทาให้การนาโพลีกอนที่ได้ไปประมวลผลเกิดความล่าช้า
  • 24. 23 การแก้ไข ใช้การลดจานวนจุดที่นาเข้าจากเส้นวาดจากผู้ใช้โดยนาไปประมาณหาค่าเฉลี่ยของ จุดที่อยู่ในบริเวณใกล้กันก่อนจึงนาไปประมวลผลในขั้นตอนการสร้างสามเหลี่ยมดีลัวเนย์ ปัญหา ไลบารี่ที่ผู้พฒนาใช้ในการสร้างสามเหลี่ยมดีลัวเนย์มีความผิดพลาดในหลายส่วนทาให้ ค่าของโพลีกอนที่ได้ไม่ถูกต้องตามที่ผู้พัฒนาต้องการ การแก้ไข นาไลบารี่ดั้งเดิมมาปรับปรุงด้วยการเขียนโค้ดเพิ่มลงไป เพื่อให้สามารถทางานได้ ถูกต้อง 9. แนวทางการพัฒนาและการประยุกต์ใช้ร่วมกับงานอื่นๆ 1. พัฒนาส่วนจัดการลวดลายบนพื้นผิวโมเดล (Texture) เพื่อให้สามารถสร้างโมเดลที่สมบูรณ์ได้ในโปรแกรม 2.พัฒนาส่วนปรับเปลี่ยนรูปร่าง โดยการยืด ( Extrusion) และตัด (Cut) เพื่อให้ผู้ใช้งานโปรแกรมสามารถ ปรับเปลี่ยนรูปร่างของโมเดลได้ภายหลังจากการสร้างโมเดลแล้ว 3. พัฒนาโปรแกรม เพื่อลดข้อจากัดของโมเดลที่สามารถสร้างได้ลง 4. พัฒนาให้โปรแกรมสามารถสร้างไฟล์ที่ใช้งานร่วมกับโปรแกรมประยุกต์อื่นๆ เช่น Maya , 3DMax ได้ 5. เพิ่มเติมส่วนแนะนาวิธีการใช้งานและการบอกสถานะปัจจุบันโปรแกรม 6. เพิ่มเติมส่วนจัดการข้อผิดพลาด (Error) ที่เกิดขึ้นเพื่อลดภาระและการจดจาของผู้ใช้งาน 10. ข้อสรุปและข้อเสนอแนะ จากการใช้งานโปรแกรม พบว่าโปรแกรมช่วยอานวยความสะดวกในการขึ้นโมเดลเบื้องต้น โดยจะ สามารถใช้สร้างโมเดลทั้งแบบแคดและแบบฟรีฟอร์มได้ด้วยการวาดเพียงครั้งเดียว ในงานที่ไม่ต้องการความ รายละเอียดถูกต้อง การใช้โปรแกรม CP’Sketchuu จะสะดวกกว่าการใช้โปรแกรมแบบ WIMP ทั่วไป ข้อ เสียเปรียบของโปรแกรมนี้ คือ ทาได้เพียงการขึ้นรูปเพียงครั้งเดียวไม่สามารถเพิ่มเติม ต่อ ยืด ตัด โมเดลได้ทาให้
  • 26. 25 11. บรรณานุกรม [1] Takeo Igarashi ,Satoshi Matsuoka , and Hideo Tanaka , Teddy: A Sketching Interface for 3D Freeform Design.Los Angeles CA USA : SIGGRAPH 99,pages 5-6 , 1999. [2] Hong Zhang Y and Daniel Liang, ComputerGraphics Using Java™ 2D and 3D , 1st ed. United States of America : Pearson Education , 2007. 1. [3] Daniel Selman , "Java 3D Programming , 1st ed. United States of America : Manning Publication, 2002. 2. [4] Eclipse,” Eclipse,” 2010.[Online]. Available : http://www.eclipse.org [Access : July 2010]. 3. [5] The Java 3D Community Site , “Code Repository ,”February 2002 . [Online]. Available : http://code.j3d.org [Access : July 2010 ]. 4. [6] Peter Mikhalenko , “Create graphics applications with Java 3D ,” December 2007. [Online]. Available : 5. http://blogs.techrepublic.com.com/programming-and-development/?p=578 [Access : July 2010 ]. [7] Idsketching , “Toolbox: Level of Sketching ,” February 2009 .[Online].Available : http://www.idsketching.com/toolbox/toolbox-levels-of-sketching [Access : July 2010 ]. [8] Tiago Lemos de Araujo Machado, Alex Sandro Gomes ,and Marcelo Walter , A comparison study: sketch-based interface versus WIMP interfaces in three-dimensional modeling tasks , Los Angeles CA USA : IEEE ,pages 1-2, 2009 6. [9] L. Prasad , Morphological analysis of shapes CNLS Newsletter, 139: 1-18, July 1997. 7. [10] ChenYang ,Sketch-based Modeling of Parameterized Objects, P.R. China : Tsinghua University ,pages 18-20, 2006 8. [11] Matthew T. Cook , Arvin Agah , A Survey of sketch-based 3D modeling technique , Kansas USA : Science Direct, pages 4 -10, 2009.
  • 27. 26 13. ภาคผนวก คู่มือการติดตั้งโปรแกรม 1.ติดตั้งJava Virtual Machine โดยดาวน์โหลดจาก http://www.java.com/en/download/ และเลือกให้ตรงกับ ระบบปฎิบัตารที่ใช้โดยในที่นี้จะนาเสนอการติดตั้งบนระบบปฏิบัติการ Linux ดังต่อไปนี้ 1.1 เปลี่ยน permission ของไฟล์โดยการพิมพ์คาสั่ง chmod a+x jre-6u<version>-linux-i586.bin 1.2 ตรวจสอบว่าผู้ติดตั้งมีสถานะที่พร้อมจะสั่งติดตั้งได้โดยพิมพ์คาสั่ง ls -l 1.3 เปลี่ยนตาแหน่งไปยังแฟ้มที่ต้องการติดตั้งโดยพิมพ์คาสั่ง cd <directory path name> 1.4 สั่งติดตั้งโปรแกรม ./jre-6u<version>-linux-i586.bin จากนั้นจะปรากฎหน้าต่างข้อตกลงและเงื่อนไขที่ต้องยอมรับให้กด spacebar เพื่อดาเนินการในขั้นตอน ต่อไป และกด yes เพื่อเริ่มการติดตั้ง 1.5 เมื่อการติดตั้งสมบูรณ์จะปรากฎข้อความ Done
  • 28. 27 1.6 ตรวจสอบการติดตั้งโดยพิมพ์คาสั่ง ls 2.ติดตั้ง Java3D ดาวน์โหลดไลบารี่ java3d จาก https://java3d.dev.java.net/binary-builds.html จากนั้นจึงพิมพ์คาสั่ง cd /usr/java/jdk1.6.0_01/jre sh /path-to-download-files/java3d-1_5_1-linux-i586.bi 3.โปรแกรมสามารถเริ่มต้นได้ทันทีโดยไม่จาเป็นต้องติดตั้ง 4. กรณีที่โปรแกรมแสดงรูปภพไม่ถูกต้องให้ตรวจสอบว่าแฟ้ม Imagesอยู่ที่ตาแหน่งเดียวกับโปรแกรมหรือไม่
  • 29. 28 คู่มือการใช้งานโปรแกรม 1.ดับเบิ้ลคลิกที่ไฟล์ชื่อ CPSketchuu.jar จะพบกับโปรแกรมดังรูปที่ 13.1 โดยหน้าต่างจะแบ่งเป็นส่วนต่างๆดังนี้ รูปที่ 1a แสดงหน้าต่างการใช้งานของโปรแกรม 1.1 บริเวณแสดงเครื่องมือสาหรับการทางานในโหมดวาด 1.2 ปุ่ม Load BG Img สาหรับนาเข้ารูปภาพพื้นหลัง 1.3 ปุ่ม Edge Detectionสาหรับหาขอบของภาพพื้นหลังที่นาเข้ามาเพื่อช่วยให้สามารถวาดตามได้ง่ายขึ้น 1.4 ปุ่ม Rectangle สาหรับเลือกวาดรูปสี่เหลี่ยม 1.5 ปุ่ม Freeform สาหรับเลือกวาดเส้นอิสระ 1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 1.11 1.10 1.12 1.14 1.15 1.13 1.9 1.16 1.17
  • 30. 29 1.6 ปุ่ม Line สาหรับเลือกวาดเส้นตรง 1.8 ปุ่ม Freeform Model สาหรับสร้างโมเดลแบบฟรีฟอร์มตามเส้นที่วาดเอาไว้ 1.9 ปุ่ม Solid Model สาหรับสร้างโมเดลสามมิติแบโซลิดจากเส้นที่วาดเอาไว้ 1.10 บริเวณแสดงเครื่องมือสาหรับการทางานในโหมดสามมิติ 1.11 ปุ่ม Export Modelสาหรับส่งออกโมเดลเป็นไฟล์ประเภท obj 1.12 บริเวณสาหรับการวาดภาพ เพื่อนาไปสร้างเป็นโมเดลสามมิติ 1.13 บริเวณแสดงคาสั่งสาหรับย่อหรือขยายขนาดโมเดลสามมิติ 1.14 บริเวณแสดงคาสั่งสาหรับแสดงลักษณะของโมเดล 1.15 บริเวณแสดงคาสั่งสาหรับนาเข้าลวดลายบนตัวโมเดล 1.16 บริวเวณแสดงคาสั่งสาหรับแก้ไขโมเดล 1.17 แถบเครื่องมือแสดงคาสั่ง 2. ในกรณีที่ต้องการนาเข้าภาพพื้นหลัง ให้กดที่ปุ่ม Load BG Img ( ปุ่มที่ 1.2 )จะปรากฎหน้าต่างดังแสดงในรูป ที่ จากนั้นจึงเลือกไฟล์รูปภาพที่ต้องการ เพื่อนาเข้ามาเป็นแบบในการสร้างโมเดลสามมิติ
  • 31. 30 รูปที่ 1b แสดงหน้าต่างการนาเข้าภาพพื้นหลัง 3. ในกรณีที่ภาพมีขอบไม่ชัดเจน สามารถกดที่ปุ่ม Edge Detectionเพื่อให้สามารถเห็นขอบของภาพชัดเจนขึ้น ได้
  • 32. 31 รูปที่ 1c แสดงหน้าต่างโปรแกรมหลังการหาขอบภาพ 4. เลือกรูปแบบของเส้นที่ต้องการจากแถบเครื่องมือทางด้านขวาของโปรแกรม จากนั้นจึงวาดลงบนบริเวณตรง กลางของโปรแกรม
  • 33. 32 รูปที่ 1d แสดงการวาดลงบนโปรแกรม 5. หลังจากได้เส้นที่ต้องการแล้วให้กดที่ปุ่มFreeform Model เพื่อสร้างโมเดลแบบฟรีฟอร์มหรือ กดที่ปุ่ม Solid Model เพื่อสร้างโมเดลแบบโซลิด 6. โปรแกรมจะแสดงโมเดลสามมิตที่ถูกสร้างขึ้น
  • 34. 33 รูปที่ 1e แสดงโมเดลสามมิติที่เกิดขึ้นภายหลังการวาด 7. ผู้ใช้งานสามารถหมุนกล้องเพื่อดูโมเดลสามมิติที่เกิดขึ้นได้โดยการคลิกเมาส์ซ้ายค้างบนโมเดลสามมิติที่ เกิดขึ้น จากนั้นจึงเลื่อนเมาส์ไปตามทิศทางที่ต้องการ 8. ในกรณีที่ต้องการส่งออกโมเดลเพื่อนาไปใช้กับโปรแกรมประยุกต์อื่นๆให้กดที่ปุ่ม Export Model และเลือก ตาแหน่งที่ต้องการบันทึก 9. หากต้องการสร้างโมเดลชิ้นใหม่ให้เลือกที่แถบเมนูด้านบนของโปรแกรมโดยเลือกที่ File -> Init 10. เมื่อต้องการจบการทางานของโปรแกรมให้เลือกที่แถบเมนูด้านบนของโปรแกรมโดยเลือกที่ File -> Exit