| Grafik komputertiga dimensi (3D) |
| --- |
|  |
| 
Asas |
| * Pemodelan
* Pengimbasan
* Perenderan
* Pencetakan
 |
| 
Kegunaan utama |
| * Model 3D
* Reka bentuk berbantu komputer
* Reka bentuk grafik
* Permainan video
* Kesan visual
* Visualisasi
* Kejuruteraan maya
* Realiti maya
* Sinematografi maya
 |
| 
Topik berkaitan |
| * Imej janaan komputer (CGI)
* Animasi
	+ komputer
	+ rangka
* Paparan 3D
* Model rangka dawai
* Pemetaan tekstur
* Penangkapan gerakan
* Simulasi keramaian
* Pencahayaan sejagat
* Perenderan isi padu
 |
| * l
* b
* s
 |

**Perenderan 3D** (bahasa Inggeris: *3D rendering*code: en is deprecated ) merupakan proses grafik komputer 3D untuk menukar model 3D kepada imej 2D dalam komputer, sama ada yang fotorealistik mahupun tidak fotorealistik.

Kaedah perenderan
-----------------

 Renderan 3D fotorealistik bagi enam kipas komputer menggunakan pemaparan radiositi, DOF dan material prosedural
Perenderan merupakan proses terakhir dalam menghasilkan imej atau animasi 2D daripada adegan yang disediakan, lebih kurang sama seperti mengambil gambar foto atau merakam adegan selepas selesai kerja persiapan di dunia nyata. Telah dibangunkan pelbagai kaedah perenderan untuk tujuan khusus; ini termasuk pemaparan rangka dawai yang jelas tidak realistik melalui perenderan berasaskan poligon, dan juga teknik-teknik termaju seperti pemaparan garis imbas (*scanline rendering*code: en is deprecated ), pengesanan sinar (*ray tracing*code: en is deprecated ) atau radiositi. Mungkin mengambil masa dari sesingkat kurang dari satu saat hingga selama beberapa hari untuk merenderkan satu imej/bidang. Secara umum, pemilihan sama ada perenderan fotorealistik atau perenderan masa nyata menuntut penggunaan kaedah yang berbeza.

Masa nyata
----------

 Tangkapan skrin dari dunia maya atas talian *Second Life* (2003) yang menghasilkan bidang-bidang dalam masa nyata
Perenderan untuk media interaktif seperti permainan dan simulasi adalah dihitung dan dipaparkan dalam masa nyata pada kadar kira-kira 20 hingga 120 bidang sesaat. Perenderan masa nyata bertujuan untuk menunjukkan sebanyak mungkin maklumat yang dapat diproses oleh mata dalam pecahan sesaat (aka "dalam satu bidang": Dalam hal animasi 30 bidang sesaat, satu bidang merangkumi satu 30 saat).

Matlamat utama adalah untuk mencapai tahap fotorealisme setinggi mungkin pada kelajuan pemaparan minimum yang diterima umum (biasanya 24 bidang sesaat, kerana itu adalah minimum yang perlu dilihat oleh mata manusia untuk berjaya mencipta ilusi pergerakan). Malah, cara mata 'mempersepsikan' dunia boleh dikenakan eksploitasi, dan kesannya, imej akhir yang dipersembahkan tidak semestinya sama dengan dunia sebenar, tetapi cukup hampir untuk disenangi mata manusia.

Perisian render boleh mensimulasikan kesan-kesan visual seperti suar kanta [en], kedalaman medan [en] atau *motion blur [en]*. Semua ini adalah percubaan mensimulasikan fenomena visual yang terhasil daripada ciri-ciri optik yang terdapat dalam kamera dan juga mata manusia. Kesan-kesan tersebut dapat menerapkan unsur realisme ke dalam adegan, biarpun sekadar hasil simulasi artefak kamera. Inilah kaedah asas yang digunakan dalam permainan, dunia interaktif dan VRML.

Peningkatan pesat kuasa pemprosesan komputer telah membolehkan tahap realisme yang semakin tinggi walaupun untuk perenderan masa nyata; ini termasuk teknik-teknik seperti perenderan HDR [en]. Perenderan masa nyata selalunya bersifat poligon dan dibantu oleh GPU komputer.

Bukan masa nyata
----------------

 Imej janaan komputer (CGI) yang dicipta oleh Gilles Tran
Animasi untuk media bukan interaktif seperti filem cereka dan video, boleh mengambil lebih banyak masa untuk dirender. Perenderan bukan masa nyata membolehkan kita untuk memanfaatkan kuasa pemprosesan terhad untuk mendapatkan kualiti imej yang lebih tinggi. Proses perenderan untuk setiap satu bidang mungkin mengambil masa dari beberapa saat hingga beberapa hari untuk adegan yang kompleks. Bidang-bidang yang terhasil itu disimpan pada cakera keras, kemudian dipindahkan ke media lain seperti filem gambar bergerak atau cakera optik. Bidang-bidang ini kemudian dipaparkan secara berurutan pada kadar bidang yang tinggi, biasanya 24, 25 atau 30 bidang sesaat (fps), untuk mencapai ilusi pergerakan.

Jika hendak mencapai fotorealisme, maka digunakanlah teknik-teknik seperti pengesanan sinar [en], pengesanan laluan [en], pemetaan foton [en] atau radiositi [en]. Inilah kaedah asas yang digunakan dalam media digital dan penghasilan karya seni. Telah dibangunkan teknik-teknik untuk tujuan mensimulasikan kesan-kesan semula jadi yang lain seperti interaksi cahaya dengan pelbagai bentuk jirim. Contoh teknik sedemikian termasuk:

* sistem zarah [en] (yang boleh mensimulasikan hujan, asap atau api)
* pensampelan volumetrik [en] (untuk mensimulasikan kabus, habuk dan kesan atmosfera ruangan yang lain)
* kaustik [en] (untuk mensimulasikan pemfokusan cahaya oleh permukaan membias cahaya yang tidak rata, seperti riak cahaya yang kelihatan pada dasar kolam renang)
* penyerakan bawah permukaan [en] (untuk mensimulasikan pantulan cahaya di dalam isipadu objek pepejal seperti kulit manusia).

Proses perenderan adalah mahal dari segi pengiraan, memandangkan pelbagai proses fizikal yang kompleks sedang disimulasikan. Kuasa pemprosesan komputer telah meningkat dengan pesat selama bertahun-tahun, membolehkan tahap perenderan realistik meningkat secara beransur-ansur. Studio perfileman yang menghasilkan animasi janaan komputer biasanya menggunakan *render farm [en]* untuk menjana imej dalam tempoh masa yang dikehendaki. Namun begitu, penurunan kos perkakasan telah mewujudkan sepenuhnya keupayaan untuk mencipta sejumlah kecil animasi 3D pada sistem komputer rumah setelah mengambil kira kos penggunaan *render farm*. Hasil output perender sering digunakan sebagai hanya satu juzuk kecil dalam adegan gambar bergerak yang lengkap. Banyak lapisan bahan boleh dipaparkan secara berasingan dan disepadukan ke dalam tangkapan akhir menggunakan perisian penggubahan.

Model pantulan dan bayangan
---------------------------

Model **pantulan/serakan** (*reflection/scattering*code: en is deprecated ) dan **bayangan** (*shading*code: en is deprecated ) digunakan untuk mencirikan rupa sesuatu permukaan. Hal-hal ini walaupun kelihatan seperti masalah yang umum, tetapi semuanya dikaji dalam konteks perenderan sahaja. Penghasilan grafik komputer 3D moden amat bergantung pada model pantulan ringkas yang dipanggil model pantulan Phong [en] (jangan disamakan dengan pembayangan Phong [en]). Dalam pembiasan cahaya terdapat satu konsep penting yang dipanggil indeks biasan; dalam kebanyakan implementasi pengaturcaraan 3D, ia dikenali dengan istilah "*index of refraction*code: en is deprecated "(IOR).

Shading boleh dipecahkan kepada dua teknik berbeza yang selalu dikaji secara berasingan:

* **Pembayangan permukaan** - cara cahaya tersebar ke serata permukaan (selalunya digunakan dalam pemaparan garis imbas untuk perenderan 3D masa nyata dalam permainan video)
* **Pemantulan/penyerakan** - cara cahaya berinteraksi dengan permukaan *pada titik tertentu* (selalunya digunakan dalam hasil renderan terjejak sinar untuk perenderan 3D fotorealistik dan artistik bukan masa nyata dalam CGI baik imej pegun mahupun animasi tak interaktif)

### Algoritma pembayangan permukaan

Antara algoritma pembayangan permukaan yang digunakan secara meluas dalam bidang grafik komputer 3D termasuk:

* Pembayangan rata [en]: teknik yang membayangkan setiap poligon pada objek berdasarkan "normal" poligon serta kedudukan dan keamatan punca cahaya
* Pembayangan Gouraud [en]: dicipta oleh Henri Gouraud pada tahun 1971; teknik pembayangan bucu yang pantas dan peka sumber fast, digunakan untuk mensimulasikan permukaan berbayangan licin
* Pembayangan Phong [en]: dicipta oleh Bui Tuong Phong; used to simulate specular highlights and smooth shaded surfaces

### Pemantulan

 Teko Utah dengan pencahayaan hijau
**Pantulan** atau **serakan** merupakan hubungan antara pencahayaan yang masuk dan keluar pada titik tertentu. Serakan biasanya diperihalkan dari segi fungsi taburan serakan dwiarah [en] (BSDF).

### Pembayangan

Pembayangan adalah mengenai cara-cara pelbagai jenis serakan tersebar ke serata permukaan (iaitu kesesuaian fungsi serakan dengan bahagian yang dikena). Pemerihalan seperti ini biasanya dizahirkan dengan program yang dipanggil pembayang atau *shader*.  Satu contoh pembayangan yang mudah ialah pemetaan tekstur yang menggunakan imej untuk menentukan warna yang berbaur di setiap titik pada permukaan untuk menghasilkan perincian yang lebih jelas.

Contoh teknik-teknik pembayangan:

* Pemetaan bertompok: Dicipta oleh Jim Blinn, teknik 'pengusikan normal' yang digunakan untuk mensimulasikan permukaan berkedut.
* Pembayangan sel: Teknik yang digunakan untuk meniru rupa animasi lukisan tangan.

### *Transport*

*Transport* dalam konteks grafik 3D memperihalkan bagaimana pencahayaan dalam adegan beralih dari satu tempat ke satu tempat. Antara komponen utama pengalihan cahaya ialah keterlihatan objek.

### Unjuran

 Unjuran perspektif
Objek tiga dimensi yang berbayangan mesti diratakan supaya peranti paparan (seperti monitor) dapat memaparkannya pada satah dua dimensi sahaja; proses ini dipanggil unjuran 3D. Ini dilakukan menggunakan unjuran dan, untuk kebanyakan aplikasi, unjuran perspektif. Idea asas di sebalik unjuran perspektif ialah objek yang lebih jauh dibuat lebih kecil berbanding objek yang lebih dekat dengan mata.

Perspektif dihasilkan oleh program dengan mendarab pemalar dilasi (pelebaran) yang dinaikkan kepada kuasa negatif jarak dari pemerhati. Nilai pemalar dilasi satu bermakna tiada perspektif. Nilai pemalar pelebaran yang tinggi boleh menyebabkan kesan "mata ikan" di mana akan berlakunya herotan imej. Unjuran ortografik digunakan terutamanya dalam aplikasi CAD atau CAM di mana pemodelan saintifik memerlukan ukuran yang persis dan dimensi ketiga dikekalkan.

Enjin perenderan
----------------

Enjin perenderan boleh didatangkan secara kendiri atau disepadukan dengan perisian pemodelan 3D. Sesetengah enjin perenderan adalah serasi dengan berbilang perisian 3D, manakala sesetengah lagi serasi dengan satu perisian sahaja.

Nota dan rujukan
----------------

1. ↑  Badler, Norman I. "3D Object Modeling Lecture Series" (PDF). *University of North Carolina at Chapel Hill*. Diarkibkan (PDF) daripada yang asal pada 2013-03-19.
2. ↑  "Non-Photorealistic Rendering". *Duke University*. Dicapai pada 2018-07-23.
3. ↑  "The Science of 3D Rendering". *The Institute for Digital Archaeology* (dalam bahasa Inggeris). Dicapai pada 2019-01-19.
4. ↑  Christensen, Per H.; Jarosz, Wojciech. "The Path to Path-Traced Movies" (PDF). Diarkibkan (PDF) daripada yang asal pada 2019-06-26.
5. ↑  "How render farm pricing actually works". *GarageFarm* (dalam bahasa Inggeris). 2021-10-24. Dicapai pada 2021-10-24.
6. ↑  "Fundamentals of Rendering - Reflectance Functions" (PDF). *Ohio State University*. Diarkibkan (PDF) daripada yang asal pada 2017-06-11.
7. ↑  The word *shader* is sometimes also used for programs that describe local *geometric* variation.
8. ↑  "Bump Mapping". *web.cs.wpi.edu*. Dicapai pada 2018-07-23.