Originally posted by KAYAZUDA
Announcement
Collapse
No announcement yet.
AA Anti-Aliasing กับ Ram มันคือของคู่กัน
Collapse
This is a sticky topic.
X
X
-
"เรนเดอร์ใหญ่กว่าภาพจริง และลดขนาดลงมาแสดงผลให้เท่าขนาดภาพที่ต้องการ"
แปลว่าที่ 4AA มันจะต้องสร้างภาพความละเอียดสูงกว่านั้นถึง 4 เท่า ก็คือ 8 ล้าน Pixel กันเลยทีเดียว
กินGPU มากกว่า การปรับ Resolution
AA ก็คือการแทนเม๊ดพิ๊กเซล เข้าไปลบลอยหยักเหมือนพวกโปรแกรมซุมภาพไม่แตก
ไว้มาต่อ
Comment
-
ขโมยซีนลุงร่มดีกว่า
Originally posted by KAYAZUDA"เรนเดอร์ใหญ่กว่าภาพจริง และลดขนาดลงมาแสดงผลให้เท่าขนาดภาพที่ต้องการ"
เรนเดอร์ตัวเต็มไว้ก่อน แล้วแสดงวัตถุเดิมที่ระยะต่างๆได้ง่ายอันนี้กินแรมจริง เพราะต้องเก็บไว้ทุกภาพ
ภาพขนาดเล็กสุดไว้แสดงเมื่อวัตถุอยู่ไกลสุด
ภาพขนาดใหญ่เมื่อวัตถุอยู่ใกล้เข้ามา
http://en.wikipedia.org/wiki/Mipmap
==================================
ส่วน Anti-aliasing หรือAA เอาไว้ลบรอยเหลี่ยมที่เกิดจากพิกเซลที่ไม่อยู่ในแนวเส้น
สาเหตุเพราะเม็ดพิกเซลอยู่ในแนวนอนและแนวดิ่งเหมือนตารางหมากรุก แต่ถ้ามีเส้นเฉียงหรือโค้งตัดแนวพิกเซลจะเกิดเป็นหยักๆ ดังรูปอักษร A ด้านซ้าย
http://en.wikipedia.org/wiki/Aliasing
เพื่อให้ภาพเนียนตาขึ้น คอมพิวเตอร์ก็จะสร้างพิกเซลสีเทาขึ้นมาแทรกเพื่อให้เมื่อมองแล้วดูดีขึ้น
ตัวอย่างนี้แทรกสีเทาเพิ่มขึ้นมาเพราะอักษรสีดำ อยู่บนพื้นขาว
หากวัตถุสีอื่น อยู่บนพื้นสีอื่น คอมพิวเตอร์ก็จะแทรกสีที่คิดว่าเหมาะสมตามAlgorithmที่วางไว้ โดยพิจารณาจากสีพิกเซลรอบข้าง
ไม่น่าจะใช้แรมนะ น่าจะใช้GPU มากกว่า เหมือนที่กระทู้ก่อนหน้าแก้ในเกม ที่ท่าน Cal2Toon ในเรป #62 บอกว่าจัดสุดก็กินแรมไปนิดเดียว
สรุปว่ากระทู้นี้ CEO ปล่อยไก่?
ขอขัดใจซักวันเถอะนะ
Comment
-
Originally posted by KAYAZUDAแปลว่าที่ 4AA มันจะต้องสร้างภาพความละเอียดสูงกว่านั้นถึง 4 เท่า ก็คือ 8 ล้าน Pixel กันเลยทีเดียว
เพราะว่าสิ่งที่คอมพิวเตอร์รับรู้ มันคือสมการเวคเตอร์ ไม่ใช่พิกเซล
เมื่อมันเป็นสมการเวคเตอร์ มันจะซูมจะขยาย พลิกกลับหัวอย่างไรก็ได้ ก็แปลงเป็นพิกเซล
(ใครเล่นเกมจากโปรแกรมFlash จะทราบดี ขยายเต็มจอภาพก็ไม่เกิดรอยหยัก เพราะมันเป็นเวคเตอร์)
แต่ที่มันแสดงเป็นพิกเซล เนื่องจากจอถูกกำหนดเป็นพิกเซลเพื่อแสดงผล
ขออีกซักรอบ ก่อนนอน
Comment
-
แล้วอะไรที่ไม่ใช่เวคเตอร์
ก็คือTexture file ที่ต้องมาเติมพื้นผิว
เช่นพื้นผิวถนน ลักษณะผนังกำแพง โปสเตอร์
ตัวอย่าง รูปบนป้ายโฆษณาบาวแดง โลโก้บนหลังเสื้อ มันเป็นภาพที่ถูกถ่ายมาเพื่อทำเป็นTexture file
พวกนี้สิกินแรมจริง เพราะต้องเอามาทำ Mipmap
รูปเอามาจากท่านboyd_747 จากกระทู้นี้ http://www.overclockzone.com/forums/...ad.php/1373152
Comment
-
อีกนิดนึง ถ้า เป็นการเพิ่มเส้น ของโพลีให้เนียนนนน ไม่น่าจะใช่แน่นอน
อันนั้นน่าจะเป็น Tessellation มากกว่า โคตรเเดกสเปคอีก
ถ้าเปรียบว่า CPU วาด ภาพ แล้ว GPU ลงสี
เปิด AA ก็เหมือนตัดเส้นให้เนียน ด้วยการแทนเม็ด Pixel
จะบอกว่าเกลี่ยสีก็ไม่ถูกซะทีเดียวเพราะ จะไปนู่นเลย Grammar contrast บลาๆๆ
ปัญหาที่น่าจะตอบยากสุด คือ Engine แต่ละอัน มีหลักการทำงาน AA ไม่เหมือนกันนและอื่นๆ หาค่าความเป็นกลางยาก
ประเด็นหลัก เพราะผมไม่เคยแตะ Engine Game แบบหลากหลายเท่าไหร่Last edited by umbrella; 23 Jul 2011, 01:00:22.
Comment
-
ถ้าเช่นนั้นแล้วอะไรที่ทำให้การ์ดจอที่มีแรมมากกว่าได้เปรียบ
หนูคิดว่าเกิดจาก ข้อมูลขยะที่เกิดขึ้นจากการคำนวนและประมวลผลของ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
Comment