51
รรรรรรรรรรร 8P14I009 รรรรรรรรรรรรรร 3 รรรร 3D Display รรรรรรรรรรรรรรรรรรรรรรรรรรรรรรรรรรรรรรรรร รรรรรรรรร รรรรรรรรรรรรรรรรร รรรรรรร รรรรรรรรรรรรรรรรรรรรรรรรรรรรรรรรรรรรรรรรรรรรรร รรรร รรรรรรรรรรรรรรรรรรรรรรรรรรรรรรรรรรรรรรรรรรรรร รรรรรรรรรรรรรรรรรร รรรรรรรรรรรรรรรรรรรรรรร รรรรรรรรรรรรรรรรรรรรรรรรรรรร รรรรรรรรรรรรรรรร รรรรรรรรรรรรรรรรรรรรรรรรรรรรรรรรรรรรรรรรร รรรรรรรรร รรรรรรรร8 รรรรรรรรรรรรรรรร 2548 รรร รรรรรรรร รรรรรรรรร รรรรรรรร รรรรรรรร รรรรรรรรรร รรรรรรรรรรร รรรรรรรรรรรรรรรรรรรรรรร ร.รร.รรร รรรรรรรรรรร รรรรรรรรรรรรรร รรรรรรรรรรรรรรรรรร 1

รหัสโครงการ…………… - Serverdee · Web view5. NUM 5 : Step in 5 time slots. เป นค ย สำหร บใช ควบค มการเพ ม/ลด

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: รหัสโครงการ…………… - Serverdee · Web view5. NUM 5 : Step in 5 time slots. เป นค ย สำหร บใช ควบค มการเพ ม/ลด

รหสโครงการ 8P14I009

เครองแสดงภาพ 3 มต3D Display

โปรแกรมเพองานการพฒนาดานวทยาศาสตรและเทคโนโลย

รายงานฉบบสมบรณเสนอตอ

ศนยเทคโนโลยอเลกทรอนกสและคอมพวเตอรแหงชาตสำานกงานพฒนาวทยาศาสตรและเทคโนโลยแหงชาต

กระทรวงวทยาศาสตร เทคโนโลยและสงแวดลอม

ไดรบทนอดหนนโครงการวจย พฒนาและวศวกรรมโครงการแขงขนพฒนาโปรแกรมคอมพวเตอรแหงประเทศไทย ครงท8

ประจำาปงบประมาณ 2548

โดย

ผวจย นายลกษณ รกสงข ผวจย นายอาทตย วงษวศษฐ

อาจารยทปรกษาโครงการ อ.ดร.วส เชาวพานนทสถาบนการศกษา มหาวทยาลยขอนแกน

1

Page 2: รหัสโครงการ…………… - Serverdee · Web view5. NUM 5 : Step in 5 time slots. เป นค ย สำหร บใช ควบค มการเพ ม/ลด

บทคดยอ

โครงการนเปนการสรางเครองทสามารถแสดงผลของรปทรงตางๆเปนแบบ 3 มต โดยภาพทไดนน เกดจากการใชโปรแกรมการคำานวณทางคณตศาสตรในโปรแกรมคอมพวเตอร แลวแสดงผลในรปแบบ 2 มต ออกมาทางโปรเจคเตอร เขาสตวเครองแสดงผลทมฉากรบเปนรปทรงเกลยว (Helix) ททำาดวยวสดกงโปรงแสง โดยทฉากรบขณะทำางานจะทำาการหมนรอบแกนดวยความเรวทคงท เมอภาพตกกระทบสวนขอบของฉากรบทหมนอยจะเกดภาพทเปนรปทรงทมปรมาตร โดยภาพนนเกดจาก จดพกด X และ Y ในแตละมมมองของวตถจะถกสรางจากการประมวลผลของคำาสงแลว ทำาการแสดงผลผานเครองโปรเจคเตอร สวนจดพกด Z ของรปทรงวตถจะถกสรางจากความสมพนธ ระหวางการหมนของฉากกบชวงเวลาในการแสดงภาพของเครองโปรเจคเตอร ภาพของวตถจะถกสรางขน จากการกำาหนดจงหวะในการทำางานทเหมาะสมกน (Synchronizing) ระหวางสวนของฮารดแวรและสวนของซอฟตแวร ภาพทปรากฏออกมา จะเปนภาพรปทรง 3 มต โดยไมตองใชอปกรณชวยในการมองเหน เชน แวนตา 3 มต และรปทรงทปรากฏจะสามารถมองเหนไดทกมมมอง

2

Page 3: รหัสโครงการ…………… - Serverdee · Web view5. NUM 5 : Step in 5 time slots. เป นค ย สำหร บใช ควบค มการเพ ม/ลด

Abstract

This project is about building a tool which is able to display the shape of an object in 3D dimension. The displayed shape was from mathematic calculation in the computer program, which will be resulted in 2D shape by the projector and then transmitted into the display with a helix screen. This screen was made from the semi-translucent materials. While the screen is working, it will spin around a core in constant speed. Once the picture land on the edge of the helix screen,the dimensioned picture will be shown. The picture was created from the position of X and Y. Each view in different angles of the object will be created from the calculated command and displayed through the projector. The Z position of the object’s shape, will be created from the relation between the spinning screen and time the projector needed in displaying the picture. The 3D picture of the object will be created by synchronizing the working period between software and hardware part. Accessory such as the 3D glasses to see this picture is not necessary and the picture from any angles can be seen.

2

Page 4: รหัสโครงการ…………… - Serverdee · Web view5. NUM 5 : Step in 5 time slots. เป นค ย สำหร บใช ควบค มการเพ ม/ลด

บทนำ�

เคร องคอมพวเตอรทมอยโดยทวไปสามารถแบงโครงสรางการทำางานไดเปน 3 สวนไดแกหนวยประมวลผลหนวยความจำาและ หนวยรบขอมลนำาเขา/หนวยแสดงผลขอมลออกโดยในแตละสวนดงกลาวจะมการพฒนาและวจยเพอใหไดมาซงเทคโนโลยใหมๆ อยตลอดเวลา แตสงเกตไดวา หนวยแสดงผลขอมล ทงจอมอนเตอรและฉากรบภาพ แมจะมการพฒนาทางดานเทคโนโลยดานความละเอยดในการแสดงผล ความสวางของจอภาพ หรอเทคโนโลยจอแบนซงกำาลงไดรบความนยม แตเทคโนโลยเหลานกยงคงอยบนพนฐานของการแสดงผลภาพใน 1 ระนาบเทานน นอกจากน แมวาในปจจบนจะมโปรแกรมในการสรางภาพ 3 มต แตการแสดงผลยงอาศยหลกการสรางภาพในมมมองของระนาบใดระนาบหนง ทำาใหในการแสดงผลงานทเปนรปทรง 3 มต ผทรบชมสามารถมองดวตถไดเพยงดานเดยวคอจากทางดานหนาของจอภาพเทานน

โครงการนเปนการพฒนา เครองแสดงภาพ 3 มต ของคณวสนต จำาปาแพง และคณเสวตร ลาศา โดยเปนโครงการทพฒนาขนเพอขยายผลในการแสดงภาพในทกๆมมมองโดยรอบวตถ เสมอน วตถนนมรปทรง และจบตองไดจรง โดยอาศยการทำางานของอปกรณแสดงผลทประดษฐขนเอง เชอมตอ LCD Projector และอปกาณการมน ผาน Parallel port เขาสอปกรณคอมพวเตอรซงจะมซอฟตแวรควบคมการ แสดงผลททำางานสอดคลองกบการหมนของฉากรบภาพ

3

Page 5: รหัสโครงการ…………… - Serverdee · Web view5. NUM 5 : Step in 5 time slots. เป นค ย สำหร บใช ควบค มการเพ ม/ลด

ส�รบญ

หนา- บทคดยอ- บทนำา- วตถประสงคและเปาหมาย- ทฤษฎหลกการและเทคนคหรอเทคโนโลยทใช- รายละเอยดของการพฒนา- ขนตอนการทำางานของโปรแกรม- โครงสรางของซอฟตแวร- ขอบเขตและขอจำากดของโปรแกรมทพฒนา- คณลกษณะของอปกรณทใชกบโปรแกรม- กลมผใชโปรแกรม- ผลของการทดสอบโปรแกรม- ปญหาและอปสรรค- แนวทางในการพฒนาและประยกตใชรวมกบงานอนๆ ในขนตอ

ไป- ขอสรปและขอเสนอแนะ- เอกสารอางอง- ภาคผนวก

2356

121423242425252526

262728

4

Page 6: รหัสโครงการ…………… - Serverdee · Web view5. NUM 5 : Step in 5 time slots. เป นค ย สำหร บใช ควบค มการเพ ม/ลด

วตถประสงคและเป�หม�ย

วตถประสงค

- เพอพฒนาเครองแสดงผล 3 มต แทนการใชจอแสดงผลในปจจบน ลดขอจำากดในการมองเหนภาพเพยงระนาบใดระนาบหนง โดยจะแบงการพฒนาเปน 3 สวนคอ สวนของฉากรบภาพสวนของวงจรตรวจวดรอบ และสวนตวเครอง- เพอพฒนาโปรแกรมเพอใชแสดงผลผานเครองแสดงผล 3 มต ซงแบงการทำางานออกเปนเปน 2 สวน ไดแก สวนของการรบคาความเรวรอบของฉากรบภาพและสวนแสดงผลภาพออกทางเครองโปรเจคเตอรเพอฉายลงบนฉากรบภาพ

เป�หม�ยและขอบเขตของโครงก�ร

1.โปรแกรมสามารถแสดงวตถในรปแบบ 3 มต

2.การประมวลผลภาพ 3 มต ตามลกษณะของฉากรบทเปนรป Helix(โปรแกรมเดมการประมวลจะพจารณาฉากรบเปน ภาพตดขวางซงไมตรงกบฉากรบจรงทำาใหภาพเกดความผดเพยน)3.โปรแกรมสามารถแสดงผลจากไฟล 3 มต (โปรแกรมเดมสามารถแสดงไดเฉพาะรปทรงเรขาคณตเทานน)4.เครองสามารถแสดงผลไดจากทกมมมอง

5.ออกแบบเครองใหมขนาดเลกสามารถเคลอนยายไดงาย

5

Page 7: รหัสโครงการ…………… - Serverdee · Web view5. NUM 5 : Step in 5 time slots. เป นค ย สำหร บใช ควบค มการเพ ม/ลด

ทฤษฎหลกก�รและเทคนคหรอเทคโนโลยทใช

รปแบบของระบบเครองแสดงผล 3 มตรปแบบของระบบเครองแสดงผล 3 มตจะมสวนของฮารดแวรซงทำา

หนาทรองรบการตกกระทบของแสงทเกดจากแหลงกำาเนดภาพ โดยการหมนกวาดของฉากรบภาพดวยความเรวสงจะทำาใหแสงทตกกระทบสะทอนออกไปทกทศทางทำาใหเกดการแสดงผลของวตถในมมมองตางๆคลายการสรางปรมาตรของวตถลงบนพนทวาง เกดเปนภาพ 3 มตในเชงปรมาตรขน และสวนของซอฟตแวรจะทำาหนาทในการควบคมภาพทฉายไปยงฉากรบภาพผานทางเครองโปรเจคเตอร (LCD Projector) เพอใหเกดการทำางานทสอดประสานกน ทำาใหไดรปทรง 3 มตทสมจรง ไมผดเพยนไปจากความตองการ

หนาทของสวนประกอบตางๆสวนของฮารดแวร มหนาทในการแสดงภาพจากโปรเจกเตอรผานทางฉากรบภาพโดย

แบงเปนสวนตางๆดงน1. สวนของระบบการหมนฉากรบภาพ ทำาหนาทในการหมนฉากรบ

ภาพเพอแสดงภาพ 3 มตโดยสวนนจะประกอบดวย มอเตอร สายพาน และเพลา

2. สวนของฉากรบภาพ ทำาหนาทในการรบภาพจากโปรเจกเตอรเพอแสดงภาพ 3 มต ประกอบดวยแกนของฉากรบภาพและตวฉากรบภาพ

3. สวนของของระบบตรวจวดรอบ ทำาหนาทในการตรวจจบการหมนของฉากรบภาพ โดยถาฉากรบภาพหมนครบหนงรอบกจะสงสญญาณไปใหกบโปรแกรมแสดงภาพ เพอคำานวนชวงเวลาในการแสดงภาพ

6

Page 8: รหัสโครงการ…………… - Serverdee · Web view5. NUM 5 : Step in 5 time slots. เป นค ย สำหร บใช ควบค มการเพ ม/ลด

สวนของซอฟตแวร มหนาทในการประมวลผลภาพ แลวทำาการสรางภาพพนฐาน 2 มต

โดยเมอมการทำางานสอดคลองกบสวนของฮารดแวร จะเกดเปนภาพ 3 มตขนบนฉากรบภาพ โดยแบงเปนสวนตางๆดงน

1. ซอฟตแวรของระบบแสดงผลภาพ ทำาหนาทในการแสดงภาพ 2 มตททำางานสอดคลองกบความเรวรอบในการหมนของฉากรบภาพ เพอใหเกดวตถเสมอนขนบนฉากรบภาพ

2. ซอฟตแวรของสวนปรบตงคา ทำาหนาทในการปรบตงคาโดยผใชเพอใหสามารถแสดงภาพ 3 มตในรปทรงตางๆตามความตองการของผใช

3. ซอฟตแวรของระบบตรวจวดรอบ ทำาหนาทในการรบคาสญญาณทถกสงมาจากวงจรตรวจจบการหมนของฉากรบภาพ จากนนจะสงคาทไดไปใหกบระบบแสดงผลภาพทำาการคำานวณชวงเวลาในการแสดงภาพทเหมาะสมออกทางเครองแสดงผล

การออกแบบสวนของฮารดแวรฮารดแวรของฉากรบภาพฉากรบภาพเปนสวนทใชในการแสดงภาพ 3 มตทมการฉายภาพออก

มาทางโปรเจกเตอร โดยหลกการของ volumetric display ฉากรบภาพจะตองเคลอนทผานไปบนทกสวนของปรมาตรของวตถทจะแสดง ฉากรบภาพทไดทำาการออกแบบมลกษณะเปนเกลยวค (double helix) และเพอใหการสะทอนของแสงจากโปรเจคเตอรถกตองมมของฉากรบภาพจะตองเปน 45 องศา ดงนนความสมพนธของความสงของฉากรบกบรศมของฉากรบภาพคำานวณไดจากสมการของ single helix ดงน

x = a cos t, y = a sin t, z = b t สมการ (1.1)

เนองจากโครงการใชรปทรงของฉากรบเปน double helix ดงนนจงนำาสมการ single helix มาปรบปรงใหเปน double helix โดยเพมชวงของ a ใหอยในชวง [-r , r] เพอใหเปน double helixEquation of double helix

7

Page 9: รหัสโครงการ…………… - Serverdee · Web view5. NUM 5 : Step in 5 time slots. เป นค ย สำหร บใช ควบค มการเพ ม/ลด

สมการ (1.2)

จากสมการ (1.2) ใหมมของผว helix เปน 45 องศา รศม (r) จะหาไดจาก

รปท ความสมพนธระหวางความสงและรศมของ double helixจากรปไดความสมพนธระหวาง h กบ r

r = h / pi สมการ (1.3)ซงความสมพนธระหวาง h กบ r จะนำาไปใชในการกำาหนดขนาดของ

ความสงและรศมของฉากรบภาพ เชน ถาตองการความสงของฉากรบภาพเปน 1 ฟต รศมจะตองเปน 1/pi ฟต เพอใหมมของพนผวเปน 45 องศา

8

Page 10: รหัสโครงการ…………… - Serverdee · Web view5. NUM 5 : Step in 5 time slots. เป นค ย สำหร บใช ควบค มการเพ ม/ลด

รปแสดงโครงฉากรบทถกขงโดยผาใยบว

เมอทำาการออกแบบเรยบรอย กไดทำาการสรางสวนของฉากรบภาพตามทไดออกแบบไวทขนตน โดยใชเหลกเกลยวเสนขนาด 3 หนมาทำาเปนแกนของฉากรบ และเหลกเสนทใชสำาหรบเชอม อก 5 เสน นำามามวนยดกบแกน และใชนอต 10 ตวเพอทจะทำาใหโครงสามารถยดตดกบแกนได จากนนกำาหนดระยะตามทไดคำาควณไวขนตน แลวจากนนจงนำาโครงทงหมดไปพนสขาวดวยสเปยพนส เมอสแหงดแลวจงนำาผาใยบวมายดกบโครง กจะไดฉากรบตามทออกแบบไวคอ มเสนผาศนยกลาง 26 เซนตเมตร แลวสวนสง 20 เซนตเมตร

การพฒนาตวเครองแสดงผล 3 มต

รปแสดงเครองแสดง ผล 3 มตทประกอบเสรจเรยบรอยแลว

ตวเครองแสดงผล 3 มต ทงหมดมความสง 54 เซนตเมตร ความกวาง 26 x 28 เซนตเมตร ใชการฉายภาพจากโปรเจคเตอรเขาทางดานลางเครองแสดงภาพ ระยะจากเครองแสดงผลและโปรเจคเตอร คอระยะโฟกสทสนทสดทโปรเจคเตอรสงภาพไปประทบกระจกเงาและสะทอนขนฉายบนฉากรบและไดภาพทชดเจนทสด

9

Page 11: รหัสโครงการ…………… - Serverdee · Web view5. NUM 5 : Step in 5 time slots. เป นค ย สำหร บใช ควบค มการเพ ม/ลด

เครองแสดงผลสามารถแยกออกเปนชนสวนตางๆไดดงน

- โครงเหลก ขนาด 26 x 28 x 33 เซนตเมตร- กระจกเงา 2 แผน- มอเตอร AC - ฉากรบทเปนรปทรง Double Helix ตอกบตวยดแกน- ตวครอบฉากรบททำาดวยอะคาลคใสเปนรปทรงสเหลยมเปดดานลาง และดานบนเจาะรเพอใชยดแกนของฉากรบไมใหเหวยงเมอเครองหมน

วธการประกอบเครองแสดงผล1. ใสมอเตอรลงในชองทอยดานลางของโครงเหลก และใสนอตเพอ

ยดมอเตอรกบโครง เหลกไมใหสนเมอเปดเครอง2. นำาฉากรบทมตวยดแกนลงไปยงแกนของมอเตอร จะสงเกตได

วามชองทเปนตวยดระหวางแกนฉากรบและมอเตอร ใหใสลงไปในชองและตรวจสอบวายดกนแนนดแลวหรอยง

3. ใสแผนกระจกเงาจากดานบนหรอวาดานขางของเครอง โดนตองเอยงเพอใหเขาไปได เมอใสเขาไปแลวกประกบใหชดกบแกนของฉากรบ

4. ใสตวครอบฉากรบเขาไปทางดานบนของโครงเหลก ใหชองทอยบนตวครอบตรงกบแกนของฉากรบพอด

ก�รออกแบบสวนของซอฟตแวรการพฒนาในสวนของซอฟแวร จะมการแบงโครงสรางการทำางาน

ออกเปน 3 สวนหลก คอ

สรางหนาตางของโปรแกรม

10

Page 12: รหัสโครงการ…………… - Serverdee · Web view5. NUM 5 : Step in 5 time slots. เป นค ย สำหร บใช ควบค มการเพ ม/ลด

การพฒนาโปรแกรมเพอทำางานรวมกบเครองแสดงผล 3 มต ดงทไดออกแบบไวจะตองมการสรางหนาตางขนมา 2 หนาตาง คอ หนาตางของสวนแสดงผลภาพและหนาตางของสวนปรบตงคาวตถ โดยทง 2 หนาตางนตองสามารถแสดงผลพรอมๆกนได โดยทหนาตางของสวนแสดงผลภาพจะเปนแบบ Full Screen กลาวคอ หนาตางนจะแสดงผลเตมขนาดของหนาจอมอนเตอรและไมแสดงสวนของ Title Bar ใหผใชเหน สวนหนาตางของสวนปรบตงคาวตถจะเปนหนาจอขนาดเลกทจะถกแสดงขนมาเหนอหนาตางของสวนแสดงผลภาพเมอมการเรยกใช

สวนแสดงผลภาพการพฒนาสวนของการแสดงผลของภาพ จะใชการตดโมเดล 3 มต

ใหเหลอเฉพาะสวนททำาการโปรเจคชนลงบนผวของฉากรบซงอยในรปของภาพ 2 มต และทำาการแสดงผลตามการหมนของฉากรบ ดงนนสวนของการแสดงผลของภาพจะประกอบดวย สวนสำาหรบอานไฟลโมเดล 3 มต และสวนสำาหรบตดโมเดล 3 มต โดยสวนสำาหรบตดโมเดล 3 มต จะใชฟงกชนของ OpenGL โดยตดตามรปทรงพนผวของฉากรบ พนผวของฉากรบสามารถคำานวณไดจากสมการ (3.2) รปท 3.2 แสดงรายละเอยดของการสรางพนผวของฉากรบรป Helix โดยใช OpenGL

สวนควบคมอตราการแสดงผลการพฒนาสวนแสดงผลภาพ เราตองอาศยการทำางานทสอดคลอง

กนระหวางความเรวในการหมนของฉากรบภาพและอตราการแสดงภาพผานทางเครองโปรเจกเตอร และเพอใหการแสดงผลเปนไปอยางสมบรณ จำาเปนตองใหอตราการสบเปลยนภาพ(Flip) มความเรวสงสดเทาทจะทำาได ดงนน จงตองมการพฒนาโปรแกรมใหมการแสดงผลผาน Primary Surface ซงเปนเสมอนหนาจอจำาลองทจะแสดงภาพออกมา และจะมการใช Back Surface เปนเสมอน Buffer เพอเปนการสำารองเนอทของหนวยความจำา ซงจะชวยใหการแสดงผลทำาไดเรวยงขน

11

Page 13: รหัสโครงการ…………… - Serverdee · Web view5. NUM 5 : Step in 5 time slots. เป นค ย สำหร บใช ควบค มการเพ ม/ลด

การทำางานในสวนควบคมอตราการแสดงผล- เขยนโปรแกรมตรวจจบเวลาในการหมนของฉากรบภาพครบ 1

รอบคอ เวลาในการหมน 1 รอบ ตวแปร X มหนวยเปนมลลวนาท (milliseconds)

- เมอวเคราะหลกษณะของฉากรบภาพทใชเปนแบบเกลยวค (Double Helixes) ซงแสดงผลภาพได 2 ครงตอการหมน 1 รอบ ดงนน ระยะเวลาททำาการแสดงผลวตถจากสวนบนสดจนถงสวนฐานของวตถ คอ X/2 มลลวนาท (milliseconds)

- ความถในการแสดงผลของเครองโปรเจคเตอร เทากบ 60 เฮรซ ซงหมายถง ใน 1 วนาท แสดงภาพได 60 ภาพ แมวาการทำางานของโปรแกรมสงกวา 60 ภาพตอวนาทกตาม

- ฉากรบภาพหมนครงรอบ จะแสดงรปทรงวตถ 1 ครง นนคอ จำานวนรป 2 มตทถกแสดงเปนรปทรงวตถมจำานวน (60/1000) * (X /2) ภาพ

- ในชวงระยะเวลา X/2 จะถกแบงเปน (60/1000) * (X /2) สวนยอยเพอแสดงภาพสวนตางๆของวตถ ดงนน แตละภาพยอยจะถกแสดงผลเปนระยะเวลา (X /2) / {(60/1000) * (X /2)} ซงเทากบ 16.667 ภาพ หรอ 16 ภาพเทานน (เศษทไมเปนจำานวนเตม ไมสามารถคดเปน 1 ภาพได)

ร�ยละเอยดของก�รพฒน�

โครงสรางของโปรแกรมการพฒนาในสวนของซอฟแวร จะมการแบงโครงสรางการทำางาน

ออกเปน 3 สวนหลก คอ

12

Page 14: รหัสโครงการ…………… - Serverdee · Web view5. NUM 5 : Step in 5 time slots. เป นค ย สำหร บใช ควบค มการเพ ม/ลด

สรางหนาตางของโปรแกรมการพฒนาโปรแกรมเพอทำางานรวมกบเครองแสดงผล 3 มต ดงท

ไดออกแบบไวจะตองมการสรางหนาตางขนมา 2 หนาตาง คอ หนาตางของสวนแสดงผลภาพและหนาตางของสวนปรบตงคาวตถ โดยทง 2 หนาตางนตองสามารถแสดงผลพรอมๆกนได โดยทหนาตางของสวนแสดงผลภาพจะเปนแบบ Full Screen กลาวคอ หนาตางนจะแสดงผลเตมขนาดของหนาจอมอนเตอรและไมแสดงสวนของ Title Bar ใหผใชเหน สวนหนาตางของสวนปรบตงคาวตถจะเปนหนาจอขนาดเลกทจะถกแสดงขนมาเหนอหนาตางของสวนแสดงผลภาพเมอมการเรยกใช

สวนแสดงผลภาพซอฟตแวรในสวนแสดงผลภาพจะเปนการแสดงรปภาพลงบน

หนาตางทไดสรางขน โดยรปภาพทถกนำามาแสดงผลจะเปนไฟลนามสกล .Bmp ซงการแสดงวตถหนงชนจะใชชดของภาพทเปลยนไปตามการหมนหนงรอบของฉากรบ และทำาการฉายซำาตามความเรวในการหมนของฉากรบ โดยความเรวของฉากรบนนจะถกควบคมโดยสวนควบคมอตราการแสดงผล

สวนควบคมอตราการแสดงผลการพฒนาสวนแสดงผลภาพ เราตองอาศยการทำางานทสอดคลอง

กนระหวางความเรวในการหมนของฉากรบภาพและอตราการแสดงภาพผานทางเครองโปรเจกเตอร และเพอใหการแสดงผลเปนไปอยางสมบรณ จำาเปนตองอานคาจากวงจรตรวจวดรอบของเครองแสดงผล 3 มต โดยการอานคาจากวงจรตรวจวดรอบจะทำาการอานคาผานทาง Parallel port เนองจากโปรแกรมททำาการพฒนาใชกบระบบปฏบตการ Windows XP การอานคาผานทาง Parallel port ไมสามารถอานคาไดโดยตรง ตองทำาการตดตง Driver สำาหรบตดตอกบ I/O Port กอน โดย Driver ทใชในการพฒนาโปรแกรมไดใช DriverLINX Port I/O Driver ของ Scientific Software Tools, Inc สำาหรบการพฒนาโปรแกรมเพอท

13

Page 15: รหัสโครงการ…………… - Serverdee · Web view5. NUM 5 : Step in 5 time slots. เป นค ย สำหร บใช ควบค มการเพ ม/ลด

จะทำาใหโปรแกรมทพฒนาโดยใช Microsoft Visual C++ หรอ Microsoft Visual Basic สามารถอานคาผานทาง Parallel port ได

14

Page 16: รหัสโครงการ…………… - Serverdee · Web view5. NUM 5 : Step in 5 time slots. เป นค ย สำหร บใช ควบค มการเพ ม/ลด

ขนตอนก�รทำ�ง�นของโปรแกรมการพฒนาสวนแสดงผลภาพ

ซอฟทแวรในสวนของการแสดงผลภาพ จะเปนการนำาชดภาพทไดจากการคำานวณจากโมเดลสามมตมาแสดงออกทางหนาจอแสดงผลหรอโปรเจคเตอร เพอใหเกดเปนวตถทฉากรบ ดงนนการพฒนาสวนแสดงผลภาพจะถกแบงออกเปนสองสวน คอ

สรางชดภาพของโมเดลสามมตในสวนของการแสดงภาพ โปรแกรมใชการแสดงของชดภาพแสดง

ตอเนองกนเพอใหเกดเปนโมเดลสามมตบนฉากรบหมนตามหลกการ Volume Metric Display เพอใหในขณะทฉากรบหมนเกดการคำานวณนอยทสด จะตองทำาการสรางชดภาพทจะแสดงไวกอน โดยเครองมอทเลอกใชเปนโปรแกรมสำาหรบสรางภาพสามมต 3ds max

ขนตอนการสรางชดภาพโดยโปรแกรม 3ds max1. สรางโมเดลวตถและโมเดลของฉากรบรป Helix2. นำาโมเดลทงสองผาน Intersection operation จะไดภาพของ

วตถถกตดออก3. ใชเครองมอ Motion เพอทำาการหมนฉากรบใหตดผานวตถ4. ทำาการ Render และบนทกภาพทไดตามลำาดบการหมนของฉาก

รบโดยขนตอนการสรางชดภาพอธบายดวยรป

15

Page 17: รหัสโครงการ…………… - Serverdee · Web view5. NUM 5 : Step in 5 time slots. เป นค ย สำหร บใช ควบค มการเพ ม/ลด

รปการสรางชดภาพโดยโปรแกรม 3ds max

รปตวอยางชดภาพทไดจากโปรแกรม 3ds max

สวนแสดงผลภาพซอฟตแวรในสวนแสดงผลภาพจะเปนการแสดงรปภาพลงบน

หนาตางทไดสรางขน ซงไดกลาวในหวขอทผานมา ใชชดพฒนา OpenGL ซงการใชงานคำาสง OpenGL จะมคำาสงพนฐานดงรปท 4.2 โดยแตละคำาสงอธบายการทำางาน ไดดงน

16

Page 18: รหัสโครงการ…………… - Serverdee · Web view5. NUM 5 : Step in 5 time slots. เป นค ย สำหร บใช ควบค มการเพ ม/ลด

#include < windows.h > #include < stdio.h > #include < GL/glut.h >

void display(void) {

glColor3f(0.0, 0.0, 0.0);glClear( GL_COLOR_BUFFER_BIT);

/*------- display -------*/

glFlush();

}

int main(int argc, char **argv) {

glutInit(&argc, argv); glutInitDisplayMode ( GLUT_SINGLE | GLUT_RGB | GLUT_DEPTH); glutCreateWindow ("Hello World"); glutDisplayFunc(display); glutMainLoop();

return 0; }

รป ตวอยาง code โปรแกรมดวย OpenGL

void glutInit(int *argcp, char **argv); glutInit เปนฟงกชนททำาหนาท กำาหนดคาเรมตนตางๆ ใหกบ

GLUT library ซงตองเรยกเปนฟงกชนแรกกอนเรยกฟงกชนอนๆ ใน GLUT library โดยพารามเตอรทใสไป 2 ตวกเปนพารามเตอรของ main โปรแกรม void glutInitDisplayMode(unsigned int mode);

glutInitDisplayMode เปนการกำาหนดคาเรมตนใหกบตวหนาตางทเราสรางขนวาจะมการแสดงผลอยางไร โดยคาของ mode ถกกำาหนดไวกอนแลว สามารถใชเครองหมาย OR bitwise มาเชอม mode ตางๆ ได int glutCreateWindow(char *name);

glutCreateWindow เปนการสรงหนาตางขนมา โดย name จะเปนชอของหนาตางและแสดงบน title bar ของหนาตาง void glutDisplayFunc(void (*func)(void));

17

Page 19: รหัสโครงการ…………… - Serverdee · Web view5. NUM 5 : Step in 5 time slots. เป นค ย สำหร บใช ควบค มการเพ ม/ลด

glutDisplayFunc เปนการกำาหนด the display callback วาเปนฟงกชนไหน โดยพารามเตอรทใสเปนชอของฟงกชน กลาวคอเมอหนาตางมการถกวาดใหมใหเรยกฟงกชนอะไร void glutMainLoop(void);

glutMainLoop เปนการเรมตนรบเหตการณตางๆ ของผใชทจะกระทำาตอหนาตาง void glColor3f( GLfloat red, GLfloat green, GLfloat blue );

glColor3f เปนการทำาหนดคาของของสโดยเกดจากแมส 3 สคอ แดง เขยว นำาเงน void glClear( GLbitfield mask );

glClear เปนการ initialize ตว buffer ซงตวสพนโดยถกกำาหนดจากคำาสงพวกกำาหนดส เชน glColor3f สำาหรบ mask จะบอกวา clear ท buffer ใดบาง ซงเปนคาทเปนคาคงททกำาหนดไวแลว โดยถาใสมากกวา 1 ตวโดยใช OR bitwise เปนตวเชอม void glFlush( void );

glFlush เปนการบงคบใหแสดงผลลพธของคำาสงตางๆ กอนทเรยก glFlushการแสดงรปภาพ bmp

ในสวนของรปภาพทถกนำามาแสดงผลจะเปนไฟลนามสกล .Bmp โดยในการโหลดภาพสกล Bmp นนจะใชคลาสทชอ BMPLoader ของ Chris Backhouse ทใหดาวนโหลดไดฟรจากอนเตอรเนต โดยเรยกใชฟงกชนทชอ BMPLoad โดยสงคาพารามเตอรทเปนชอของไฟลไปยงฟงกชน ซงฟงกชนดงกลาวจะทำาการสงคาของ Surface กลบมา ทงนเนองจาก การแสดงผลผานชดพฒนา OpenGL นน จะอาศยการสราง Surface แลวแสดงผลบนจอภาพ ดงนน เมอทำาการเรยกใชฟงกชนดงกลาว คาทถกสงกลบมาซงมชนดเปน Surface จะสามารถถกนำาไปใชงานไดทนท#include "BMPLoader.h"...void loadImageBMP(void){

18

Page 20: รหัสโครงการ…………… - Serverdee · Web view5. NUM 5 : Step in 5 time slots. เป นค ย สำหร บใช ควบค มการเพ ม/ลด

std::string fname;char imagename [] = "piramid/piramid00xx.bmp";int x = 17;

int j=1;for(int i=0;j<50;i++){

imagename[x] = (char)(48+int(j/10));imagename[x+1] = (char)(48+(j%10));fname = imagename;BMPLoad(fname,bmp[i]);j+=8;

}}

รป ตวอยาง code โปรแกรมโหลดภาพสกล Bmp

การสราง Delayในการแสดงผลเพอใหจงหวะในการแสดงภาพเขากบการหมนของ

ฉากรบ จำาเปนตองสรางฟงกชน Delay เพอใชในการหนวงเวลาการแสดงภาพใหเขากบฉากรบ โดยในโปรแกรมจะใชการ for ลปเพอหนวงเวลาการแสดงภาพ โดยใหมตวแปร delay เพอใชในการกำาหนดชวงเวลาทหนวง ดงรปvoid delayfunc(void){

int x,y;for(x = 0; x < delay; x++){

for(y = 0; y < 200; y++){}

}}

รปตวอยาง code ฟงกชน delayการทำางานของโปรเจคเตอร

การแสดงภาพของโปรเจคเตอรจะถกจำากดดวยอตราการ refresh rate เชน โปรเจคเตอรม refresh rate อยท 60 Hz หมายความวา เครองโปรเจคเตอรใชเวลาในการแสดงภาพหนงภาพใชเวลา 1/60 วนาท หรอ 0.016 วนาท แตในขณะทความสามารถในการ render ภาพ ของคอมพวเตอรจะถกจำากดท frame rate ซงมอตราเรวทสงกวามาก โดยขนอยกบความสามารถของ CPU และ การดแสดงผล โดยเมอวเคราะหท frame rate สงกวา refresh rate มากๆ จะทำาใหเกดปรากฏการททำาให

19

Page 21: รหัสโครงการ…………… - Serverdee · Web view5. NUM 5 : Step in 5 time slots. เป นค ย สำหร บใช ควบค มการเพ ม/ลด

ภาพทแสดงออกมาไดไมเตมภาพจากภาพทคอมพวเตอร render ได โดยสามารถอธบายไดดงรป

รปความสมพนธระหวาง refresh rate กบ frame rateจากการทำางานของอปกรณแสดงภาพ จะเปนการวาดภาพทไดจาก

การ render ของคอมพวเตอร ทละแถวจากขวา-ซาย และจากบน-ลาง และเมอมการสงภาพใหมเขามาจากการ render ภาพทเขยนตอจากบรรทดเดมจะเปลยนเปนภาพทเขามาใหม

การอธบายการแสดง frame ดวย Time lineในโปรแกรมจะใชหลกการของ Volume Metric Display โดยให

โปรแกรมฉายภาพวตถในมมมองตางๆตามการหมนของฉากรบ โดยแตละ frame จะถกแสดงทกชวงเวลาและถกแสดงซำาเมอครบหนงรอบการหมนของฉากรบ เพอใหงายตอการอธบายในทนจะใช Time line เขามาชวยในการพจารณา โดยการใชระบบเสนเวลาเปนตวอธบายจดทตองแสดงภาพแตละ frame และอธบายขนาดของชวงความยาว clock ทใชรวมถงชวงเวลาทฉากรบใชในการหมนหนงรอบ รปดานลางเปนตวอยางการแสดงตำาแหนงวตถดวย Time line

20

Page 22: รหัสโครงการ…………… - Serverdee · Web view5. NUM 5 : Step in 5 time slots. เป นค ย สำหร บใช ควบค มการเพ ม/ลด

รปตวอยางการแสดงตำาแหนงวตถดวย Time lineจากรปอธบายไดวา วตถ A ใชจำานวนเฟรมในการแสดงผล 3 เฟรม

โดยมชวงเวลาทใชในการแสดงแตละเฟรมเทากบคา Clock และในหนงรอบการหมนของฉากรบใชจำานวน Clock เทากบ 6 เฟรม

การแสดงภาพวตถในการแสดงภาพวตถเครองแสดงผล 3 มต จะใชการแสดงภาพ

แตละเฟรมใหเขากบฉากรบ เมอภาพตกกระทบกบฉากรบแลวทำาการ Delay ไปชวงเวลา Clock ดงรปดานบน จะทำาใหภาพทตกกระทบทฉากรบเกดเปนระดบชนดงรปดานลาง ซงเปรยบเสมอนคาพกดของฟกเซลในแนวแกน Z นอกจากในแนวแกน XY เดม ซงจำานวนของระดบชนสามารถหาไดจำานวนรปทใชในการแสดงผลตอหนงรอบการหมนของฉากรบ

รปแสดงการเกดระดบชนเมอภาพตกกระทบฉากรบ

21

Page 23: รหัสโครงการ…………… - Serverdee · Web view5. NUM 5 : Step in 5 time slots. เป นค ย สำหร บใช ควบค มการเพ ม/ลด

จากการพจารณาใน Time line ในรป และระดบชน ทำาใหไดความสมพนธของรอบการแสดงผล (T1/2) ดงน

T1/2 = (ความยาว clock) x (N clock ทใชในหนงรอบ)เนองจากจำานวน Clocks เทากบจำานวนระดบชน (layers) ดงนนเขยนใหมไดดงน

T1/2 = (ความยาว clock) x (จำานวน layers)

สมการ 1.4

และสามารถหาจำานวน layers ไดโดยเขยนสมการใหมไดดงน จำานวน layers = (T1/2) / (ความยาว clock)

สมการ 1.5

และจากความสมพนธของความยาว Clock กบ frame rateClock = 1 / frame rate

ดงนนสามารถหาคา frame rate ไดดงน Frame rate = (จำานวน layer) / (T1/2)

สมการ 1.6

จากความสมพนธนสามารถนำาไปใชในการคำานวณหาเวลาทใชในการแสดงผลหนงรอบ หรอความเรวในการหมนของฉากรบได รวมถงคำานวณหาจำานวณ frame rate ทใชในการแสดงผล และจำานวนระดบชนทโปรแกรมสามารถทำาไดอกดวย

ขอจำากดของการแสดงผลดวยโปรเจคเตอรเนองจากความสามารถในการแสดงผลของเครองโปรเจคเตอร

สามารถแสดงผลไดท refresh rate ท 60 Hz เทานน ซงกหมายความวาถาฉากรบหมนดวยความเรวสงจะทำาใหจำานวนของระดบชนลดลงและทำาใหความละเอยดในการแสดงผลลดลงดวย จากการทดลองวดชวงเวลาทใชในการหมนของฉากรบหนงรอบใชเวลาประมาณ 37.7 มลลวนาท และ

22

Page 24: รหัสโครงการ…………… - Serverdee · Web view5. NUM 5 : Step in 5 time slots. เป นค ย สำหร บใช ควบค มการเพ ม/ลด

เมอแทนในสมการ 1.6 จะไดจำานวนระดบชนเทากบ 2.2 หรอสามารถแสดงผลไดเพยง 2 ระดบชนเทานน

ดงนนแนวทางหนงทใชในการแกปญหาดงกลาว จำาเปนจะตองลดความเรวของการหมนของฉากรบหรอคดวธเพอใหสามารถเพมจำานวนระดบชนโดยทไมจำาเปนตองลดความเรว โดยแนวทางหนงคอ ใหเฟรมหนงเสมอนแสดงภาพของสองระดบชนในเวลาเดยวกน ผลทไดจงเสมอนแสดงระดบชนเพมเปน 2 เทา รปดานลาง แสดงผลของการใชวธดงกลาว

ภาพตนฉบบ

ภาพทไดจากวธปกต ภาพแสดง 2 ระดบในชนเดยวรปเปรยบเทยบผลทไดจากวธปกตกบวธแสดง 2 ระดบในชนเดยว ใน

ระนาบ YZจะเหนวาภาพทได มองเหนรายละเอยดไดชดเจนขน โดยเสมอนวา

สามารถแสดงระดบชนไดถงสองเทา

23

Page 25: รหัสโครงการ…………… - Serverdee · Web view5. NUM 5 : Step in 5 time slots. เป นค ย สำหร บใช ควบค มการเพ ม/ลด

อกแนวทางหนงทใชในการแกปญหานคอ เมอมองกลบไปทการทำางานของโปรเจคเตอรในหวขอการทำางานของโปรเจคเตอร จะเหนวาเมอความถในการแสดงผลของโปรเจคเตอรหรอ refresh rate มความถทนอยความถในการ render ภาพของคอมพวเตอรหรอ frame rate เมอคอมพวเตอรสงภาพทไดจากการ render เขาไปทโปรเจคเตอรแลวโปรเจคเตอรสามารถแสดงผลไดทนท แตไมสามารถแสดงผลไดทงภาพ โดยการแสดงผลจะสามารถแสดงผลไดเพยงสวนเดยวเทานน เมอความถ frame rate สงมากๆจะเสมอนหนงวาในหนงการ refresh ของโปรเจคเตอรแสดงเฟรมหลายๆเฟรมพรอมกน ซงจะสอดคลองกบหลกการแสดง 2 ระดบชนในชนเดยวดงทกลาวไปแลว แตสามารถแสดงผลของเฟรมจากการ render ไดทนททำาใหสามารถกำาหนดชวงการแสดงผลทชวงใดๆได ซงเสมอนวามระดบชนเทากบ frame rate คณกบคาเวลาทใชในการหมนหนงรอบของฉากรบในสมการท 4.3

การ Synchronize การหมนของฉากรบใหเขากบการแสดงผล- เขยนโปรแกรมตรวจจบเวลาในการหมนของฉากรบภาพครบ 1

รอบคอ เวลาในการหมน 1 รอบ ตวแปร X มหนวยเปนมลลวนาท (milliseconds)

- เมอวเคราะหลกษณะของฉากรบภาพทใชเปนแบบเกลยวค (Double Helixes) ซงแสดงผลภาพได 2 ครงตอการหมน 1 รอบ ดงนน ระยะเวลาททำาการแสดงผลวตถจากสวนบนสดจนถงสวนฐานของวตถ คอ X/2 มลลวนาท (milliseconds)

- ความถในการแสดงผลของเครองโปรเจคเตอร เทากบ 60 เฮรซ ซงหมายถง ใน 1 วนาท แสดงภาพได 60 ภาพ แมวาการทำางานของโปรแกรมสงกวา 60 ภาพตอวนาทกตาม

- ฉากรบภาพหมนครงรอบ จะแสดงรปทรงวตถ 1 ครง นนคอ จำานวนรป 2 มตทถกแสดงเปนรปทรงวตถมจำานวน (60/1000) * (X /2) ภาพ

24

Page 26: รหัสโครงการ…………… - Serverdee · Web view5. NUM 5 : Step in 5 time slots. เป นค ย สำหร บใช ควบค มการเพ ม/ลด

- ในชวงระยะเวลา X/2 จะถกแบงเปน (60/1000) * (X /2) สวนยอยเพอแสดงภาพสวนตางๆของวตถ ดงนน แตละภาพยอยจะถกแสดงผลเปนระยะเวลา (X /2) / {(60/1000) * (X /2)} ซงเทากบ 16.667 ภาพ หรอ 16 ภาพเทานน (เศษทไมเปนจำานวนเตม ไมสามารถคดเปน 1 ภาพได)

25

Page 27: รหัสโครงการ…………… - Serverdee · Web view5. NUM 5 : Step in 5 time slots. เป นค ย สำหร บใช ควบค มการเพ ม/ลด

โครงสร�งของซอฟตแวร (Software Design)สวนของซอฟแวรของโปรแกรมจะประกอบดวย Function ทมหนา

ทตอไปนMain - ทำาหนาทในการตดตอกบสวนตางๆของโปรแกรมDisplay - ทำาหนาทแสดงผลชดภาพทไดจากการประมวลผลแลวมา

แสดงออกดวยชวงเวลาตามฟงกชน Delay เพอใหการแสดงผลภาพตรงกบการหมนของฉากรบ

Delay – ทำาหนาทหนวงเวลาการแสดงภาพเพอใหการแสดงผลภาพตรงกบการหมนของฉากรบ โดยชวงเวลาท Delay จะถกกำาหนดจากฟงกชนทตดตอกบ parallel port สำาหรบวดความเรวของฉากรบ

Read parallel port – ทำาหนาทตดตอกบ parallel port เพอวดความเรวในการหมนของฉากรบและสงคาทไดใหฟงกชน Delay ทำาการประมวลผลและกำาหนดชวงเวลาทเหมาะสมในการแสดงภาพ

Keyboard – ทำาหนาทตดตอกบ user ผานทางอปกรณ keyboard เพอให user สามารถกำาหนดคาตางๆ ในโปรแกรมรวมถงการกำาหนดชวงของ Delay ได

Load image BMP – ทำาหนาทในโหลดไฟลสกล BMP ทไดจากการนำาโมเดลวตถมาตดกบโมเดลของฉากรบรป Helix เพอแสดงออกทางฟงกชน Displayโดยสวนประกอบและความสมพนธของโปรแกรมแสดงไวดงรป

26

Page 28: รหัสโครงการ…………… - Serverdee · Web view5. NUM 5 : Step in 5 time slots. เป นค ย สำหร บใช ควบค มการเพ ม/ลด

รปโครงสรางโปรแกรมแสดงภาพ 3 มต

เครองมอทใชในก�รพฒน�

- Visual Studio .NET C++

ขอบเขตและขอจำ�กดของโปรแกรมทพฒน�

วตถทแสดงผลออกมานน ไมสามารถแสดงคณสมบตและสของพนผวของภาพนนได และถาอยในท ทมแสงมากเกนไป จะเปนอปสรรคในการแสดงผลของเครองเปนอยางมาก และถาไมมระยะหางหรอวาพนทเรยบ จะลำาบากในการวางเครอง โปรเจคเตอร ในสวนของการตดตงเครองมความยงยากในบางสวน โดยเฉพาะการวางตวบงเซนเซอรของตววดรอบ ตองวางใหบงใหไดครบรอบ การแสดงผลถงจะไดอยางมประสทธภาพ

คณลกษณะของอปกรณทใชกบโปรแกรม

อปกรณทใชทสำาคญกคอฉากรบทเปนรปทรง Double Helix ทตองหมนดวยความเรวคงท จงจำาเปนตองใชมอเตอรมาตอตรงกบแกนของฉาก เพอใหฉากรบทำาการหมน แลวยงมโครงเหลกทชวยจบมอเตอรและฉากรบใหตงตรงอยได แถมดวยกระจกเงาทจะสะทอนภาพทสงมาจากโปรเจคเตอรใหสะทอนไปตกกระทบทฉากรบ และสดทายคอ เครองวดรอบการหมน ทอยภายในเครองหลงแกนของฉากรบ มหนาทวดความเรวรอบการหมนของฉากรบวาหมนครบรอบแลว กจะสงขอมลผาน Parallel port แลวสงเขาคอมพวเตอรใหโปรแกรมคำานวณตอไป

27

Page 29: รหัสโครงการ…………… - Serverdee · Web view5. NUM 5 : Step in 5 time slots. เป นค ย สำหร บใช ควบค มการเพ ม/ลด

กลมผใชโปรแกรม

กลมผใชโปรแกรมจะเปนผทตองการแสดงผลงานออกมาในรปแบบ 3 มต เพอทจะแสดงผลงานนนๆใหเหนเปนรปทรงทเดนชดกวาในรปแบบ 2 มต ทตองแสดงหลายภาพจงจะเหนลายละเอยดครบถวน แตการแสดงภาพ 3 มต ในแบบน สามารถแสดงผลครงเดยวแตไดลายละเอยดของวตถนนทงหมด และนอกจากผทตองการแสดงผลแบบ 3 มตแลว ผทสนใจเกยวกบเทคโนโลยใหมๆ กสามารถนำาไปใชไดเชนกน

ผลของก�รทดสอบโปรแกรม

โปรแกรมสามารถทำางานไดตามวตถประสงคทตงไว สามารถแสดงภาพออกมาในรปแบบวตถ 3 มต สามารถมองเหนไดจากทกมองยกเวนดานลางเครอง เนองจากตดกระจกเงา

ปญห�และอปสรรค

ในสวนของฮารดแวรทพบมากทสดคงจะเปนการสรางฉากรบทเปนรปทรง Double Helix เนองจากตองใชวสดทกงโปรงใส และตองไดรายละเอยดมาก และเปนรปทรงทไมคอยนยมมากนก การสงทำาจงมปญหาในการหารานทรบทำา จงตองทำาการสรางเอง จงไมไดฉากรบทตามทออกแบบ 100% และในสวนอนเชนความเรวมอเตอรทใชมอเตอรพดลมทใชไฟฟากระแสสลบ ทำาใหควบคมความเรวไดลำาบาก และการสนของแกนฉากรบเมอเครองทำางาน มบางเลกนอย ทำาใหภาพทไดไมนง

ในสวนของซอฟแวรนนมปญหาในการฟงชนตางๆใน OpenGL ทเมอนำามาใชแลวเกนปญหาเรองสและการเลอนของภาพ

28

Page 30: รหัสโครงการ…………… - Serverdee · Web view5. NUM 5 : Step in 5 time slots. เป นค ย สำหร บใช ควบค มการเพ ม/ลด

แนวท�งในก�รพฒน�และประยกตใชรวมกบง�นอนๆ ในขนตอไป

โปรแกรมสามารถนำาไปเพมเตมสรางรายละเอยดของวตถทจะแสดงผลได และนำาภาพทเปนแบบ 2 มต มาประยกตใหสามารรถแสดงภาพออกมาในรปแบบ 3 มตได และสามารถทำาใหมการเคลอนไหวแบบ Real Time และสามารถนำาไปใชสรางเกมสทเปนการเลนแบบ 3 มต ทสนกสนาน หรอสรางสอการสอนเดกๆใหเหนภาพไดชดเจนมากยงขน

ขอสรปและขอเสนอแนะ

เคร องแสดงผล 3 มตทไดทำาการพฒนาขนน จะใชหลกการของ Volumetric Display ในการแสดง รปภาพ 3 มต โดยใชกระบวนการทาง Computer Graphic ในการแสดงภาพผานเคร องโปรเจกเตอรและคำานวณหาชวงเวลาในการแสดงภาพแตละภาพ ผลการการแสดงภาพ 3 มตท ไดจากเคร องแสดงผล 3 มต พบว าสามารถใช งานไดอยในระดบเปนทนาพอใจ และสามารถนำาไปใชงานไดจรง

29

Page 31: รหัสโครงการ…………… - Serverdee · Web view5. NUM 5 : Step in 5 time slots. เป นค ย สำหร บใช ควบค มการเพ ม/ลด

เอกส�รอ�งอง (Reference)

นรธ อำานวยศลป. 2545. เขยนเกมอยางมออาชพดวย Visual C++ และ DirectX, บรษท ซเอดยเคชน จำากด (มหาชน) กรงเทพฯ.

พรภทร สวางเพยร. 2545. เทคนคการเขยนโปรแกรมและเกมดวย Visual C++ บรษท ซเอดยเคชน จำากด (มหาชน) กรงเทพฯ.

ยทธนา ลลาศวฒนกล. 2546. คมอการเขยนโปรแกรมและใชงาน Visual C++ .NET ฉบบสมบรณ. อนโฟรเพรส นนทบร.

วสนต จำาปาแพง และ เสวตร ลาศา, 2548. รายงาน COE2004-10 เครองแสดงผล3มต, คณะวศวกรรมศาสตรภาควชาวศวกรรมคอมพวเตอร.

André Lamothe. 1999. Tricks of the Windows Game Programming Gurus Fundamentals of 2D and 3D Game Programming. SAMS.

Detlef Bahr, Knut Langhans, Martin Gerken, Carsten Vogt, Daniel Bezecny, Dennis Homann VFN. February 2004. FELIX 3D-Display. Youth Research Center of Applied Sciences. Available from : URL: http://www.felix3d.com

Hitachi 3D display. Hitachi, Ltd. February 2004. Available from : URL:http://nkcp.zive.net/kokoro/archives/002848.html

Jim Adams. 2003. Advanced Animation with DirectX. Premier Press, a division of Course Technology.

Parviz Soltan,Mark Lasher. February 1996. LASER PROJECTED 3-D VOLUMETRIC DISPLAYS. Simulation and Human Systems Technology Division. Available from : URL:http://www.spawar.navy.mil/ sti/ publications/ reprints/ 3dvolumetricdisplay/ reprints/ soltan/ volu.html

T. E. Phillips. June 1984. Stereoscopic and Volumetric 3-D Displays: Survey of Technology. Naval Command. Control and Ocean Surveillance Center TR 946.

30

Page 32: รหัสโครงการ…………… - Serverdee · Web view5. NUM 5 : Step in 5 time slots. เป นค ย สำหร บใช ควบค มการเพ ม/ลด

ภ�คผนวก (Appendix)

- Double helixesฮลกซ(Helix) รปรางของฉากแบบนเราอาจจนตนาการไดจากรปรางของกนหอย โดยจะเปนแบบเกลยวเดยวหรอนำาเกลยวแบบเดยว 2 ตวมาประกอบกนเปนเกลยวค(Double helixes) ดงรปดานลาง

- GLUเปนการเอาชดคำาสงของ OpenGL ทถกใชบอยๆมารวมกนเปนคำา

สงใหมซงทำาใหการเขยนโปรแกรมสะดวกขนอยางเชนการทำา Mipmapping สำาหรบ Texture Mapping, การแปลงโคออดเนทแบบ Orthogonal และ Perspective, การแบงซอยรปเหลยมหรอ Polygon Tessellation, การเรนเดอรรปทรงพนฐานเชนทรงกลม ทรงกระบอก และแผนจาน, และการวาดเสนโคงและพนผวโคงโดยใช Non-Uniform Rational B-Spline (NURBS) คำาสงของ GLU จะขนตนดวยคำาวา glu เสมอ การเรยกใชจะตอง include ไฟล header ชอ glu.h

- GLUTGLUT เขยนขนโดย Mark Kilgard เปนเครองมอชวยตดตอระ

หวางแอพพลเคชนของ OpenGL กบระบบปฏบตการแบบ Windows หรอเรยกวาเปน API (Application Programming Interface) ทำาใหการเขยนโปรแกรมโดยใช OpenGL มความซบซอนนอยลง เหมาะ

31

Page 33: รหัสโครงการ…………… - Serverdee · Web view5. NUM 5 : Step in 5 time slots. เป นค ย สำหร บใช ควบค มการเพ ม/ลด

สำาหรบการพฒนาโปรแกรมขนาดเลกถงขนาดกลาง คำาสงของ GLUT จะขนตนดวยคำาวา glut

- LCD ProjectorLCD Projector ทำางานโดยใชหลอดไฟ กำาลงไฟสองสวางสง

ประเภท เมทล-ไฮไลท หรอหลอด UHP (ULTRA HIGH POWER) เปนตนกำาลงสองสวางกำาเนดแสงโดยแสงจะวงผาน DICHROIC MIRROR (กระจกสะทอนกรองแสง) ทำาหนาทแยกแสงออกเปน 3 แมส คอแดง -RED (R) , เขยว - GREEN (G) และนำาเงน -BLUE (B) เพอใหแสงแตละส ผานไปส LCD PANEL ของแตละสซงแตละจดจะประกอบไปดวยจำานวนแผงพกเซล (PIXELS) เลกๆ มากมาย แตละ PIXEL จะถกควบคมดวยสญญาณไฟฟาในการเปดหรอปดใหแสงแตละสผานไปท

จอภาพได โดยแสงทผาน PIXEL จะผานเลนสรวมแสงเพอผสมแมสดง รปดานลาง ทำาใหเกดภาพ

โครงสรางของ LCD Projector- OpenGL

OpenGL เปนซอรฟแวรไลบราลทใชตดตอกบฮารดแวรแสดงผล โดยมคำาสงพนฐานประมาณ 120 คำาสงทสามารถใชกำาหนดคณลกษณะและควบคมการทำางานของแอพพลเคชนสามมต ผพฒนาโปรแกรม สามารถใชไลบราล OpenGL ไดโดยไมมคาลขสทธ

32

Page 34: รหัสโครงการ…………… - Serverdee · Web view5. NUM 5 : Step in 5 time slots. เป นค ย สำหร บใช ควบค มการเพ ม/ลด

OpenGL ถกออกแบบมาโดยไมยดตดกบระบบ สามารถทำางานไดบนทกๆแพลตฟอรม (Portability) เพอทจะบรรลเปาหมายน OpenGL จะไมมคำาสงทจดการกบระบบปฏบตการเลย อกทงยงไมมคำาสงเพอรบอนพทจากผใชอกดวย หนาททงสองอยางนจงตกอยกบผเขยนโปรแกรม อยางไรกตามยงมซอรฟแวรเพมเตมทชวยจดการงานทงสองนหากพฒนาโปรแกรมบนระบบปฏบตการแบบ Windows นอกจากน OpenGL ยงไมมคำาสงระดบสงทจะใชวาดวตถสามมตแบบซบซอนอยางเชนรถยนต อวยวะ หรอโมเลกล สงท OpenGL เตรยมไวใหสำาหรบสรางรปจำาลองสามมตคอรปทรงเรขาคณตอยางงายไดแก จด เสน และรปหลายเหลยมซงผใชงานจะตองนำารปทรงเหลานมาประกอบกนเพอใหเกดรปทรงสามมตทซบซอนขน

- Parallel portพอรตขนานมชอเรยกอก 2 ชอคอ LPT port หรอ Printer port

โดยไดรบการพฒนาเปนครงแรกจากบรษท IBM เพอมไวในการตออปกรณแบบ Parallel ซงสวนใหญคอเอาไวตอกบเครองพมพประเภทDot Matrix เมอเครองคอมพวเตอรสงขอมลไปยงเครองพมพหรออปกรณอนๆโดยผานทางพอรตขนานนนจะทำาการสงขอมลทละ 8 Bit ซงมาตรฐานในการสงขอมลมความเรว 115 Mbytes/s พอรตขนานสามารถสงขอมลไดเรวกวาพอรตอนกรมเนองจากสงขอมลครงละ 8 bit มการจดวาง และหนาทของแตละขาแสดง ประเภทและลกษณะการทำางานของพอรตขนานมดงน

1. Standard Parallel Port (SPP)เปนพอรตทสงขอมลในการพมพผานทาง Printer ไดอยางเดยว

และเปนคณสมบตพนฐานทสดทคอมพวเตอรทกเครองสามารถทำาได การทำางานของพอรตแบบนคอนขางชา โดยในเครองรนเกาๆ จะไมมวงจรชวยใดๆแตปลอยให CPU ตรวจสอบสถานะตางๆท Printer สงตอบกลบมา และการจดสงสญญาณควบคมตลอดจนขอมลแตละ Byte เอง

2. Bidirectional

33

Page 35: รหัสโครงการ…………… - Serverdee · Web view5. NUM 5 : Step in 5 time slots. เป นค ย สำหร บใช ควบค มการเพ ม/ลด

พอรทนทำางานได 2 ลกษณะคอ ถา Hardware มความสามารถทจะสงขอมลกลบมาทางสายสญญาณเตมทง 8 เสน (ทง 8 bit คอ 1 byte) เหมอนกบท CPU สงออกไปจะเรยกวาการทำางานแบบ Byte mode และการทำางานแบบอาศยสายสญญาณบอกสถานะการทำางานทมจำานวน 4 เสน ในการสงขอมลกลบแทน ซงจะสงไดเพยงทละครง Byte หรอ 4 bit เรยกวา Nibble mode

3. Enhanced Parallel Port (EPP)พอรตนไดรบการออกแบบในป 1991 โดยกลมบรษทชนนำาเชน

Intel, Xirrom และ Zenith ซง EPP จะสามารถสงผานขอมลไดแตละวนาทไดประมาณ 500 Kbytes ถง 2 Mbytes โดยความเรวในการทำางานสงสด 3 Mbytes/s ซงตองมการทำางานโดยเฉพาะ และจงหวะในการสงขอมลของ EPP ยงสมพนธกบการทำางานของบสแบบ ISA ทำาใหมความสามารถในการรบสงขอมลโดยรวมใกลเคยงกน จงสามารถใชกบอปกรณทรบสงขอมลปรมาณมากๆไดเชน LAN card, CD-ROM

4. Extended Capability Port (ECP)เปนมาตรฐานการรบสงขอมลผานพอรตขนานทพฒนาขนโดย

Microsoft รวมมอกบ HP ในป 1992 ใชสำาหรบเชอมตออปกรณทมการรบสงขอมลปรมาณมากๆเชน Printer หรอ Scanner โดยเพมการรบสงขอมลดวยวธการ DMA (Direct Memory Access) ซงสามารถรบสงขอมลกบหนวยความจำาหลกไดโดยตรงโดยไมตองคอยหรอผาน CPU นอกจากน ยงเพมความสามารถในการยอขอมลไดจนถงสงสด 64เทาดวยวธแบบ RLE (Run Length Encoding) คลายกบทใชใน hard disk ทำาใหสามารถรบสงขอมลไดเรวระดบใกลเคยงกบ EPP นอกจากน ECP นนยงสามารถอางถงอปกรณทตออยไดในหลายลกษณะพรอมๆกน โดยมองเสมอนวาตออยกบพอรตคนละตวกน เรยกวาการทำา channel addressing ตวอยางเชนอปกรณจำาพวก multifunction

34

Page 36: รหัสโครงการ…………… - Serverdee · Web view5. NUM 5 : Step in 5 time slots. เป นค ย สำหร บใช ควบค มการเพ ม/ลด

โครงสรางการวางตำาแหนงขาของ Parallel port

ตารางแสดงหนาทของขาใน Parallel port

35

Page 37: รหัสโครงการ…………… - Serverdee · Web view5. NUM 5 : Step in 5 time slots. เป นค ย สำหร บใช ควบค มการเพ ม/ลด

วธก�รตดตง

1. ใหทำาการตดตงไฟล port95nt.exe ซงจะเปน Driver ทใชตดตงเพอใหเครองคอมพวเตอรสามารถ ตดตอกบเครองแสดงผล 3 มต ผานทางพอรตขนาน(Parallel)ได โดยการ Double click ทไอคอน

2. หลงจากนน จะปรากฎหนาตางสำาหรบตดตงโปรแกรม ดงรปดานลาง ให Click ทปม Next เพอดำาเนนการตดตงในขนตอไป

3. หนาตางของโปรแกรมจะแสดงเงอนไขการใชงานโปรแกรมให Click ทปม “ YES” เพอยอมรบเงอนไขการใชโปรแกรม

36

Page 38: รหัสโครงการ…………… - Serverdee · Web view5. NUM 5 : Step in 5 time slots. เป นค ย สำหร บใช ควบค มการเพ ม/ลด

4. หนาตางของโปรแกรมจะแสดงคำาแนะนำาในการใชงานโปรแกรม

5. หนาตางของโปรแกรมใหผใชทำาการเลอกตำาแหนงทจะทำาการตดตงโปรแกรมในการใชงานโปรแกรม โดยผใชสามารถปรบเปลยนตำาแหนงไดโดยการเลอกทปม Browse แลวเลอกไปยง Directory ทตองการ

จากนน ให Click ทปม Next ดำาเนนการเลอกรปแบบของการตดตง

37

Page 39: รหัสโครงการ…………… - Serverdee · Web view5. NUM 5 : Step in 5 time slots. เป นค ย สำหร บใช ควบค มการเพ ม/ลด

6. ใหทำาการ Restart เครองโดยเลอกท Yes, I want to restart my computer now. จากนน เลอกท Finish

7. Copy ไฟส 3D_Display.exe ไปวางไวในตวแหลงทตองการ8. Run ไฟส 3D_Display.exe เพอเขาสการทำางานของโปรแกรม9. ตดตงอปกรณดงรปดานลาง

38

Page 40: รหัสโครงการ…………… - Serverdee · Web view5. NUM 5 : Step in 5 time slots. เป นค ย สำหร บใช ควบค มการเพ ม/ลด

การตดตงอปกรณคอประกอบแกนของฉากรบและตามดวยกระจกเงาทง 2 แผน และจงใสตวครอบ แลวตอสายไฟ ซงตองเสยบปลกสเดยวกนจงจะถกตอง และทสำาคญคอตววดรอบตองจบตวกนเซนเซอรทตดกบแกนใหปดแสงไดครบครงรอบจงจะถกตอง

10. ตงโปรเจคเตอรใหหางจากเครองฉายภาพ โดยใชระยะทสนทสดทสามารถแสดงภาพทชดทสดบนฉากรบ11. สงใหโปรแกรมแสดงภาพทตองการฉายออกมาทางโปรเจคเตอร

ปญห�1. ภาพทไดออกมาเอยง ใหปรบตำาแหนงของโปรเจกเตอร ขนหรอลง

ใหไดภาพตรงตามทตองการ2. ภาพไมคมชด ใหหยดเครอง และปรบโฟกสของโปรเจกเตอรใหภาพท

ตกประทบฉากรบชดทสด3. มอเตอรหมน แตไฟไมเขาตววดรอบ ใหตรวจสอบการตอสายไฟวา

ตอถกตองหรอไม4. ลงโปรแกรมแลวแตรนไมได ใหลงไดเวอรพอรทใหมอกครง

วธก�รลบโปรแกรม

1. ไปท folder ของโปรแกรม2. คลกขวาท folder แลวเลอก delete3. เลอก yes

(หมายเหต: ถาจะลบ port95nt กสามารถลบไดโดย

39

Page 41: รหัสโครงการ…………… - Serverdee · Web view5. NUM 5 : Step in 5 time slots. เป นค ย สำหร บใช ควบค มการเพ ม/ลด

4. ไปท start menu5. เลอก Cotrol Panel6. เลอก Add or Remove Programs7. เลอก port95nt8. เลอก Remove)

40

Page 42: รหัสโครงการ…………… - Serverdee · Web view5. NUM 5 : Step in 5 time slots. เป นค ย สำหร บใช ควบค มการเพ ม/ลด

วธก�รใชโปรแกรม

1. ตดตงโปรแกรม

2. ตดตงอปกรณ2.1 ตอสาย Parallel port จากเครองแสดงผลสามมตเขากบ

พอรตปรนตเตอรของคอมพวเตอร2.2 ตอไฟเขาเครองแสดงผลสามมต เปดสวต2.3 ตอโปรเจคเตอรเขากบคอมพวเตอร เปดสวต วางโปรเจคเตอร

บนตำาแหนงทเหมาะสม2.4 ตดตงใหคอมพวเตอรมองเหนโปรเจคเตอร

3. Run โปรแกรมขนมาจะไดผลลพทดงภาพ

โดยอธบายการควมคมโปรแกรมโดยใชคยตางๆดงน1. F1 : Switch full screen mode.

เปนคยสำาหรบใชควบคมการสวตชระหวาง Full screen mode กบ window mode

2. KEY A : Switch full screen mode.เปนคยสำาหรบใชเปด/ปดระบบการสแกนหา frame rate ท

เหมาะสม3. UP/+ : Increase frame rate display.

เปนคยสำาหรบใชเพม Frame rate4. DOWN/-: Decrease frame rate display.

41

Page 43: รหัสโครงการ…………… - Serverdee · Web view5. NUM 5 : Step in 5 time slots. เป นค ย สำหร บใช ควบค มการเพ ม/ลด

เปนคยสำาหรบใชลด Frame rate5. NUM 5 : Step in 5 time slots.

เปนคยสำาหรบใชควบคมการเพม/ลด frame rate ทละ 5 เวลา

6. NUM 2 : Step in 2 time slots. เปนคยสำาหรบใชควบคมการเพม/ลด frame rate ทละ 2

เวลา7. NUM 1 : Step in 1 time slots.

เปนคยสำาหรบใชควบคมการเพม/ลด frame rate ทละ 1 เวลา

4. ควบคมอตรา frame rate ใหเหมาะสม โดยใชคยตางๆ หรอกด ‘a’ เพอใหระบบสแกนใหอตโนมต

5. กด F1 เพอเปลยนเปน full screen

42

Page 44: รหัสโครงการ…………… - Serverdee · Web view5. NUM 5 : Step in 5 time slots. เป นค ย สำหร บใช ควบค มการเพ ม/ลด

6. ปรบคาตางๆตามเหมาะสม ไดผลลพทดงภาพ

43