Jump to content


Photo

คุณเคนอิจิ หรือ ท่านใดที่พอรู้เรื่อง Compositing digital images รบกวนหน่อยครับ


  • Please log in to reply
7 ความเห็นในกระทู้นี้

#1 ทรงธรรม

ทรงธรรม

    ต่อให้ต้องเรียนจนแก่ ก็จะเรียนต่อไป คนเราพัฒนาได้ทุกคน

  • Members
  • PipPipPip
  • 2,157 posts

ตอบ 29 มีนาคม พ.ศ. 2556 - 08:47

คือ ผมกำลังอ่านเรื่อง 2dgraphics แล้ว มันมี เรื่องของการ compositing images ,text ซึ่ง อาศัย กฏของ

 

porter และ duff ด้วย

 

คือ ผม print ส่วนนี้ มาแล้วครับ จะพยายาม เปิด dic แกะศัพท์ เพราะ ยากมาก หลายตัว ไม่รู้จักเลย

 

เลยขอความอนุเคราะห์ คุณ เคนอิจิ หรือ ท่านใด ที่พอเข้าใจ กฏการ compositing นี้ ช่วย

 

อธิบาย แบบกว้าง ๆ ก็ได้ครับ เพราะถ้าผมแปล อย่างเดียว อาจผิดพลาด คลาดเคลื่อนได้

 

เพราะ ท่าทาง เรื่องนี้ จะยากกว่า ที่ผมจะเข้าใจได้ โดย ไม่มี คน นำทาง ให้ก่อน น่ะครับ

 

แต่ เดี๋ยว วันนี้ ผมจะหาคำศัพท์ มาแปล ตัวที่ผม ไม่รู้จัก ซะก่อน

 

 

ต้องรบกวน อีกแล้วครับ เกรงใจครับ


ขอให้พวกเรา ชาวหลากสี และพันธมิตร จงมีชีวิตรอด จากภาวะเศรษฐกิจตกต่ำ ฝีมือปูนา ไปตลอดรอดฝั่งด้วยครับ

 

PEMDAS ย่อมาจาก ลำดับการคำนวณ Parentheses , Exponentials , Multiply , Divide , Add , Subtract

 

FWGHSO ย่อมาจาก ลำดับการประเมินผลของ query  FROM, WHERE, GROUP BY, HAVING, SELECT, ORDER BY


#2 RiDKuN_user

RiDKuN_user

    มหาเมพ

  • Members
  • PipPipPipPipPipPipPip
  • 13,167 posts

ตอบ 29 มีนาคม พ.ศ. 2556 - 10:57

ต้องใช้เทคนิคขั้นสูงขนาดนั้นเลยเหรอครับ

ผมว่าเริ่มที่ใช้ framework สำเร็จรูปดีกว่า

http://www.slick2d.org อันนี้ก็น่าสนใจครับ


" ชีวิตผมไม่เคยกลัวอะไรทั้งนั้น ผมกลัวอย่างเดียว...กลัวจะถูกมองว่า 'ขายชาติ' " - The Last Tycoon

~ ทักษิณตาย เสรีไทยไชโย ~

#3 เคนอิจิ-นามิ

เคนอิจิ-นามิ

    สมาชิกขั้นสูง

  • Banned
  • PipPipPipPip
  • 4,447 posts

ตอบ 29 มีนาคม พ.ศ. 2556 - 13:36

ผมเข้าใจว่า สิ่งที่คุณกำลังอ่านอยู่นั้นเปนเรื่องของการแสดงผล graphic ที่มา ซ้อนกัน หน่วยแสดงผล ต้องหาวิธี composite image ต่างๆเหล่านั้น ให้ออกมาเปน ภาพ 2D ภาพเดียว

http://en.wikipedia....pha_compositing

เคยได้ยินใช่ไหม ว่า เส้น เกิดจาก "จุด" จุดเล็กๆๆๆ ที่ plot ต่อๆกันติดๆกัน จนเปนเส้นยาวๆ นั่นคือ ต้นกำเนิดของภาพด้วย เช่นกัน

เพราะการแสดงผลบนหน้าจอนี้ เราต่างรู้จักกันในหน่วยที่เรียกว่า pixel และ หน่วยการแสดงผล เราไปเรียกมันว่า dot per pixel ในความเปนจริงแล้ว pixel ที่เราเห็นนี้ ก็คือ ตาราง ที่เปน 4 เหลี่ยม นั่นเอง

dot per pixel ก็คือ ใน 1 ตารางนั้น มี จุดอยู่กี่จุด ที่อัดแน่นเรียงตัวกันอยู่ในนั้ น

การแสดงผลบนหน้าจอนั้น ถ้ามีภาพ 2 ภาพ มา overlay หรือวางซ้อนกัน ในความเปนจริง มันทับซ้อนกัน ในสเกลของ จุด แต่เมื่อแสดงผล มันต้องแสดง ผลเปน pixel

ในภาพ A xx B ที่เห็นในเพจ วิกี้นั้น แสดงให้เห็นว่า เมื่อภาพ ที่ซ้อนกัน 2 ภาพ นั้น เกิดขึ้นในตำแน่งที่ คาบเกี่ยว pixel กัน จากสูตร จะได้การแสดงผลออกมา ตาม 5 สถานการณ์นั้น

ขนาดของตาราง subpixel ที่เห็น (แถวที่สาม) คือการแสดงผลจริง กล่าวคือ ถ้าภาพ 2 ภาพ เข้ามาซ้อนกันในตำแหน่งที่ 1 (A over B) จะมี 3 pixel ที่แสดงผล อีก 1 pixel จะ transparent หรือไม่มีการแสดงผล และ so on... จนถึงกรณีที่ 5



่อันนี้ java tutorials ครับ

http://docs.oracle.c...ompositing.html



------------------------------------------------------

การที่คุณจะเขียนโปรแกรม หรือ software animation สมัยนี้ไม่จำเปนต้องรู้ เรื่อง composition เพราะ os จะทำการแสดงผลให้คุณเสร็จศัพท์แล้ว ที่คุณต้องทำคือ การนำ library มาให้ใช้ ถูกส่วนเท่านั้นเอง

แต่จะรู้ไว้ก็ไม่เสียหาย จะได้เข้าใจเรื่องการแสดงผล

ผมเคยแนะนำให้คุณไปนำ class สำเร็จรูปมาใช้เพื่อเป นแนวทางในการพัฒนา logic ของตัวเอง เพราะคุณไม่ได้เรียนมา ไม่ได้คุ้นเคย การดูจากตัวอย่าง (learning by example) จะเปนการพัฒนา ได้อย่างรวดเร็ว (คอนเซปเดียวกับสมองกล neuron network) แต่ มันจะ กลายไปเปนปญหา ถ้าคุณ ยังไม่สามารถ พัฒนา logic ได้ด้วยตัวเอง กล่าวคือ หากยังหา example ไม่ ได้ คุณจะไม่ได้เรียนรู้ อะไรเพิ่มเติม

สิ่งที่าสำคัญ คือการเขียน algorithm ลองไปศึกษาคำนี้ดู แล้วฝกพัฒนา ไป พร้อมๆกับทักษะด้านอื่นๆ เห็น concept อะไรที่ไหน ให้ลองนึกถึง algorithm ขึ้นมาทันที ไม่เช่นนั้น แล้ว เวลาคุณอยากสื่ออะไร ผมจะเข้าใจคุณ แต่เวลาผมจะสื่ออะไร หรือแนะนำอะไรไป คุณจะไม่เข้าใจ ต้องแก้โค๊ด ต้องเขียนโค๊ดเสร็จแล้วเท่านั้น จึงจะเข้าใจกัน ซึ่งในความเปนจริง เราไม่มีวันได้โค๊ดมาก่อนที่เราจะเข้าใจมัน

สู้ๆ :)

ตรรกของผมที่แตกต่างจากสมาชิกคนอื่นใน สรท นิ๊ดเดียว  :D http://webboard.seri...e-3#entry634878

รอแมงวันหน้าสันขวานดิ้นดุ๊กดิ้กมาขอขมาอยู่นะ http://webboard.seri...-แวร์/?p=609037

ความตอแหลขอไอ้แมงวัน  http://webboard.seri...-แวร์/?p=609177

 


#4 ทรงธรรม

ทรงธรรม

    ต่อให้ต้องเรียนจนแก่ ก็จะเรียนต่อไป คนเราพัฒนาได้ทุกคน

  • Members
  • PipPipPip
  • 2,157 posts

ตอบ 29 มีนาคม พ.ศ. 2556 - 13:55

ขอบคุณ คุณ เคนอิจิมากครับ คุณ อธิบาย คล้าย ๆ กับ ที่ผมนั่งแปล (ศัพท์ยากมาก) และอ่านอยู่ สักครู่ เลยครับ

 

ยอดเยี่ยม คือ จริง ๆ ผมอยากรู้ ที่มาที่ไป มันน่ะครับ

 

การอ่าน method รวมถึง constant ที่เค้า defined มาโดยส่วนใหญ่

 

ผมอยากเข้าใจ ความหมายของมัน

 

คราวนี้ ผมเจอ constant ของ alpha composite ก้เลยอยากรู้ ที่มา มันน่ะครับ

 

 

เออ ผมลอง อธิบายตัวเอง ตามนี้ แหะ ๆ จด โน้ต ไว้ นิดหนึ่งนะครับ

 

alpha คือ ส่วนที่ เป็น opaque ของ สี ของ แต่ละ picture ที่นำมารวมกัน (ค่า opaque ของสีที่ ครอบคลุม ใน pixel

 

ไม่ใช่ ค่า opaque ของสี ที่ปิดบัง background)

 

alpha ของ ภาพ A เช่น ภาพ A มี เปอร์เซนต์ opaque ของสี 30 %

 

alpha A คือ 0.30 และ ส่วนที่เป็น transparent ของ A (เฉพาะใน pixel) คือ 0.70

 

 

การระบุ สี แบบ four-channel คือ  red green blue และ alpha

 

ซึ่ง สี แต่ละสี ควรจะคำนวน โดย คูณด้วย alpha แล้ว เช่น

 

0.30R 0.30G 0.30B และ 0.30 เป็น parameter ซึ่งในสูตร หา composite ก็แทนด้วย cA


Edited by ทรงธรรม, 29 มีนาคม พ.ศ. 2556 - 14:50.

ขอให้พวกเรา ชาวหลากสี และพันธมิตร จงมีชีวิตรอด จากภาวะเศรษฐกิจตกต่ำ ฝีมือปูนา ไปตลอดรอดฝั่งด้วยครับ

 

PEMDAS ย่อมาจาก ลำดับการคำนวณ Parentheses , Exponentials , Multiply , Divide , Add , Subtract

 

FWGHSO ย่อมาจาก ลำดับการประเมินผลของ query  FROM, WHERE, GROUP BY, HAVING, SELECT, ORDER BY


#5 ทรงธรรม

ทรงธรรม

    ต่อให้ต้องเรียนจนแก่ ก็จะเรียนต่อไป คนเราพัฒนาได้ทุกคน

  • Members
  • PipPipPip
  • 2,157 posts

ตอบ 29 มีนาคม พ.ศ. 2556 - 14:17

ถ้า ให้ CA คือ สีที่แท้จริง อันประกอบด้วย ค่า RGB

 

cA ซึ่งเป็นค่าที่ใช้หา composite ของ ภาพที่เป็น output

 

จะคำนวน โดย CA คูณด้วย alpha A

 

และ เช่นกัน ภาพ B ก็หาค่า cB

 

ด้วย การใช้สีที่แท้จริง ของ B คือ CB คูณด้วย alpha B

 

สูตร composite ของ output ซึ่งแทนค่าด้วย cO

 

คือ cO = cA คุณด้วย F (fraction ของ A ที่หาจากตาราง constant ที่ defined มาแล้ว) บวกด้วย cB คูณด้วย FB

 

ตัวอย่าง ถ้าใช้ constant Source over ซึ่งให้ A เกยทับ B ไว้บางส่วน

 

ค่า F ของ A จะเป็น 1 เพราะได้แสดงทั้งส่วน ของ A

 

ค่า F ของ B จะเป็น 1 ลบด้วย ส่วนที่ถูก A ทับ คือ (1 - alpha A)

 

ดังนั้น ค่า cO = cA คูณ 1 บวกด้วย cB คูณด้วย (1-alpha A)

 

 

cO ย่อมาจาก color component ของ output


Edited by ทรงธรรม, 29 มีนาคม พ.ศ. 2556 - 15:02.

ขอให้พวกเรา ชาวหลากสี และพันธมิตร จงมีชีวิตรอด จากภาวะเศรษฐกิจตกต่ำ ฝีมือปูนา ไปตลอดรอดฝั่งด้วยครับ

 

PEMDAS ย่อมาจาก ลำดับการคำนวณ Parentheses , Exponentials , Multiply , Divide , Add , Subtract

 

FWGHSO ย่อมาจาก ลำดับการประเมินผลของ query  FROM, WHERE, GROUP BY, HAVING, SELECT, ORDER BY


#6 ทรงธรรม

ทรงธรรม

    ต่อให้ต้องเรียนจนแก่ ก็จะเรียนต่อไป คนเราพัฒนาได้ทุกคน

  • Members
  • PipPipPip
  • 2,157 posts

ตอบ 29 มีนาคม พ.ศ. 2556 - 14:49

ค่า ความคล้ำ ของสี จาก normal คือระดับ ปกติ เป็น blackness คือ เข้มคล้ำมาก

 

แทนด้วย ค่า darken ซึ่ง เริ่มจาก 1 คือ normal ไป 0 คือ complete blackness

 

ถ้าค่า darken มากกว่า 1 จะเป็น brightened

 

 

ค่าความจางของสี จาก normal คือระดับสี ปกติ เป็น ไม่เห็นสี เลย

 

แทนด้วยค่า dissolve เริ่มจาก  1 คือ normal ไป 0 คือ ไม่เห็นสี

 

 

ค่าความปิดบัง background คือ opaque คือ ปิดบัง ทั้งหมด จนไม่ปิดบังเลย

 

แทนด้วยค่า opaque เริ่มจาก 1 คือ ปิดบังทั้งหมด ไป 0 คือ ไม่ปิดบังเลย เป็น transparent


Edited by ทรงธรรม, 29 มีนาคม พ.ศ. 2556 - 15:00.

ขอให้พวกเรา ชาวหลากสี และพันธมิตร จงมีชีวิตรอด จากภาวะเศรษฐกิจตกต่ำ ฝีมือปูนา ไปตลอดรอดฝั่งด้วยครับ

 

PEMDAS ย่อมาจาก ลำดับการคำนวณ Parentheses , Exponentials , Multiply , Divide , Add , Subtract

 

FWGHSO ย่อมาจาก ลำดับการประเมินผลของ query  FROM, WHERE, GROUP BY, HAVING, SELECT, ORDER BY


#7 ทรงธรรม

ทรงธรรม

    ต่อให้ต้องเรียนจนแก่ ก็จะเรียนต่อไป คนเราพัฒนาได้ทุกคน

  • Members
  • PipPipPip
  • 2,157 posts

ตอบ 29 มีนาคม พ.ศ. 2556 - 14:57

composite ใน pixel ประกอบด้วย 4 ส่วน

 

คือ 1 . ส่วนที่เป็น clear คือ ไม่ถูกปิดบัง ด้วย สีจาก A และ B แทนด้วย สูตร ( 1- alpha A) คูณด้วย ( 1-alpha B )

 

2. ส่วนที่เป็น A คือ ส่วนที่เป็น A เพียงอย่างเดียว ไม่ ตัดกัน กับ B แทนด้วย สูตร alpha A คูณด้วย ( 1-alpha B )

 

3. ส่วนที่เป็น B คือ ส่วนที่เป็น B เพียงอย่างเดียว ไม่ ตัดกัน กับ A แทนด้วย สูตร alpha B คูณด้วย ( 1-alpha A)

 

4. ส่วนที่ตัดกัน ของ A และ B แทนด้วยสูตร alpha A คูณด้วย alpha B

 

ซึ่งทั้งสี่ส่วน รวมกัน ต้องมีค่า เท่ากับ อัตราส่วน 1 คือจำนวนเต็ม ใน pixel


Edited by ทรงธรรม, 29 มีนาคม พ.ศ. 2556 - 14:59.

ขอให้พวกเรา ชาวหลากสี และพันธมิตร จงมีชีวิตรอด จากภาวะเศรษฐกิจตกต่ำ ฝีมือปูนา ไปตลอดรอดฝั่งด้วยครับ

 

PEMDAS ย่อมาจาก ลำดับการคำนวณ Parentheses , Exponentials , Multiply , Divide , Add , Subtract

 

FWGHSO ย่อมาจาก ลำดับการประเมินผลของ query  FROM, WHERE, GROUP BY, HAVING, SELECT, ORDER BY


#8 เคนอิจิ-นามิ

เคนอิจิ-นามิ

    สมาชิกขั้นสูง

  • Banned
  • PipPipPipPip
  • 4,447 posts

ตอบ 29 มีนาคม พ.ศ. 2556 - 19:01

สำหรับสูตรนะครับ ผมไม่สันทัด จริงๆเิง เรื่อง graphic ก็ไม่ได้ลงลึก แบบนี้นะครับ :)

แต่เท่าที่อ่าน ก็ไม่น่าจะผิดอะไร อย่างน้อยมันก็เป็นการแสดงผลของ ทฤษฎีของสองคนนี้

ปกติภาพ rgb มี 3 สี red green blue
rgb เอง เป็นค่าของแสงอยู่แล้ว ดังนั้น จะไม่มีค่าสีขาวและดำ (แสง0 คือมืด = ดำ แสงเต็มคือ สว่าง= ขาว)
ฉนั้นการแสดงผล ก็คือการยิงหลอดสี ออกมาทาง pixel แต่ละช่อง
หากต้องแสดงภาพ 2 ภาพพร้อมกัน
ในกรณี ภาพ 2 ภาพ
pixel 1 ช่อง มีความเป็นไปได้ 5 กรณี
1. a ทับ b แสดงสีของ a
2. b ทับ a แสดงสีของ b
3. background ที่ไม่มีสี อะไรเลย (ดับไฟ)
4. background ที่มีสี
5. a overlay b (ผสมสี)

ซึ่งการผสมสี เป็นการ ใส่ filter หรือทำให้สีของตัวที่โดนทับ dark ลง (เพราะเป็นเงา เวลาโดนทับ) แต่ไม่แน่ใจสูตรของ object ด้านหน้า ครับ

รวมๆก็แบบนี้น่ะครับ

ตรรกของผมที่แตกต่างจากสมาชิกคนอื่นใน สรท นิ๊ดเดียว  :D http://webboard.seri...e-3#entry634878

รอแมงวันหน้าสันขวานดิ้นดุ๊กดิ้กมาขอขมาอยู่นะ http://webboard.seri...-แวร์/?p=609037

ความตอแหลขอไอ้แมงวัน  http://webboard.seri...-แวร์/?p=609177

 





ผู้ใช้ 1 ท่านกำลังอ่านกระทู้นี้

สมาชิก 0 ท่าน, ผู้เยี่ยมชมทั่วไป 1 ท่าน และไม่เปิดเผยตัวตน 0 ท่าน