รหัสโครงการ…………… - Serverdee · Web view5. NUM 5 : Step in 5 time...

Preview:

Citation preview

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

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

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

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

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

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

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

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

โดย

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

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

1

บทคดยอ

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

2

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

บทนำ�

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

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

3

ส�รบญ

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

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

2356

121423242425252526

262728

4

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

วตถประสงค

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

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

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

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

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

5

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

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

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

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

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

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

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

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

6

สวนของซอฟตแวร มหนาทในการประมวลผลภาพ แลวทำาการสรางภาพพนฐาน 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

สมการ (1.2)

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

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

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

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

8

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

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

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

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

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

9

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

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

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

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

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

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

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

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

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

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

10

การพฒนาโปรแกรมเพอทำางานรวมกบเครองแสดงผล 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

การทำางานในสวนควบคมอตราการแสดงผล- เขยนโปรแกรมตรวจจบเวลาในการหมนของฉากรบภาพครบ 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

สรางหนาตางของโปรแกรมการพฒนาโปรแกรมเพอทำางานรวมกบเครองแสดงผล 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

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

14

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

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

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

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

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

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

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

15

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

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

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

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

16

#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

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

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

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

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

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

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

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

20

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

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

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

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

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

21

จากการพจารณาใน 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

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

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

ภาพตนฉบบ

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

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

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

23

อกแนวทางหนงทใชในการแกปญหานคอ เมอมองกลบไปทการทำางานของโปรเจคเตอรในหวขอการทำางานของโปรเจคเตอร จะเหนวาเมอความถในการแสดงผลของโปรเจคเตอรหรอ 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

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

25

โครงสร�งของซอฟตแวร (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

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

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

- Visual Studio .NET C++

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

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

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

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

27

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

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

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

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

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

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

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

28

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

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

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

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

29

เอกส�รอ�งอง (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

ภ�คผนวก (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

สำาหรบการพฒนาโปรแกรมขนาดเลกถงขนาดกลาง คำาสงของ 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

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

พอรทนทำางานได 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

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

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

35

วธก�รตดตง

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

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

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

36

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

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

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

37

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

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

38

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

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

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

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

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

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

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

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

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

39

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

40

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

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

เปนคยสำาหรบใชลด 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

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

43

Recommended