Apa yang harus ditulis oleh setiap programmer grafis [ditutup]

18

Saya telah melihat pertanyaan ini pada SO, tetapi di sini saya ingin fokus pada GFX.

Jadi menurut Anda aplikasi / fitur apa yang harus ditulis / diubah oleh setiap programmer GFX yang ingin menjadi lebih baik?

Komunitas wiki karena tidak ada "jawaban yang benar".

LE: Tidak mengacu pada gim yang sebenarnya, tetapi pada fitur grafis misalnya mengubah sesuatu di mesin (misalnya cara memuat objek), membuat komposer, seterusnya, dan sebagainya.

Cristina
sumber
2
Mirip dengan pertanyaan ini: gamedev.stackexchange.com/questions/854/…
Bryan Denny

Jawaban:

22

Jawaban saya selalu sama: jika Anda belum pernah menulis sebelumnya, tulislah raytracer.

Anda harus berurusan dengan struktur pengoptimalan, ketepatan angka, dan segala macam masalah lainnya, tetapi Anda juga akan bekerja secara langsung dengan matematika cahaya dengan cara yang jarang Anda lakukan ketika berurusan dengan semua peretasan dan perkiraan yang membentuk penyaji waktu nyata produksi.

Lepaskan semua bangunan sistem pemuatan, kata kunci-of-the-the week, ditangguhkan-ini atau maju-itu, dan Anda akhirnya, dengan cahaya bepergian melalui media. Pada akhirnya, itu semua ada untuk grafis.

Charlie
sumber
Menarik, saya sedang merenungkan menyarankan raytracer juga, latihan matematika yang sangat bagus. Saya tidak setuju dengan ditangguhkan menjadi kata kunci dalam seminggu, itu, seperti raytracing, perubahan yang cukup besar dalam cara Anda mendekati rendering Anda, yang, untuk seorang programmer grafis tampaknya menjadi sesuatu yang harus Anda ketahui.
Kaj
Saya akan mengatakan bahwa optimasi tidak sepenting berurusan dengan jerat yang sewenang-wenang, yang merupakan langkah banyak orang tidak pernah sampai dengan raytracer.
Jonathan Fischoff
Saya akan kedua (ketiga?) Saran ini, dengan peringatan bahwa (sebagaimana disebutkan) perlu mendukung jerat, dan tidak hanya berhenti di shiny-spheres-on-a-chequerboard. Poin bonus untuk setiap upaya penerangan global. Bahkan jika Anda tidak mengoptimalkannya menjadi sesuatu yang benar-benar bisa digunakan , Anda harus berusaha memahami bit mana yang lambat dan mengapa.
JasonD
Dan satu peringatan dengan saran ini - sementara perjalanan ringan melalui media adalah semua yang ada untuk grafis, itu akan memberi Anda sedikit pelatihan dalam apa yang Anda butuhkan dalam lingkungan produksi aktual (saat ini).
Kaj
1
+1 menulis pelacak sinar adalah hal paling berguna yang saya pelajari di kelas grafik kuliah saya
Bryan Denny
7

Ini mungkin sedikit praktis digunakan hari ini, tetapi menulis di renderer perangkat lunak, setidaknya yang dasar (mungkin hanya beberapa kubus bertekstur berputar), adalah latihan yang bermanfaat.

Memahami cara mentransformasikan, memproyeksikan, memproyeksikan, memilah-milah, merasterisasi, dan poligon peta tekstur sendiri akan memberi Anda pemahaman yang lebih baik tentang apa yang dilakukan perangkat keras 3D dan rendering API.

bluescrn
sumber
cukup banyak ini. kecuali ini, sprite blitter dengan dukungan alpha. ..atau setidaknya sesuatu, APA SAJA, di mana Anda memanipulasi piksel dengan nilai bitnya.
Lassi Kinnunen
6

Meskipun tidak merender kode, saya pikir menulis kompiler BSP dan menyertai kode traversal adalah latihan yang bagus dalam matematika vektor.
Kedua, penyaji tangguhan. Bukan karena ini adalah jawaban akhir semua untuk rendering, tetapi itu akan memberi Anda wawasan dalam pendekatan lain untuk rendering.

Kaj
sumber
2

Pelajari mekanika dan keterampilan menulis shader yang bagus. Meskipun tidak 100% diperlukan dalam semua kasus, itu adalah keterampilan yang berharga untuk diketahui.

RCIX
sumber
Saya setuju dengan jawaban Anda namun itu terlalu luas dan beberapa sumber daya dan tautan ke mereka tidak ada salahnya untuk jawaban yang lengkap :).
lukas.pukenis