Announcement

Collapse
No announcement yet.

AA Anti-Aliasing กับ Ram มันคือของคู่กัน

Collapse
This is a sticky topic.
X
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • #91
    Originally posted by KAYAZUDA
    .....นี่ไงจะอธิบายอยู่ การทำงาน จำได้ใช่มั้ยว่าการ์ดจอระบายสี CPU วาดภาพ ดังนั้น โครงร่างหลักที่จะสร้างให้เกิด......
    ประโยคนี้มันคุ้นๆยังไงไม่รู้นะ

    Comment


    • #92
      "เรนเดอร์ใหญ่กว่าภาพจริง และลดขนาดลงมาแสดงผลให้เท่าขนาดภาพที่ต้องการ"
      น่าจะไม่ถูกต้องซะทีเดียว เพราะอย่างนั่นไม่น่าจะเรียกว่า AA เรียกว่า Scale ภาพมากกว่า

      แปลว่าที่ 4AA มันจะต้องสร้างภาพความละเอียดสูงกว่านั้นถึง 4 เท่า ก็คือ 8 ล้าน Pixel กันเลยทีเดียว
      อันนี้ก็ไม่ถูกต้องซะทีเดียว เพราะถ้าความหมายนั้น AA คือการหรอกเครื่องว่า ให้แสดงผลที่ Resolution เท่านี้ แต่เรนเดอร์ อีกเท่านึง จะกลายเป็นการเปิด AA
      กินGPU มากกว่า การปรับ Resolution

      AA ก็คือการแทนเม๊ดพิ๊กเซล เข้าไปลบลอยหยักเหมือนพวกโปรแกรมซุมภาพไม่แตก

      ไว้มาต่อ

      Comment


      • #93
        ขโมยซีนลุงร่มดีกว่า
        Originally posted by KAYAZUDA
        "เรนเดอร์ใหญ่กว่าภาพจริง และลดขนาดลงมาแสดงผลให้เท่าขนาดภาพที่ต้องการ"
        เรียกว่า Mipmap
        เรนเดอร์ตัวเต็มไว้ก่อน แล้วแสดงวัตถุเดิมที่ระยะต่างๆได้ง่ายอันนี้กินแรมจริง เพราะต้องเก็บไว้ทุกภาพ
        ภาพขนาดเล็กสุดไว้แสดงเมื่อวัตถุอยู่ไกลสุด
        ภาพขนาดใหญ่เมื่อวัตถุอยู่ใกล้เข้ามา


        http://en.wikipedia.org/wiki/Mipmap

        ==================================
        ส่วน Anti-aliasing หรือAA เอาไว้ลบรอยเหลี่ยมที่เกิดจากพิกเซลที่ไม่อยู่ในแนวเส้น
        สาเหตุเพราะเม็ดพิกเซลอยู่ในแนวนอนและแนวดิ่งเหมือนตารางหมากรุก แต่ถ้ามีเส้นเฉียงหรือโค้งตัดแนวพิกเซลจะเกิดเป็นหยักๆ ดังรูปอักษร A ด้านซ้าย

        http://en.wikipedia.org/wiki/Aliasing
        เพื่อให้ภาพเนียนตาขึ้น คอมพิวเตอร์ก็จะสร้างพิกเซลสีเทาขึ้นมาแทรกเพื่อให้เมื่อมองแล้วดูดีขึ้น
        ตัวอย่างนี้แทรกสีเทาเพิ่มขึ้นมาเพราะอักษรสีดำ อยู่บนพื้นขาว
        หากวัตถุสีอื่น อยู่บนพื้นสีอื่น คอมพิวเตอร์ก็จะแทรกสีที่คิดว่าเหมาะสมตามAlgorithmที่วางไว้ โดยพิจารณาจากสีพิกเซลรอบข้าง
        ไม่น่าจะใช้แรมนะ น่าจะใช้GPU มากกว่า เหมือนที่กระทู้ก่อนหน้าแก้ในเกม ที่ท่าน Cal2Toon ในเรป #62 บอกว่าจัดสุดก็กินแรมไปนิดเดียว

        สรุปว่ากระทู้นี้ CEO ปล่อยไก่?
        ขอขัดใจซักวันเถอะนะ

        Comment


        • #94
          Originally posted by KAYAZUDA
          แปลว่าที่ 4AA มันจะต้องสร้างภาพความละเอียดสูงกว่านั้นถึง 4 เท่า ก็คือ 8 ล้าน Pixel กันเลยทีเดียว


          และไม่จำเป็นที่จะต้องสร้างภาพไว้ 4เท่า หรือ 8เท่าหรอกนะ
          เพราะว่าสิ่งที่คอมพิวเตอร์รับรู้ มันคือสมการเวคเตอร์ ไม่ใช่พิกเซล
          เมื่อมันเป็นสมการเวคเตอร์ มันจะซูมจะขยาย พลิกกลับหัวอย่างไรก็ได้ ก็แปลงเป็นพิกเซล
          (ใครเล่นเกมจากโปรแกรมFlash จะทราบดี ขยายเต็มจอภาพก็ไม่เกิดรอยหยัก เพราะมันเป็นเวคเตอร์)
          แต่ที่มันแสดงเป็นพิกเซล เนื่องจากจอถูกกำหนดเป็นพิกเซลเพื่อแสดงผล


          ขออีกซักรอบ ก่อนนอน

          Comment


          • #95
            แล้วอะไรที่ไม่ใช่เวคเตอร์
            ก็คือTexture file ที่ต้องมาเติมพื้นผิว
            เช่นพื้นผิวถนน ลักษณะผนังกำแพง โปสเตอร์
            ตัวอย่าง รูปบนป้ายโฆษณาบาวแดง โลโก้บนหลังเสื้อ มันเป็นภาพที่ถูกถ่ายมาเพื่อทำเป็นTexture file
            พวกนี้สิกินแรมจริง เพราะต้องเอามาทำ Mipmap


            รูปเอามาจากท่านboyd_747 จากกระทู้นี้ http://www.overclockzone.com/forums/...ad.php/1373152

            Comment


            • #96
              ซึ่งเมื่อเข้าไปใกล้ๆ texture เหล่านี้ก็จะเริ่มเบลอ เริ่มแตก ส่วนจะเบลอจะแตกที่ระยะเท่าไหร่ ขึ้นอยู่กับต้นฉบับภาพที่เอามาทำ

              Comment


              • #97
                สาระทั้งนั้น จดๆๆ

                Comment


                • #98
                  อีกนิดนึง ถ้า เป็นการเพิ่มเส้น ของโพลีให้เนียนนนน ไม่น่าจะใช่แน่นอน
                  อันนั้นน่าจะเป็น Tessellation มากกว่า โคตรเเดกสเปคอีก


                  ถ้าเปรียบว่า CPU วาด ภาพ แล้ว GPU ลงสี
                  เปิด AA ก็เหมือนตัดเส้นให้เนียน ด้วยการแทนเม็ด Pixel
                  จะบอกว่าเกลี่ยสีก็ไม่ถูกซะทีเดียวเพราะ จะไปนู่นเลย Grammar contrast บลาๆๆ


                  ปัญหาที่น่าจะตอบยากสุด คือ Engine แต่ละอัน มีหลักการทำงาน AA ไม่เหมือนกันนและอื่นๆ หาค่าความเป็นกลางยาก
                  ประเด็นหลัก เพราะผมไม่เคยแตะ Engine Game แบบหลากหลายเท่าไหร่
                  Last edited by umbrella; 23 Jul 2011, 01:00:22.

                  Comment


                  • #99
                    ถ้าเช่นนั้นแล้วอะไรที่ทำให้การ์ดจอที่มีแรมมากกว่าได้เปรียบ
                    หนูคิดว่าเกิดจาก ข้อมูลขยะที่เกิดขึ้นจากการคำนวนและประมวลผลของAA ไม่ว่าจะเป็นเรื่องค่าสีของพิกเซล ตำแหน่ง
                    ถ้าแรมมีมาก ก็หมายความว่า GPU คิดไปเรื่อยๆ ลงสีลงTextureไปเรื่อยๆ ไม่ต้องกลับมาClear VRAM เพื่อเตรียมใช้
                    ถ้ามีแรมน้อย ก็ต้องคิดไป แล้วมาClear VRAM ไปด้วย เสียเวลามากๆ การรอทำให้ Frame rate drop
                    ลองเล่นเกมไปด้วยในwindow mode แล้วเปิดพวก GPU-Z ไปด้วย VRAM จะถูกใช้ไปเรื่อยๆ จาก 500mbเพิ่มไปเรื่อยๆ (เป็นค่าสมมติ)
                    จนไปตันที่ค่าๆหนึ่งแล้วแต่เกม(สมมติว่าที่800mb) ถ้าค่าที่ตันนั้นน้อยกว่าRAMของการ์ดจอ ก็ไม่ต้องเสียเวลามาClear
                    แต่ถ้าการ์ดจอแค่ 512mb มันก็ต้องมาClear ของเก่า ก่อนจะคิดของใหม่ พอเราหยุดเกม VRAM ก็จะค่อยๆลดลงมาจนถึงค่าต่ำสุดที่ยังคงภาพนั้นไว้
                    ลองดูนะ

                    อุปมาดัง คนอยู่หอพักมีจานแค่ชุดเดียว ต้องกินข้าวผัด ของหวาน มันฝรั่งทอดกรอบ
                    ก็ต้องล้างจานทุกครั้งเช็ดทุกครั้งก่อนจะใช้ใส่เมนูถัดไป
                    แต่ถ้ามีจาน3ชุด ก็เททุกอย่างใส่แต่ละใบได้เลย ทั้งที่คนๆนี้ก็กินเร็วเท่ากัน
                    ถ้าพาแฟนมาด้วยแฟนก็จะพูดแทงใจดำว่า " เมื่อไหร่จะได้กิน"

                    Comment


                    • Originally posted by hinosuke View Post
                      ถ้าเช่นนั้นแล้วอะไรที่ทำให้การ์ดจอที่มีแรมมากกว่าได้เปรียบ
                      หนูคิดว่าเกิดจาก ข้อมูลขยะที่เกิดขึ้นจากการคำนวนและประมวลผลของAA ไม่ว่าจะเป็นเรื่องค่าสีของพิกเซล ตำแหน่ง
                      ถ้าแรมมีมาก ก็หมายความว่า GPU คิดไปเรื่อยๆ ลงสีลงTextureไปเรื่อยๆ ไม่ต้องกลับมาClear VRAM เพื่อเตรียมใช้
                      ถ้ามีแรมน้อย ก็ต้องคิดไป แล้วมาClear VRAM ไปด้วย เสียเวลามากๆ การรอทำให้ Frame rate drop
                      ลองเล่นเกมไปด้วยในwindow mode แล้วเปิดพวก GPU-Z ไปด้วย VRAM จะถูกใช้ไปเรื่อยๆ จาก 500mbเพิ่มไปเรื่อยๆ (เป็นค่าสมมติ)
                      จนไปตันที่ค่าๆหนึ่งแล้วแต่เกม(สมมติว่าที่800mb) ถ้าค่าที่ตันนั้นน้อยกว่าRAMของการ์ดจอ ก็ไม่ต้องเสียเวลามาClear
                      แต่ถ้าการ์ดจอแค่ 512mb มันก็ต้องมาClear ของเก่า ก่อนจะคิดของใหม่ พอเราหยุดเกม VRAM ก็จะค่อยๆลดลงมาจนถึงค่าต่ำสุดที่ยังคงภาพนั้นไว้
                      ลองดูนะ

                      อุปมาดัง คนอยู่หอพักมีจานแค่ชุดเดียว ต้องกินข้าวผัด ของหวาน มันฝรั่งทอดกรอบ
                      ก็ต้องล้างจานทุกครั้งเช็ดทุกครั้งก่อนจะใช้ใส่เมนูถัดไป
                      แต่ถ้ามีจาน3ชุด ก็เททุกอย่างใส่แต่ละใบได้เลย ทั้งที่คนๆนี้ก็กินเร็วเท่ากัน
                      ถ้าพาแฟนมาด้วยแฟนก็จะพูดแทงใจดำว่า " เมื่อไหร่จะได้กิน"

                      หลักการเดียว กับ CPU ป๊ะ
                      เพราะเดี๋ยวนี้ RAM VGA เมื่อเทียวกับสมัยก่อน ต่างเยอะมาก จนไม่ต้องโหลดอะไรเลยหรือโหลดนิดเดียว เท่าที่ผมเดาๆผมยังงงๆ กับ AA อยู่หน่อยๆ
                      แต่Ramนี่เก็บการประมวลค่าทุกอย่างของ Texture ไว้
                      ท่านฮิโน่ว่าไง


                      แต่หลักการทำงานของ Flash กับ 3d ต่างกันนะ
                      ผมก็ยังสับสนเล็กน้อย
                      ถ้า Flash นี่ เป็ฯ Vector เต็มๆ แต่ 3dนี่เป็น Poly มันไม่เชิงเวคเตอร์ไปซะทีเดียวอ่าา

                      Comment


                      • ร่มจ๋า
                        เอานี่ไปอ่านเลย การทำ AA คร่าวๆ แบบ multisampling และ supersampling


                        เมื่อมี4pixelที่ติดกัน จะชดเชยได้อย่างไรก็ด้วยการสุ่มสีออกมา ด้วยจุดที่ถูกกำหนดไว้ตาม algorithm


                        ฉบับเต็ม http://www.pantherproducts.co.uk/Art...aliasing.shtml
                        พอดูไว้คร่าวๆ ปัจจุบัน AAมันพัฒนาไปมากกว่านี้เยอะ

                        อย่างรูปนี้ ขอบภาพจริงๆ ต้องการให้เป็นแบบนี้


                        แต่มันทำไม่ได้ เพราะตัวจอแสดงผล มันบังคับว่าต้องสี่เหลี่ยมตามพิกเซล
                        จึงได้แบบนี้มาแทน


                        จึงต้องมีการสุ่มสี เพื่อหลอกตา ให้ดูแล้วใกล้เคียงภาพบนมากที่สุด
                        Last edited by hinosuke; 23 Jul 2011, 01:53:18.

                        Comment


                        • Originally posted by hinosuke View Post
                          ร่มจ๋า
                          เอานี่ไปอ่านเลย การทำ AA คร่าวๆ แบบ multisampling และ supersampling


                          เมื่อมี4pixelที่ติดกัน จะชดเชยได้อย่างไรก็ด้วยการสุ่มสีออกมา ด้วยจุดที่ถูกกำหนดไว้ตาม algorithm


                          ฉบับเต็ม http://www.pantherproducts.co.uk/Art...aliasing.shtml
                          พอดูไว้คร่าวๆ ปัจจุบัน AAมันพัฒนาไปมากกว่านี้เยอะ

                          อย่างรูปนี้ ขอบภาพจริงๆ ต้องการให้เป็นแบบนี้


                          แต่มันทำไม่ได้ เพราะตัวจอแสดงผล มันบังคับว่าต้องสี่เหลี่ยมตามพิกเซล
                          จึงได้แบบนี้มาแทน


                          จึงต้องมีการสุ่มสี เพื่อหลอกตา ให้ดูแล้วใกล้เคียงภาพบนมากที่สุด

                          บร๊ะ!!!!!!!!!!!!!! กดLIKEEEEEEEEE

                          Comment


                          • Polygon ของ3D Model มันก็เกิดจากสมการเวคเตอร์ที่เชื่อมจาก Apex หนึ่งไปยังอีก Apex หนึ่ง
                            ถ้าไม่กำหนดเป็นสมการเวคเตอร์ ตอนเราหมุนรูปแบบ Real time คอมจะทำงานลำบากมากๆ
                            เคยเล่น AutoCAD ใช่ป่ะ เส้นใน AutoCAD มันคือสมการ ไม่ใช่เส้นแบบที่วาดบนโปรแกรม Paintที่แถมกับwindow
                            เราเลยสามารถหมุนดูได้ทุกมุม

                            Comment


                            • อ่าา3d พอเข้าใจ เกมส์จริงๆมันก็ ทำงานในระดับ Open GL ไม่เชิงถึงกับ ภาพเรนเดอร์ที่ทำเหมือน CG
                              ไม่รู้จะบอกยังไงดี 555+

                              Comment


                              • ฝันดีนะร่ม จุ๊บๆ

                                Comment

                                Working...
                                X