ในสาขาของฉัน (VFX ซึ่งครอบคลุมสิ่งต่าง ๆ เช่นการติดตามเส้นทางภาพเคลื่อนไหวคอมพิวเตอร์การจำลองอนุภาคพลศาสตร์ของไหลการประมวลผลภาพ ฯลฯ ) ความซับซ้อนของอัลกอริทึมเป็นพื้นฐาน ไม่มีวิธีใดในการทำงานที่เลวร้ายยิ่งกว่าเชิงเส้นตรงเวลาที่หวังว่าจะสามารถทำให้เสร็จสมบูรณ์ในเวลาที่เหมาะสมในปัจจัยการผลิตที่โดยทั่วไปมีจำนวนถึงจุดยอด, รูปหลายเหลี่ยม, รูปหลายเหลี่ยม, voxels, อนุภาค, texels โดยเฉพาะอย่างยิ่ง ข้อเสนอแนะแบบโต้ตอบเรียลไทม์
จากที่กล่าวมานั้นมีไม่มากที่เน้นความซับซ้อนของอัลกอริทึมในการสนทนาโดยทั่วไปในหมู่เพื่อนร่วมงานบางทีอาจเป็นเพราะมันค่อนข้างได้รับอนุญาตและค่อนข้าง "เป็นพื้นฐาน" โดยทั่วไปสันนิษฐานว่าถ้าคุณกำลังเขียนตัวติดตามเส้นทางที่จะทำงานในเวลาลอการิทึมหรือดีกว่าและโครงสร้างข้อมูลเช่นลำดับชั้นของไดรฟ์ข้อมูลที่คุ้นเคยและไม่ค่อยน่าใช้สำหรับผู้อ่าน ฉันยังมีเพื่อนร่วมงานที่มีทักษะซึ่งคอยบอกว่าการทำมัลติเธรดและ SIMD นั้นสำคัญกว่าอัลกอริธึมและฉันไม่คิดว่าเขาหมายความว่าในแง่ที่คุณคาดหวังว่าจะได้รับประโยชน์จากการเรียงลำดับฟอง ฉันคิดว่าเขาพูดแบบนั้นเพราะเขาคิดว่าเราใช้อัลกอริธึมที่สมเหตุสมผล
บ่อยครั้งที่โฟกัสจำนวนมากในวันนี้คือการใช้อัลกอริทึมที่คุ้นเคยเหล่านี้จำนวนมากและทำให้พวกเขาใช้ประโยชน์จากคุณลักษณะพื้นฐานของฮาร์ดแวร์เช่นแคช CPU, การลงทะเบียนและคำแนะนำของ SIMD, GPU และหลายแกน ยกตัวอย่างเช่น Intel มาด้วยวิธีใหม่ในการใช้ BVH เก่าที่คุ้นเคยและเกิดขึ้นกับแนวคิดของ "ray packets" โดยทั่วไปจะทำการทดสอบการเชื่อมโยงของรังสีหลายชนิดพร้อมกันในคราวเดียวด้วย traversal แบบวนซ้ำ (ซึ่งอาจฟังดูเหมือนมัน มาพร้อมกับส่วนแบ่งของความซับซ้อนและค่าใช้จ่ายยกเว้นมันถูกสร้างขึ้นจากความจริงที่ว่าตอนนี้สามารถทดสอบรังสีเหล่านั้นพร้อมกันสำหรับเรย์ / AABB และเรย์ / สามเหลี่ยมแยกผ่านคำสั่ง SIMD และการลงทะเบียน)
สิ่งที่คล้ายกันกับการแบ่ง catmull-clark ซึ่งเป็นสิ่งพื้นฐานมากในคอมพิวเตอร์กราฟิก แต่ทุกวันนี้สิ่งที่มีความสามารถในการแข่งขันและร้อนแรงและมีประสิทธิภาพสูงคือการใช้งาน GPU ซึ่งมีการแบ่ง CC โดยใช้เกรกอรี่แพทช์ซึ่งเป็นที่นิยมของ Charles Loop และนำมาใช้ในภายหลังโดย Pixar การใช้ CPU ที่ตรงไปตรงมามากขึ้นในปัจจุบันค่อนข้างล้าสมัยไม่จำเป็นเพราะมันถูกแทนที่ด้วยความซับซ้อนของอัลกอริทึม แต่เพราะมันถูกแทนที่ด้วยบางสิ่งที่เล่นได้ดีกับ GPU
และนั่นมักจะเป็นความท้าทายมากมายในทุกวันนี้ไม่ได้เกิดขึ้นกับอัลกอริธึมที่ดีที่สุดในแบบที่ค่อนข้างเป็นอิสระจากคุณลักษณะพื้นฐานของฮาร์ดแวร์ จริง ๆ แล้วฉันได้เท้าของฉันในอุตสาหกรรมโดยมาพร้อมกับโครงสร้างการเร่งความเร็วแบบใหม่ที่เร่งการตรวจจับการชนสำหรับตัวละครอนิเมชั่นและซอฟต์ตัวอื่น ๆ ในยุค 90 อย่างมีนัยสำคัญโดยใช้วิธีแบ่งกลุ่มตามลำดับชั้น ข้อเสนองาน แต่วันนี้มันไม่น่าประทับใจอีกต่อไปแล้วตั้งแต่ฉันตีพิมพ์มันนานก่อนที่เราจะมีซีพียูที่น่าประทับใจและหลายคอร์และ GPU ที่ตั้งโปรแกรมได้และสิ่งที่ไม่ได้และในปัจจุบันฉันใช้วิธีที่แตกต่างอย่างสิ้นเชิง ฮาร์ดแวร์พื้นฐาน