418341...

118
418341 สสสสสสสสสสสสสส สสสสสสสสสสสสสสสสสสสสสสส สส สสสสสสสสสสสสสสสสส 10 สสสสสส สสสสสสส

Upload: joshwa

Post on 19-Mar-2016

32 views

Category:

Documents


0 download

DESCRIPTION

418341 สภาพแวดล้อมการทำงานคอมพิวเตอร์กราฟิกส์ การบรรยายครั้งที่ 10. ประมุข ขันเงิน. Blending. เวลาเรากำหนดสีด้วย glColor*(…) เราสามารถกำหนด alpha ของสีได้ด้วย Alpha มีไว้ใช้ควบคุมการทำ blending - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: 418341 สภาพแวดล้อมการทำงานคอมพิวเตอร์กราฟิกส์ การบรรยายครั้งที่  10

418341 สภาพแวดลอมการทำางานคอมพวเตอรกราฟกสการบรรยายครงท 10

ประมข ขนเงน

Page 2: 418341 สภาพแวดล้อมการทำงานคอมพิวเตอร์กราฟิกส์ การบรรยายครั้งที่  10

Blending

• เวลาเรากำาหนดสดวย glColor*(…) เราสามารถกำาหนด alpha ของสไดดวย

• Alpha มไวใชควบคมการทำา blending• Blending คอการคำานวณสของ pixel ใหมเมอ

fragment ใหมกำาลงจะถกเขยนลงบน framebuffer โดยนำาเอาสของ pixel เดมมารวมคำานวณดวย

Page 3: 418341 สภาพแวดล้อมการทำงานคอมพิวเตอร์กราฟิกส์ การบรรยายครั้งที่  10

Blending (ตอ)

• ทเราเรยนผานมาใชวธการคำานวณสของ pixel สองแบบ– เอาสของ fragment ทมาทหลงเขยนทบลงบน framebuffer– เกบสของ fragment ทใกลตาทสดเอาไว (z-buffer

algorithm)• OpenGL สามารถทำาการคำานวณสไดหลายแบบกวาน

มาก • การคำานวณสหลายๆ แบบ ทไมใชสองแบบขางบนนเรา

กเรยกตขลมวา blending

Page 4: 418341 สภาพแวดล้อมการทำงานคอมพิวเตอร์กราฟิกส์ การบรรยายครั้งที่  10

การใชและเลกใช blending

• เวลาจะทำา blending ตองสงคำาสงglEnable(GL_BLEND);

• เวลาจะเลกทำา blending (กลบไปใช z-buffer หรอการวาดทบ) ใหสงglDisable(GL_BLEND);

Page 5: 418341 สภาพแวดล้อมการทำงานคอมพิวเตอร์กราฟิกส์ การบรรยายครั้งที่  10

Source และ Destination

• เวลาทำา blending จะมขอมลสทเกยวของสองตว– Source คอ ส RGBA ของ fragment อนใหมทกำาลงจะ

ถกเขยนลงบน pixel หนงของ framebuffer– Destination คอ ส RGBA ของ pixel ทอยบน

framebuffer เรยบรอยแลว• เราอาจคดไดวา destination คอสทคำานวณจากส

ของ fragment ทเกดจากรปรางทถกสงวาดกอน source ทงหมด

Page 6: 418341 สภาพแวดล้อมการทำงานคอมพิวเตอร์กราฟิกส์ การบรรยายครั้งที่  10

สมการ Blending

• การคำานวณสใหมจะเปนไปตามสมการขางลางน

โดยท คอสของ source

คอสของ destination เรยกวา “blending factor” ของ source เรยกวา “blending factor” ของ dest’

),,,(colornew adasbdbsgdgsrdrs DASADBSBDGSGDRSR

),,,( ssss ABGR),,,( dddd ABGR

),,,( abgr SSSS

),,,( abgr DDDD

Page 7: 418341 สภาพแวดล้อมการทำงานคอมพิวเตอร์กราฟิกส์ การบรรยายครั้งที่  10

คำาสงกำาหนด Blending Factor

• เราสามารถกำาหนด blending factor ไดดวยคำาสงglBlendFunc(GLenum src, GLenum dest)และคำาสงglBlendFuncSeparate(GLenum srcRGB, GLenum srcAlpha, GLenum destRGB, GLenum destAlpha)

• สองฟงกชนนตางกนตรงท glBlendFuncSeparate สามารถกำาหนด blending factor โดยแยก RGB กบ A ออกจากกนได

Page 8: 418341 สภาพแวดล้อมการทำงานคอมพิวเตอร์กราฟิกส์ การบรรยายครั้งที่  10

คาคงทกำาหนดสำาหรบ Blending Factor

• คาทใสให argument แตละตวเปนคาคงทในตารางตอไปน

Page 9: 418341 สภาพแวดล้อมการทำงานคอมพิวเตอร์กราฟิกส์ การบรรยายครั้งที่  10

กำาหนดเครองหมายทใชในสมการ Blending

• เรายงสามารถเครองหมายทใชรวมสของ source กบ destination เขาดวยกนได มนไมจำาเปนตองเปนเครองหมายบวก

• เครองหมายนสามารถกำาหนดไดดวยคำาสงglBlendEquation(GLenum mode)และglBlendEquationSeparate(GLenum modeRGB,GLenum modeAlpha)

• เชนเคย glBlendEquationSeparate สามารถกำาหนดเครองหมายของ RGB และ A แยกกนได

Page 10: 418341 สภาพแวดล้อมการทำงานคอมพิวเตอร์กราฟิกส์ การบรรยายครั้งที่  10

คาคงทในการกำาหนดเครองหมายในการทำา blending

คาคงท การคำานวณสใหมGL_FUNC_ADD

GL_FUNC_SUBTRACT

GL_FUNC_REVERSE_SUBTRACT

GL_MIN

GL_MAX

GL_LOGIC_OP

DCSC ds

DCSC ds

SCDC sd

),min( DCSC ds

),max( DCSC ds

DCSC ds op

Page 11: 418341 สภาพแวดล้อมการทำงานคอมพิวเตอร์กราฟิกส์ การบรรยายครั้งที่  10

GL_LOGIC_OP

• กรณทใช GL_LOGIC_OP คำาวา “op” จะถกแทนดวยเครองหมายทางตรรกศาสตรซงสามารถกำาหนดไดดวยคำาสง glLogicOp()

Page 12: 418341 สภาพแวดล้อมการทำงานคอมพิวเตอร์กราฟิกส์ การบรรยายครั้งที่  10

ตวอยาง: Matting

• การนำารปสองรปมาซอนกน• รปทอยดานหนาบาง pixel อาจม alpha ไมเปน 0

แสดงวา pixel โปรงแสง ทำาใหเหนรปทอยขางหลง• กรณนให destination blending factor เปน

GL_ONE_MINUS_SRC_ALPHA• และให source blending factor เปน

GL_SRC_ALPHA

Page 13: 418341 สภาพแวดล้อมการทำงานคอมพิวเตอร์กราฟิกส์ การบรรยายครั้งที่  10

ด demo

Page 14: 418341 สภาพแวดล้อมการทำงานคอมพิวเตอร์กราฟิกส์ การบรรยายครั้งที่  10

ตวอยาง: Billboarding

• การสรางวตถคลายสามมตจากภาพ เชน ตนไม เปนตน

• ทำาใหไมตองวางสามเหลยมจำานวนมาก• ใชภาพทบาง pixel ม alpha เทากบ 0• จะวาไปกเหมอนทำา matting ในสามมต• ให destination blending factor เปน

GL_ONE_MINUS_SRC_ALPHA• และ source blending factor เปน GL_SRC_ALPHA

Page 15: 418341 สภาพแวดล้อมการทำงานคอมพิวเตอร์กราฟิกส์ การบรรยายครั้งที่  10

ตวอยาง: Billboarding (ตอ)

Page 16: 418341 สภาพแวดล้อมการทำงานคอมพิวเตอร์กราฟิกส์ การบรรยายครั้งที่  10

ตวอยาง: การรวมรปสามรปเขาดวยกน

• ให destination blending factor เปน GL_ONE• ให source blending factor เปน GL_SRC_ALPHA• วาดรปแตละรปดวย alpha = 1/3

Page 17: 418341 สภาพแวดล้อมการทำงานคอมพิวเตอร์กราฟิกส์ การบรรยายครั้งที่  10

ตวอยาง: ปรบส RGB

• วาดภาพภาพหนงลงบน framebuffer โดยไมตองทำา blending

• หลงจากนนใช destination blending factor เปน GL_SRC_COLOR

• และใช source blending factor เปน GL_ZERO• หลงจากนนวาดสเหลยมสเดยวทบลงบนภาพนน

Page 18: 418341 สภาพแวดล้อมการทำงานคอมพิวเตอร์กราฟิกส์ การบรรยายครั้งที่  10

การวาดวตถโปรงแสงในสามมต• ตองวาดวตถทบแสดงใหหมดกอนโดยใช depth

buffer• หลงจากนนเปด blending• แลววาดวตถโปรงแสง• ขอควรระวง 1: เพอใหไดภาพทถกตอง เราตอง

วาดวตถโปรงแสงจากดานหลงไปดานหนา

Page 19: 418341 สภาพแวดล้อมการทำงานคอมพิวเตอร์กราฟิกส์ การบรรยายครั้งที่  10

การวาดวตถโปรงแสงในสามมต (ตอ)

• ขอควรระวง 2: เวลาวาดวตถโปรงแสงจะตองทำาการปองกนไมใหวตถโปรงแสงไปเปลยนแปลง depth buffer

• เราสามารถทำาให depth buffer ไมถกเขยนทบไดดวยการสงglDepthMask(GL_FALSE);

• และทำาใหมนถกเขยนทบไดใหมอกครง (เพอวาดรปวตถทบแสงใหม) ดวยคำาสงglDepthMask(GL_TRUE);

Page 20: 418341 สภาพแวดล้อมการทำงานคอมพิวเตอร์กราฟิกส์ การบรรยายครั้งที่  10

ด demo

Page 21: 418341 สภาพแวดล้อมการทำงานคอมพิวเตอร์กราฟิกส์ การบรรยายครั้งที่  10

ดโคดglPushMatrix ();

glTranslatef (-0.15, -0.15, solidZ);glMaterialfv(GL_FRONT, GL_EMISSION, mat_zero);glMaterialfv(GL_FRONT, GL_DIFFUSE, mat_solid);glCallList (sphereList);

glPopMatrix ();

glPushMatrix ();glTranslatef (0.15, 0.15, transparentZ);glRotatef (15.0, 1.0, 1.0, 0.0);glRotatef (30.0, 0.0, 1.0, 0.0);glMaterialfv(GL_FRONT, GL_EMISSION, mat_emission);glMaterialfv(GL_FRONT, GL_DIFFUSE, mat_transparent);glEnable (GL_BLEND);glBlendFunc (GL_SRC_ALPHA, GL_ONE);glDepthMask (GL_FALSE);glCallList (cubeList);glDepthMask (GL_TRUE);glDisable (GL_BLEND);

glPopMatrix ();

Page 22: 418341 สภาพแวดล้อมการทำงานคอมพิวเตอร์กราฟิกส์ การบรรยายครั้งที่  10

หมอก• หมอกใน OpenGL ทำาให pixel มสเปลยนไปตาม

ระยะหางจากตา• ทำาใหเกด effect เหมอนหมอกจรงๆ ได• เวลาใชหมอกตองสง

glEnable(GL_FOG);เวลาเลอกใชสงglDisable(GL_FOG);

Page 23: 418341 สภาพแวดล้อมการทำงานคอมพิวเตอร์กราฟิกส์ การบรรยายครั้งที่  10

การคำานวณหมอก• การคำานวณหมอกตองม depth buffer เพอวดระยะหาง

จากตา ดงนนตองม GLUT_DEPTH ใน glutInitDisplay• การคำานวณหมอกจะทำาหลงจาก render รปขนตอนอน

ทงหมด• เวลาคำานวณสของ pixel เมอมหมอกจะใชสตรตอไปน

C คอสของ pixel หลงจากคำานวณแลวf คอ fog factor ทจะบอกวธคำานวณในสไลดตอไปCi คอสของ pixel ใน frame buffer

Cf คอสของหมอก

fi CfCfC )1(

Page 24: 418341 สภาพแวดล้อมการทำงานคอมพิวเตอร์กราฟิกส์ การบรรยายครั้งที่  10

Fog Factor

• เราสามารถกำาหนดวธการคำานวณ fog factor ไดโดยคำาสงglFogi(GL_FOG_MODE, GLenum mode)โดย mode มคาไดสามคาดงตอไปน

– GL_EXP

– GL_EXP2

– GL_LINEAR

)( zdensityef

2)( zdensityef

startendzendf

Page 25: 418341 สภาพแวดล้อมการทำงานคอมพิวเตอร์กราฟิกส์ การบรรยายครั้งที่  10

การเซตหมอกคาตางๆ• เราสามารถเซตคาสของหมอกไดโดยคำาสง

glFogfv(GL_FOG_COLOR, Glfloat *color)เชนfloat fog_color[4] = {0.5f, 0.5f, 0.5f, 1.0f};glFogfv(GL_FOG_COLOR, fog_color);

Page 26: 418341 สภาพแวดล้อมการทำงานคอมพิวเตอร์กราฟิกส์ การบรรยายครั้งที่  10

การเซตหมอกคาตางๆ (ตอ)

• เราสามารถเซตคา density ของหมอก (ใชในการคำานวณกรณ GL_EXP และ GL_EXP2) ไดดวยคำาสงglFogf(GL_FOG_DENSITY, GLfloat density)

• เราสามารถเซตคา start และ end (ใชในการคำานวณกรณ GL_LINEAR) ไดดวยคำาสงglFogf(GL_FOG_START, GLfloat start) และglFogf(GL_FOG_END, GLfloat end)ตามลำาดบ

Page 27: 418341 สภาพแวดล้อมการทำงานคอมพิวเตอร์กราฟิกส์ การบรรยายครั้งที่  10

ด demo

Page 28: 418341 สภาพแวดล้อมการทำงานคอมพิวเตอร์กราฟิกส์ การบรรยายครั้งที่  10

การชกตวอยางและการสรางคน

Page 29: 418341 สภาพแวดล้อมการทำงานคอมพิวเตอร์กราฟิกส์ การบรรยายครั้งที่  10

ภาพดจตอล• ประกอบดวย พกเซล เรยงกนเปนตาราง“ ”

รปจาก http://en.wikipedia.org/wiki/Pixel

Page 30: 418341 สภาพแวดล้อมการทำงานคอมพิวเตอร์กราฟิกส์ การบรรยายครั้งที่  10

พกเซลคออะไร?

• พกเซลไมใช– กลองสเหลยม– จดวงกลม– เสนขด

รปจาก http://en.wikipedia.org/wiki/Pixel

Page 31: 418341 สภาพแวดล้อมการทำงานคอมพิวเตอร์กราฟิกส์ การบรรยายครั้งที่  10

พกเซลคออะไร? (ตอ)

• มนคอตวเลขสามตวแทนคา RGB ณ จดจดหนงบนระนาบภาพ

• “จด ทวาน”– ไมมขนาด ความกวาง ความยาว– ไมมมต– มองไมเหน– มแต ตำาแหนง“ ”

Page 32: 418341 สภาพแวดล้อมการทำงานคอมพิวเตอร์กราฟิกส์ การบรรยายครั้งที่  10

ภาพคออะไร?

• ฟงกชนจากระนาบสองมต ไปยงความเขมแสง

• รปภาพเปนฟงกชนตอเนอง• สามารถมองวาแตละจดมความสงของมน

R2

Page 33: 418341 สภาพแวดล้อมการทำงานคอมพิวเตอร์กราฟิกส์ การบรรยายครั้งที่  10

ภาพดจตอล• สรางโดยการหาคาของฟงกชนภาพ ณ จดทเรยง

กนเปนตารางสเหลยม• กระบวนการทำาเชนนเรยกวา การชกตวอยาง

(sampling)

Page 34: 418341 สภาพแวดล้อมการทำงานคอมพิวเตอร์กราฟิกส์ การบรรยายครั้งที่  10

ภาพดจตอล (ตอ)

Page 35: 418341 สภาพแวดล้อมการทำงานคอมพิวเตอร์กราฟิกส์ การบรรยายครั้งที่  10

การสรางคน• เมอไดภาพดจตอล ซงเปนตวอยางหลายๆ

ตวอยางทเราชกมาจากภาพ • เราตองทำาการสรางคน (reconstruction) เพอให

ไดฟงกชนตอเนองสองมตอนใหม

Page 36: 418341 สภาพแวดล้อมการทำงานคอมพิวเตอร์กราฟิกส์ การบรรยายครั้งที่  10

การสรางคน (ตอ)

• เราตองการใหภาพทเราสรางคนเหมอนกบภาพตนแบบทสดเทาทจะเปนไปได

• ปกตแลวอปกรณแสดงผลจะสรางภาพคนใหเราโดยอตโนมต

• สวนมากดวยการวาดสของตวอยางทชกมาเปนสเหลยม

Page 37: 418341 สภาพแวดล้อมการทำงานคอมพิวเตอร์กราฟิกส์ การบรรยายครั้งที่  10

เอเลยสซง• แตการสรางคนดวยการวาดเปนสเหลยมนเอง

ทำาใหเกดปญหาตามมาหลายอยาง เรยกรวมๆ วา เอเลยสซง (aliasing)

• ทำาใหภาพออกมาดไมด จะดไมดมากโดยเฉพาะเวลาทำาภาพเคลอนไหว

Page 38: 418341 สภาพแวดล้อมการทำงานคอมพิวเตอร์กราฟิกส์ การบรรยายครั้งที่  10

เอเลยสซง (ตอ)

• ขอบเปนหยกๆ

Page 39: 418341 สภาพแวดล้อมการทำงานคอมพิวเตอร์กราฟิกส์ การบรรยายครั้งที่  10

เอเลยสซง (ตอ)

• รายละเอยดหายหรอถกขยายใหญเกนไป

Page 40: 418341 สภาพแวดล้อมการทำงานคอมพิวเตอร์กราฟิกส์ การบรรยายครั้งที่  10

เอเลยสซง (ตอ)

• จตรกรรมฝาผนงดไมสวย

Page 41: 418341 สภาพแวดล้อมการทำงานคอมพิวเตอร์กราฟิกส์ การบรรยายครั้งที่  10

การแปลงฟเรยร

Page 42: 418341 สภาพแวดล้อมการทำงานคอมพิวเตอร์กราฟิกส์ การบรรยายครั้งที่  10

โดเมนความถ• ฟงกชนเกอบทกฟงกชนสามารถเขยนอยในรปผล

บวกของฟงกชนไซนหรอโคไซนได• ถาเขยนในรปแบบน เราเรยกวามนอยใน โดเมน

ความถ (frequency domain)• ถาเขยนแบบปกตจะเรยกวาอยใน โดเมนปรภม

(spatial domain)• นกถงเสยง ซงเปนฟงกชนการเคลอนทของลำาโพง– เราสามารถเอาเสยงไปใส spectrum analyzer– มนจะบอกวาเสยงความถเทานมความดงเทาไหร

Page 43: 418341 สภาพแวดล้อมการทำงานคอมพิวเตอร์กราฟิกส์ การบรรยายครั้งที่  10

โดเมนความถ (ตอ)

• ฟงกชนทเปลยนแปลงเรว มความถสง• ฟงกชนทเปลยนแปลงชา มความถตำา

Page 44: 418341 สภาพแวดล้อมการทำงานคอมพิวเตอร์กราฟิกส์ การบรรยายครั้งที่  10

โดเมนความถ (ตอ)

• ฟงกชนในโดเมนปรภม

ความถตำา ความถสง

Page 45: 418341 สภาพแวดล้อมการทำงานคอมพิวเตอร์กราฟิกส์ การบรรยายครั้งที่  10

โดเมนความถ (ตอ)

• เมออยในโดเมนความถ

ขอบเขตแคบ ขอบเขตกวาง

Page 46: 418341 สภาพแวดล้อมการทำงานคอมพิวเตอร์กราฟิกส์ การบรรยายครั้งที่  10

การแปลงฟเรยร (ตอ)

• เรามฟงกชน ในโดเมนปรภม• การแปลงฟเรยรทำาใหเราไดฟงกชน ใน

โดเมนความถ• ความสมพนธระหวางทงสองฟงกชน:

f (x)

F (! )

F (! ) =Z 1

¡ 1f (x)e¡ i2¼! xdx

f (x) =Z 1

¡ 1F (! )ei2¼! xd!

Page 47: 418341 สภาพแวดล้อมการทำงานคอมพิวเตอร์กราฟิกส์ การบรรยายครั้งที่  10

การแปลงฟเรยร (ตอ)

• เราใชสญลกษณ แทนการแปลงฟเรยรของ

• การแปลงฟเรยรเปนฟงกชนเชงเสน

F f f (x)g f (x)

F f f (x)g= F (! ) =Z 1

¡ 1f (x)e¡ i2¼! xdx

F f f (x) + g(x)g= F f f (x)g+ F fg(x)gF fcf (x)g= cF f f (x)g

Page 48: 418341 สภาพแวดล้อมการทำงานคอมพิวเตอร์กราฟิกส์ การบรรยายครั้งที่  10

การคณและการแปลงฟเรยร• ถาเราทำาการแปลงฟเรยรของผลคณของฟงกชน

สองฟงกชน• เราจะไดคอนโวลชนของการแปลงฟเรยรของ

ฟงกชนสองฟงกชนนน

• ในทำานองเดยวกน

F f f (x)g(x)g= F (! ) G(! )

F f f (x) g(x)g= F (! )G(! )

Page 49: 418341 สภาพแวดล้อมการทำงานคอมพิวเตอร์กราฟิกส์ การบรรยายครั้งที่  10

คอนโวลชน• มนยามดงน

• มความหมายเหมอนกบการ เลอน ไปคณ“ ”กบ ทละคาของ แลวเอาผลลพธทงหมดมาบวกกน

f (x) g(x) = (f g)(x) =Z 1

¡ 1f (t)g(x ¡ t)dt

f (x)g(x)x

Page 50: 418341 สภาพแวดล้อมการทำงานคอมพิวเตอร์กราฟิกส์ การบรรยายครั้งที่  10

คอนโวลชน (ตอ)

Page 51: 418341 สภาพแวดล้อมการทำงานคอมพิวเตอร์กราฟิกส์ การบรรยายครั้งที่  10

ทฤษฎการชกตวอยาง

Page 52: 418341 สภาพแวดล้อมการทำงานคอมพิวเตอร์กราฟิกส์ การบรรยายครั้งที่  10

ดแรกเดลตาฟงกชน• สญลกษณ • ฟงกชนททำาคอนโวลชนกบอะไรกไดคาของ

ฟงกชนนน

• ถาเลอน แลว กจะเลอนตามไปดวย

±(x)

f (x) ±(x) = f (x)

±(x) f (x)

f (x) ±(x ¡ t) = f (x ¡ t)

Page 53: 418341 สภาพแวดล้อมการทำงานคอมพิวเตอร์กราฟิกส์ การบรรยายครั้งที่  10

ดแรกเดลตาฟงกชน (ตอ)

• หนาตาของมน

• หาคาจรงไมได แตรวา integrate แลวได 1Z 1

¡ 1±(x) dx = 1

Page 54: 418341 สภาพแวดล้อมการทำงานคอมพิวเตอร์กราฟิกส์ การบรรยายครั้งที่  10

การชกตวอยาง• คอการเอาฟงกชนภาพมาคณกบดเรกเดลตา

ฟงกชนทวางไวหางเปนระยะเทาๆ กน

Page 55: 418341 สภาพแวดล้อมการทำงานคอมพิวเตอร์กราฟิกส์ การบรรยายครั้งที่  10

ชาฮฟงกชน• ดเรกเดลตาฟงกชนทเอามาเรยงหางกนเปนระยะ

เทาๆ กนมชอเรยกวา ชาฮฟงกชน (Shah) หรอ หวของดแรก (Dirac comb)

• สญลกษณ

• โดยคา คอ คาบ ของฟงกชน“ ”

I I IT (x) = T1X

k=¡ 1±(x ¡ kT)

I I IT (x)

T

Page 56: 418341 สภาพแวดล้อมการทำงานคอมพิวเตอร์กราฟิกส์ การบรรยายครั้งที่  10

ชาฮฟงกชน (ตอ)

Page 57: 418341 สภาพแวดล้อมการทำงานคอมพิวเตอร์กราฟิกส์ การบรรยายครั้งที่  10

ชาฮฟงกชน (ตอ)

• เมอนำาชาฮฟงกชนทมคาบ ไปทำาการแปลงฟเรยร จะไดชาฮฟงกชนทมคาบ

T1=T

F f II IT (x)g= 1T

1X

k=¡ 1±(! ¡ k=T) = III1=T (! )

Page 58: 418341 สภาพแวดล้อมการทำงานคอมพิวเตอร์กราฟิกส์ การบรรยายครั้งที่  10

การชกตวอยาง (อกครง)

• ดงนนการชกตวอยางทกๆ คาบ สามารถเขยนเปนประโยคสญลกษณไดวา

• การแปลงฟเรยรของฟงกชนขางบนคอ

T

f (x)II IT (x)

F f f (x)II IT (x)g= F (! ) I I I1=T (! )

Page 59: 418341 สภาพแวดล้อมการทำงานคอมพิวเตอร์กราฟิกส์ การบรรยายครั้งที่  10

การชกตวอยาง (อกครง)

• เราทำาการคณ กบ ในโดเมนปรภม• เราจะลองเขยนฟงกชนและผลลพธทเกดขนกบ

มนของการคณในโดเมนความถด• ยำาวาเราไมไดตองแปลงฟงกชนเหลานใหอยใน

โดเมนความถจรงๆ ฟงกชนทกฟงกชนเขยนอยในโดเมนความถไดอยแลว เราแคดเฉยๆวาถาเขยนอยในโดเมนความถแลวเกดอะไรขน

f (x) I I IT (x)

Page 60: 418341 สภาพแวดล้อมการทำงานคอมพิวเตอร์กราฟิกส์ การบรรยายครั้งที่  10

การชกตวอยาง (ตอ)

• สมมตวาฟงกชน ในโดเมนความถคอ• และให มหนาตาเชนน

• การคณ กบ ในโดเมนปรภมมคาเทากบการเอา กบ มาทำาคอนโวลชนกน

F (! )f (x)

F (! )

f (x) I I IT (x)

F (! ) I I I1=T (! )

Page 61: 418341 สภาพแวดล้อมการทำงานคอมพิวเตอร์กราฟิกส์ การบรรยายครั้งที่  10

การชกตวอยาง (ตอ)

• เมอเอามนมาทำาคอนโวลชนกบ จะไดI I I1=T (! )

Page 62: 418341 สภาพแวดล้อมการทำงานคอมพิวเตอร์กราฟิกส์ การบรรยายครั้งที่  10

การชกตวอยาง (ตอ)

• แลวตอนนเราไดอะไรบาง• เรารวาหลงจากการชกตวอยางแลว เราจะไดฟงกชน

ทมหนาตาคลายๆ รปขางลางในโดเมนปรภม

• กลาวคอมนเปนดแรกเดลตาฟงกชนความสงตำาตางกนเรยงกนเปนชวงๆ

f (x)I I IT (x)

Page 63: 418341 สภาพแวดล้อมการทำงานคอมพิวเตอร์กราฟิกส์ การบรรยายครั้งที่  10

การชกตวอยาง (ตอ)

• แตถาเราเขยนฟงกชนดแรกเดลตาสงๆ ตำาในโดเมนความถ เราจะได

ซงมลกษณะเหมอนเอาฟงกชนตนฉบบ ในโดเมนความถมาถายเอกสารแลวแปะเปนชวงๆ ระยะหางเทากน

F (! )

Page 64: 418341 สภาพแวดล้อมการทำงานคอมพิวเตอร์กราฟิกส์ การบรรยายครั้งที่  10

การชกตวอยาง (ตอ)

• ขอสงเกต:– ดแรกเดลตาฟงกชนแตละตวในโดเมนปรภมจะหางกน

เปนระยะ– แตจดศนยกลางของฟงกชน แตละตวในโดเมน

ความถจะหางกนเปนระยะ – ยงเราสมถขนเทาไหร กอปปของฟงกชน กจะ

หางขนไปเรอยๆ

TF (! )

1=TF (! )

Page 65: 418341 สภาพแวดล้อมการทำงานคอมพิวเตอร์กราฟิกส์ การบรรยายครั้งที่  10

การชกตวอยาง (ตอ)

• เรากลาววาฟงกชน เปนฟงกชนความถจำากด (band limit) ถาเราเขยนมนอยในโดเมนความถ แลวมนจะมคาเปน ถา มคาสงถงระดบหนง

• กลาวคอม (ยอมาจากคำาวา band)ททำาให ถา

f (x)F (! ) !

B F (! ) = 0

F (! )

j! j > B

B¡ B

Page 66: 418341 สภาพแวดล้อมการทำงานคอมพิวเตอร์กราฟิกส์ การบรรยายครั้งที่  10

การชกตวอยาง (ตอ)

• ถา มความถจำากด และถา มคานอยพอ กอปป ของ จะอยหางกนและไมซอนทบกน

• แตถา มคามากเกนไป (เราชกตวอยางไมถพอ) กอปป ของ อาจซอนทบกนได

Tf (x) F (! )

T F (! )

Page 67: 418341 สภาพแวดล้อมการทำงานคอมพิวเตอร์กราฟิกส์ การบรรยายครั้งที่  10

การชกตวอยาง (ตอ)

• แลวตองเลอก ใหมคาเทาไหร ถงจะไดกอปป ทไมซอนทบกน?

• คำาตอบคอตองเลอกให• นนคอตองสมใหถกวาความถสงสดของ

สองเทา• ความถนเรยกวา ความถไนควสท (Nyquist

Frequency)

T1=T > 2B

f (x)

Page 68: 418341 สภาพแวดล้อมการทำงานคอมพิวเตอร์กราฟิกส์ การบรรยายครั้งที่  10

การชกตวอยาง (ตอ)

B B

1=T

Page 69: 418341 สภาพแวดล้อมการทำงานคอมพิวเตอร์กราฟิกส์ การบรรยายครั้งที่  10

การสรางกลบ• ในการสรางกลบ เราตองการเอาฟงกชนทชก

ตวอยางมาแลวมาทำาอะไรสกอยางใหไดฟงกชนทคลายฟงกชนตนฉบบมากทสด

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

ทำาอยางไรจะได จาก ?

Page 70: 418341 สภาพแวดล้อมการทำงานคอมพิวเตอร์กราฟิกส์ การบรรยายครั้งที่  10

การสรางกลบ (ตอ)

• ตองลบสวนเกนทอยรอบนอกออกไป• คณดวย กลอง“ ” ในโดเมนความถ

£

Page 71: 418341 สภาพแวดล้อมการทำงานคอมพิวเตอร์กราฟิกส์ การบรรยายครั้งที่  10

ฟงกชนกลอง• สญลกษณ¦ T (! )

¦ T (! ) =(

1=(2T) j! j < T0 otherwise

T¡ T

1=(2T)

Page 72: 418341 สภาพแวดล้อมการทำงานคอมพิวเตอร์กราฟิกส์ การบรรยายครั้งที่  10

ซงคฟงกชน• ฟงกชนกลองทวามานนอยในโดเมนความถ ถา

ทำาใหอยในโดเมนปรภมแลวจะมหนาตาเปนอยางไร?

• โดยท

F ¡ 1f ¦ T (x)g= sinc(Tx)

sinc(x) =(

1; x = 0sinx=x; otherwise

Page 73: 418341 สภาพแวดล้อมการทำงานคอมพิวเตอร์กราฟิกส์ การบรรยายครั้งที่  10

การสรางกลบ (ตอ)

Page 74: 418341 สภาพแวดล้อมการทำงานคอมพิวเตอร์กราฟิกส์ การบรรยายครั้งที่  10

การสรางกลบ (ตอ)

• เขยนการสรางกลบจากการชกตวอยางเปนประโยคสญลกษณในโดเมนความถไดวา

• เมอเขยนอยในโดเมนปรภม จะไดเปน

• ดงนน การสรางกลบคอการเอาฟงกชนทชกตวอยางมาแลวมาทำาคอนโวลชนกบซงคฟงกชน

(F (! ) I I I 1=T (! ))¦ T (! )

(f (x)I I I T (x)) sinc(Tx)

Page 75: 418341 สภาพแวดล้อมการทำงานคอมพิวเตอร์กราฟิกส์ การบรรยายครั้งที่  10

การสรางกลบ (ตอ)

• ถา มความถจำากดและเราชกตวอยางดวยความถสงกวาความถไนควสทของมน เราจะสามารถสรางฟงกชน กลบคนได เนองจาก

ดงนน

f (x)f (x)

(F (! ) I I I 1=T (! ))¦ T (! ) = F (! )

(f (x)I I I T (x)) sinc(Tx) = f (x)

Page 76: 418341 สภาพแวดล้อมการทำงานคอมพิวเตอร์กราฟิกส์ การบรรยายครั้งที่  10

การสรางกลบ (ตอ)

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

F (! )

F (! )

Page 77: 418341 สภาพแวดล้อมการทำงานคอมพิวเตอร์กราฟิกส์ การบรรยายครั้งที่  10

การสรางกลบ (ตอ)

• ความไมเหมอนกนทกประการทเกดจากการชกตวอยางดวยความถไมมากพอนเองทเปนสาเหตของเอเลยสซงทงหมด

ฟงกชนตนแบบ ฟงกชนทสรางคนทมเอเลยสซง

Page 78: 418341 สภาพแวดล้อมการทำงานคอมพิวเตอร์กราฟิกส์ การบรรยายครั้งที่  10

การบรรเทาเอเลยสซง

Page 79: 418341 สภาพแวดล้อมการทำงานคอมพิวเตอร์กราฟิกส์ การบรรยายครั้งที่  10

เอเลยสซง• เอเลยสซงเวลาทำาการสรางภาพสามมตเกดขน

จาก– ฟงกชนภาพเปนฟงกชนความถไมจำากด เนองจากม

ความไมตอเนองของส ณ ขอบเขตของวตถและเงา– จตรกรรมฝาผนงมความไมตอเนอง

Page 80: 418341 สภาพแวดล้อมการทำงานคอมพิวเตอร์กราฟิกส์ การบรรยายครั้งที่  10

เอเลยสซง (ตอ)

• เอเลยสซงทเกดจากขอบเขตของวตถ

Page 81: 418341 สภาพแวดล้อมการทำงานคอมพิวเตอร์กราฟิกส์ การบรรยายครั้งที่  10

เอเลยสซง (ตอ)

• เอเลยสซงทเกดจากความไมตอเนองของจตรกรรมฝาผนง

Page 82: 418341 สภาพแวดล้อมการทำงานคอมพิวเตอร์กราฟิกส์ การบรรยายครั้งที่  10

เอเลยสซง (ตอ)

• ปกตแลวการบรรเทาเอเลยสซงจากความไมตอเนองของรปทรงและเงาทำาไดยาก– ความไมตอเนองของรปทรงและเงาเปนฟงกชนทม

ความถไมจำากด– เราไมสามารถลบสวนความถไมจำากดนออกไปได

• แตการบรรเทาเอเลยสซงจากความไมตอเนองของจตรกรรมฝาผนงทำาไดงายกวา– เพราะเราสามารถดดแปลงรปเพอลบสวนทมความถสง

ออกไปไดกอนนำามนมาใชคำานวณส

Page 83: 418341 สภาพแวดล้อมการทำงานคอมพิวเตอร์กราฟิกส์ การบรรยายครั้งที่  10

เทคนคการบรรเทาเอเลยสซงทวๆ ไป• เพมความถการชกตวอยาง (วาดใหละเอยดขน)– ใชไดผลด แตไมคอยคมคาเพราะตองเสยวาดเพมขน

• ชกตวอยางแบบสมๆ– แทนทจะชกตวอยางแบบเปนตารางมระเบยบ กชกให

มนหลดๆ ออกไปจากตำาแหนงทมนควรจะเปนสกเลกนอย แบบสมๆ

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

Page 84: 418341 สภาพแวดล้อมการทำงานคอมพิวเตอร์กราฟิกส์ การบรรยายครั้งที่  10

เทคนคการบรรเทาเอเลยสซงทวๆ ไป (ตอ)

• เพมความถการชกตวอยางโดยอาศยการเรยนรจากภาพ– ถาภาพสวนไหนมความเปลยนแปลงสมาก กใหสมมากขน

• สวนขอบของวตถ• จดสองจดทอยขางกนทสตางกนมากๆ

– ลดการคำานวณลงไดพอสมควร แตกมขอบกพรอง• จดสองจดทอยตดกนบางค อาจจะมสตางกนมาก แตความจรงไม

ตองสมเพมกได เชน จดสองจดขางกนทสตางกนเนองจากจตรกรรมฝาผนง

• บรเวณทตองการความถการสมสงอาจจะไมถกสมความถสงขนกได

Page 85: 418341 สภาพแวดล้อมการทำงานคอมพิวเตอร์กราฟิกส์ การบรรยายครั้งที่  10

การชกตวอยางแบบ มวในบลอก“ ”• ปกตเราจะชกตวอยางโดยในแตละพกเซลเราจะยง

รงส ไปทกลางพกเซลนน“ ”

• แตมนทำาใหเกดเอเลยสซงไดงาย

Page 86: 418341 สภาพแวดล้อมการทำงานคอมพิวเตอร์กราฟิกส์ การบรรยายครั้งที่  10

การชกตวอยางแบบ มวใน“บลอก ” (ตอ)

• เราสามารถชกตวอยางแบบมวๆ เพอเปลยนเอเลยสซงเปนคลนรบกวน

• แตแบบนบางพกเซลจะไมถกชกตวอยางออกมาเลย

Page 87: 418341 สภาพแวดล้อมการทำงานคอมพิวเตอร์กราฟิกส์ การบรรยายครั้งที่  10

การชกตวอยางแบบ มวใน“บลอก ” (ตอ)

• เราสามารถรวมสองวธขางตนเขาดวยกน โดยในแตละพกเซลเราจะชกตวอยางมาหนงตว แตตำาแหนงของตวอยางนนจะมวเอา

• วธนเปนวธชกตวอยางทไดผลดมาก

Page 88: 418341 สภาพแวดล้อมการทำงานคอมพิวเตอร์กราฟิกส์ การบรรยายครั้งที่  10

การชกตวอยางแบบ มวใน“บลอก ” (ตอ)

• ภาพในอดมคต คำานวณดวยการชกตวอยาง 256 ตวอยางในหนงพกเซล

Page 89: 418341 สภาพแวดล้อมการทำงานคอมพิวเตอร์กราฟิกส์ การบรรยายครั้งที่  10

การชกตวอยางแบบ มวใน“บลอก ” (ตอ)

• 1 ตวอยางตอหนงพกเซล

Page 90: 418341 สภาพแวดล้อมการทำงานคอมพิวเตอร์กราฟิกส์ การบรรยายครั้งที่  10

การชกตวอยางแบบ มวใน“บลอก ” (ตอ)

• มวในบลอก หนงตวอยางตอหนงพกเซล

Page 91: 418341 สภาพแวดล้อมการทำงานคอมพิวเตอร์กราฟิกส์ การบรรยายครั้งที่  10

การชกตวอยางแบบ มวใน“บลอก ” (ตอ)

• มวในบลอก 4 ตวอยางตอหนงพกเซล

Page 92: 418341 สภาพแวดล้อมการทำงานคอมพิวเตอร์กราฟิกส์ การบรรยายครั้งที่  10

ฟลเตอรการสรางกลบ

Page 93: 418341 สภาพแวดล้อมการทำงานคอมพิวเตอร์กราฟิกส์ การบรรยายครั้งที่  10

การสรางกลบ (อกรอบ)

• การสรางภาพกลบคอการนำาเอาฟงกชนทชกตวอยางออกมาแลวมาทำาคอนโวลชนกบฟงกชนตวหนง

• ฟงกชนตวนเราจะเรยกวา เคอรเนล (kernel) หรอ ฟลเตอร (filter)

• เรารวาฟงกชนซงคเปนฟงกชนการสรางกลบในอดมคต– มนสามารถสรางฟงกชนเดมออกมาไดถาเราชกตวอยาง

ดวยความถสงกวาความถไนควสท

Page 94: 418341 สภาพแวดล้อมการทำงานคอมพิวเตอร์กราฟิกส์ การบรรยายครั้งที่  10

การสรางกลบ (ตอ)• แตจรงๆ เวลาจะแสดงผล เราไมไดสรางฟงกชนตอเนอง

ตนฉบบกลบแตอยางไร• เวลาเราสงจอภาพใหแสดงภาพ หรอจะเซฟภาพลงในไฟล

เราตองสงตวอยางของฟงกชนไปใหจอภาพหรอดสกอยด• ตวอยางทจะสงใหจอภาพหรอดสก เปนตวอยางทจดของ

มนเรยงกนเปนระเบยบ หนงตวอยางตอหนงพกเซล• แตตอนเราชกตวอยาง เราอาจไมไดชกตวอยางแบบนน

(ถาชกแบบนนกแลวไป ไมตองทำาอะไร)• บางท เราอาจชกตวอยางมากกวาหนงตวอยางในหนง

พกเซล

Page 95: 418341 สภาพแวดล้อมการทำงานคอมพิวเตอร์กราฟิกส์ การบรรยายครั้งที่  10

การสรางกลบ (ตอ)

เราอาจจะชกตวอยางแบบน แตตวอยางทตองสงใหจอภาพเปนแบบน

Page 96: 418341 สภาพแวดล้อมการทำงานคอมพิวเตอร์กราฟิกส์ การบรรยายครั้งที่  10

การสรางกลบ (ตอ)

• สงทเราตองทำาคอตองหาคาของตวอยางทชกมาอยางเปนระเบยบ หนงตวอยางตอหนงพกเซล จากตวอยางทเราชกมาจรงๆ ซงอาจไมคอยเปนระเบยบนก หรออาจมมากกวาหนงตวตอหนงพกเซล

Page 97: 418341 สภาพแวดล้อมการทำงานคอมพิวเตอร์กราฟิกส์ การบรรยายครั้งที่  10

การสรางกลบ (ตอ)

• การหาคาทวานเราจะนำาเอาตวอยางทอยใกลๆ จดทเราตองการหาคาฟงกชนมาถวงนำาหนกแลวเฉลย

โดยท คอฟลเตอร คอคาความเขมแสงทไดจากการยงเรย คอคาความเขมแสงทเราตองการหา

I (x;y) =P

i f (x ¡ xi ;y ¡ yi )L(xi ;yi )Pi f (x ¡ xi ;y ¡ yi )

f (¢;¢)L(¢;¢)I (¢;¢)

Page 98: 418341 สภาพแวดล้อมการทำงานคอมพิวเตอร์กราฟิกส์ การบรรยายครั้งที่  10

การสรางกลบ (ตอ)

Page 99: 418341 สภาพแวดล้อมการทำงานคอมพิวเตอร์กราฟิกส์ การบรรยายครั้งที่  10

ฟลเตอร• เราใชซงคฟงกชนเปนฟลเตอรไมได– มนมขอบเขตกวางเกนไป หมายความวาจะตองใช

ตวอยางทกตวทสมมา– นอกจากนมนยงอาจทำาใหเกนคลนกระเพอม (ringing)

ในภาพได ถาตวอยางทสมมาความถตำากวาความถไนควสท

Page 100: 418341 สภาพแวดล้อมการทำงานคอมพิวเตอร์กราฟิกส์ การบรรยายครั้งที่  10

ฟลเตอร (ตอ)

• ฟลเตอรทคนนยมใช ไดแก– กลอง– สามเหลยม– เกาส– มทเชล– ซงคแบบถกจำากดขอบเขต (แลงคซอส

Page 101: 418341 สภาพแวดล้อมการทำงานคอมพิวเตอร์กราฟิกส์ การบรรยายครั้งที่  10

กลอง

เอเลยสซงเตมไปหมด

Page 102: 418341 สภาพแวดล้อมการทำงานคอมพิวเตอร์กราฟิกส์ การบรรยายครั้งที่  10

สามเหลยม

เรยบและเบลอ

Page 103: 418341 สภาพแวดล้อมการทำงานคอมพิวเตอร์กราฟิกส์ การบรรยายครั้งที่  10

เกาส

เบลอมากๆ

Page 104: 418341 สภาพแวดล้อมการทำงานคอมพิวเตอร์กราฟิกส์ การบรรยายครั้งที่  10

มทเชล

คมกวาเกาส

Page 105: 418341 สภาพแวดล้อมการทำงานคอมพิวเตอร์กราฟิกส์ การบรรยายครั้งที่  10

ซงคแบบถกจำากดขอบเขต

Page 106: 418341 สภาพแวดล้อมการทำงานคอมพิวเตอร์กราฟิกส์ การบรรยายครั้งที่  10

ANTI-ALISING ใน OPENGL

Page 107: 418341 สภาพแวดล้อมการทำงานคอมพิวเตอร์กราฟิกส์ การบรรยายครั้งที่  10

Antialiasing ใน OpenGL

• การทำา antialiasing ของจดและเสน• การทำา multisampling

Page 108: 418341 สภาพแวดล้อมการทำงานคอมพิวเตอร์กราฟิกส์ การบรรยายครั้งที่  10

การทำา antialiasing ของจดและเสน• ถาตองการทำา antialiasing ของจดใหสง

glEnable(GL_POINT_SMOOTH);• ถาตองการทำา antialiasing ของเสนใหสง

glEnable(GL_LINE_SMOOTH);• เมอถาจะเลกใชใหสง glDisable(…) ตามสมควร

Page 109: 418341 สภาพแวดล้อมการทำงานคอมพิวเตอร์กราฟิกส์ การบรรยายครั้งที่  10

การทำา antialiasing ของจดและเสน (ตอ)

• การทำา antialiasing ของจดและเสนใน OpenGL เปนการกำาหนดคา alpha ของ fragment ทประกอบขนเปนจดหรอเสนนน

• คา alpha ถกคำานวณดวย unweighted area sampling

• ดงนนถาจะทำา antialiasing จะตอง– สง glEnable(GL_BLENDING);– และสง glBlendFunc(…) ใหเหมาะสม

Page 110: 418341 สภาพแวดล้อมการทำงานคอมพิวเตอร์กราฟิกส์ การบรรยายครั้งที่  10

การทำา antialiasing ของจดและเสน (ตอ)

• แลวจะสง glBlendFunc อยางไร?• ปกตแลวใช

glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA)

• แตกสามารถใช glBlendFunc(GL_SRC_ALPHA, GL_ONE)เพอทำาใหจดตดสวางขน

Page 111: 418341 สภาพแวดล้อมการทำงานคอมพิวเตอร์กราฟิกส์ การบรรยายครั้งที่  10

การทำา antialiasing ของจดและเสน (ตอ)

• ขอควรระวง– เนองจากเราใช blending ลำาดบการวาดเสนและจดจง

มผลตอรป– ถามวตถทบแสงอยในฉากดวย • ตองวาดวตถทบแสงใหหมดกอน แลวคอยวาดเสนและจด • และจะตองมการทำาให depth buffer เปนแบบ readonly

ดวย• ดรายละเอยดในการบรรยายครงท 16

Page 112: 418341 สภาพแวดล้อมการทำงานคอมพิวเตอร์กราฟิกส์ การบรรยายครั้งที่  10

ด demo

Page 113: 418341 สภาพแวดล้อมการทำงานคอมพิวเตอร์กราฟิกส์ การบรรยายครั้งที่  10

การทำา multisampling

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

fragment ของ primitive ทจะเอาไปแสดง เทากบคาเฉลยของสของ 4 fragment (สเหลยมกวาง 2 pixel ยาว 2 pixel) ของทสรางขนมา

Page 114: 418341 สภาพแวดล้อมการทำงานคอมพิวเตอร์กราฟิกส์ การบรรยายครั้งที่  10

ขนตอน• เพม GLUT_MULTISAMPLE ลงใน

glutInitDisplayMode ดงน:

glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB | GLUT_DEPTH |

GLUT_MULTISAMPLE);

• เวลาใชใหสง glEnable(GL_MULTISAMPLING);

Page 115: 418341 สภาพแวดล้อมการทำงานคอมพิวเตอร์กราฟิกส์ การบรรยายครั้งที่  10

ด demo

Page 116: 418341 สภาพแวดล้อมการทำงานคอมพิวเตอร์กราฟิกส์ การบรรยายครั้งที่  10

ปญหาการ compile บน Windows

• Multisampling เปนความสามารถใหมทเพมเขามาใน OpenGL เวอรชนหลงๆ

• แต OpenGL ทมากบ Windows อยทเวอรชน 1.1 ซงมอายประมาณ 10 ปแลว

• ดงนนถา compile โคดตวอยางตามธรรมดาแลวจะพบวามนไมรจกคา GL_MULTISAMPLE

Page 117: 418341 สภาพแวดล้อมการทำงานคอมพิวเตอร์กราฟิกส์ การบรรยายครั้งที่  10

GLEW

• OpenGL Extension Wrangler (GLEW) เปนไลบรารทใชในการเขาถงความสามารถของ OpenGL อนใหมๆ ทไมมในเวอรชนเกา หรอทมเฉพาะในฮารดแวรบางตว

• สามารถ download มนไดท http://glew.sourceforge.net

• ให download Win32 binary ของมนมา แลวแตก zip ไฟล

• นำา glew32.dll ไปใสไวท c:\windows\system32• เสรจแลวนำา glew.h และ glew32.lib ไปใสไวใน

solution ของโปรแกรมของเรา เชนเดยวกบ GLUT

Page 118: 418341 สภาพแวดล้อมการทำงานคอมพิวเตอร์กราฟิกส์ การบรรยายครั้งที่  10

GLEW (ตอ)

• เวลาใชงาน GLEW ให include ไฟล glew.h กอน glut.h เชน

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