Di bidang saya (VFX, yang mencakup hal-hal seperti pelacakan jalur, animasi komputer, simulasi partikel, dinamika fluida, pemrosesan gambar, dll.), Kompleksitas algoritme adalah hal yang mendasar. Tidak ada cara apa pun yang beroperasi lebih buruk daripada waktu linearithmic dapat berharap untuk menyelesaikan dalam waktu yang wajar pada input yang biasanya mencapai jutaan simpul, poligon, voxel, partikel, texels, terutama ketika banyak dari hal-hal ini perlu diselesaikan beberapa kali dalam sedetik untuk menyediakan umpan balik interaktif waktu nyata.
Dengan mengatakan bahwa, tidak ada yang kuat dari penekanan pada kompleksitas algoritmik dalam diskusi biasanya di antara rekan-rekan, mungkin karena agak diterima begitu saja dan agak "sederhana". Secara umum diasumsikan jika Anda menulis lacak jalur yang akan beroperasi dalam waktu logaritmik atau lebih baik, dan bahwa struktur data seperti hierarki volume yang terikat sudah dikenal dan relatif sepele untuk diterapkan bagi pembaca. Saya bahkan punya kolega yang terampil yang terus mengatakan bahwa multithreading dan SIMD lebih penting daripada algoritma, dan saya tidak berpikir dia bermaksud bahwa dalam arti bahwa Anda bisa berharap untuk mendapatkan jauh dari paralelisasi semacam gelembung. Saya pikir dia mengatakan itu karena dia menerima begitu saja bahwa kami akan menerapkan algoritma yang masuk akal,
Seringkali banyak fokus hari ini adalah mengambil banyak dari algoritma yang sudah dikenal ini dan menjadikannya lebih baik mengeksploitasi karakteristik perangkat keras seperti cache CPU, register dan instruksi SIMD, GPU, dan banyak core. Sebagai contoh, Intel datang dengan cara baru untuk mengambil BVH lama yang sudah dikenal dan datang dengan konsep "paket ray", pada dasarnya menguji beberapa sinar koheren pada satu waktu dengan semacam traversal pohon rekursif (yang mungkin terdengar seperti itu) akan hadir dengan bagian kompleksitas dan overhead, kecuali lebih dari dibuat oleh fakta bahwa sinar tersebut sekarang dapat diuji secara simultan untuk persimpangan ray / AABB dan ray / segitiga melalui instruksi dan register SIMD).
Hal serupa dengan subdivisi seperti catmull-clark, yang merupakan hal yang sangat mendasar dalam grafis komputer. Tetapi saat ini yang kompetitif dan panas dan sangat efisien adalah implementasi GPU yang mendekati subdivisi CC menggunakan Gregory Patches, seperti yang dipopulerkan oleh Charles Loop dan kemudian diadopsi oleh Pixar. Implementasi CPU yang lebih mudah sekarang agak usang, tidak harus karena digantikan dalam hal kompleksitas algoritmik, tetapi karena digantikan oleh sesuatu yang bermain baik dengan GPU.
Dan itu biasanya banyak tantangan hari ini tidak datang dengan algoritma terbaik dengan cara yang relatif independen dari karakteristik perangkat keras yang mendasarinya. Saya benar-benar berhasil di industri dengan membuat struktur percepatan baru yang secara signifikan mempercepat deteksi tabrakan untuk karakter animasi dan badan lunak lainnya di tahun 90-an menggunakan pendekatan segmentasi hierarkis yang bertentangan dengan indeks spasial, yang membuat saya banyak tawaran pekerjaan, tetapi hari ini tidak begitu mengesankan lagi karena saya menerbitkannya jauh sebelum kami memiliki cache CPU yang mengesankan dan beberapa core dan GPU yang dapat diprogram dan apa yang tidak, dan saat ini saya menggunakan pendekatan yang sama sekali berbeda sebagai akibat dari perubahan signifikan pada perangkat keras yang mendasarinya.