418341...

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

description

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

Transcript of 418341...

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 แตละตวเปนคาคงทในตารางตอไปนConstant Relevant Factor Computed Blend Factor

GL_ZERO source or destination (0, 0, 0, 0)

GL_ONE source or destination (1, 1, 1, 1)

GL_DST_COLOR source (Rd, Gd, Bd, Ad)

GL_SRC_COLOR destination (Rs, Gs, Bs, As)

GL_ONE_MINUS_DST_COLOR source (1, 1, 1, 1)-(Rd, Gd, Bd, Ad)

GL_ONE_MINUS_SRC_COLOR destination (1, 1, 1, 1)-(Rs, Gs, Bs, As)

GL_SRC_ALPHA source or destination (As, As, As, As)

GL_ONE_MINUS_SRC_ALPH A source or destination (1, 1, 1, 1)-(As, As, As, As)

GL_DST_ALPHA source or destination (Ad, Ad, Ad, Ad)

GL_ONE_MINUS_DST_ALPH A source or destination (1, 1, 1, 1)-(Ad, Ad, Ad, Ad)

GL_SRC_ALPHA_SATURATE source (f, f, f, 1); f=min(As, 1-Ad)

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 bufferCf คอสของหมอก

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)I I 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>