rancang bangun ray tracing pipeline pada …web.ee.its.ac.id/~fuad/papers/thesis.pdfreza fuad...

103
REZA FUAD RACHMADI 2208 205 740 DOSEN PEMBIMBING: Prof. Dr. Ir. Mauridhi Hery P., MEng. PROGRAM MAGISTER BIDANG KEAHLIAN JARINGAN CERDAS MULTIMEDIA JURUSAN TEKNIK ELEKTRO FAKULTAS TEKNOLOGI INDUSTRI INSTITUT TEKNOLOGI SEPULUH NOPEMBER SURABAYA 2010 RANCANG BANGUN RAY TRACING PIPELINE PADA PLATFORM CUDA TESIS TE2099

Upload: voliem

Post on 21-Jun-2019

216 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: RANCANG BANGUN RAY TRACING PIPELINE PADA …web.ee.its.ac.id/~fuad/papers/THESIS.pdfreza fuad rachmadi 2208 205 740 dosen pembimbing: prof. dr. ir. mauridhi hery p., meng. program

REZA FUAD RACHMADI

2208 205 740

DOSEN PEMBIMBING:Prof. Dr. Ir. Mauridhi Hery P., MEng.

PROGRAM MAGISTERBIDANG KEAHLIAN JARINGAN CERDAS MULTIMEDIAJURUSAN TEKNIK ELEKTROFAKULTAS TEKNOLOGI INDUSTRIINSTITUT TEKNOLOGI SEPULUH NOPEMBERSURABAYA2010

RANCANG BANGUN RAY TRACING PIPELINE PADA PLATFORM CUDATESIS TE2099

Page 2: RANCANG BANGUN RAY TRACING PIPELINE PADA …web.ee.its.ac.id/~fuad/papers/THESIS.pdfreza fuad rachmadi 2208 205 740 dosen pembimbing: prof. dr. ir. mauridhi hery p., meng. program
Page 3: RANCANG BANGUN RAY TRACING PIPELINE PADA …web.ee.its.ac.id/~fuad/papers/THESIS.pdfreza fuad rachmadi 2208 205 740 dosen pembimbing: prof. dr. ir. mauridhi hery p., meng. program

Tesis ini disusun untuk memenuhi salah satu syarat memperoleh gelar

Magister Teknik (MT)

di

Institut Teknologi Sepuluh Nopember

oleh:

REZA FUAD RACHMADI

NRP. 2208 205 740

Tanggal Ujian : 23 Januari 2010

Periode Wisuda : Maret 2010

Disetujui oleh :

1. Prof. Dr. Ir. Mauridhi Hery Purnomo, M.Eng.

NIP: 195809161986011001

(Pembimbing)

2. Mochamad Hariadi, ST., MSc., PhD.

NIP: 196912091997031002

(Penguji)

3. Dr. I Ketut Eddy Purnama, ST., MT.

NIP: 196907301995121001

(Penguji)

4. Ahmad Zaini, ST., MT.

NIP: 197504192002121003

(Penguji)

5. Diah Puspito Wulandari, ST., MSc.

NIP: 198012192005012001

(Penguji)

Direktur Program Pasca Sarjana,

Prof. Dr. Ir. Suparno, MSIENIP: 194807101976031002

Page 4: RANCANG BANGUN RAY TRACING PIPELINE PADA …web.ee.its.ac.id/~fuad/papers/THESIS.pdfreza fuad rachmadi 2208 205 740 dosen pembimbing: prof. dr. ir. mauridhi hery p., meng. program

[Halaman ini sengaja dikosongkan]

Page 5: RANCANG BANGUN RAY TRACING PIPELINE PADA …web.ee.its.ac.id/~fuad/papers/THESIS.pdfreza fuad rachmadi 2208 205 740 dosen pembimbing: prof. dr. ir. mauridhi hery p., meng. program

RANCANG BANGUN RAY TRACING PIPELINE PADAPLATFORM CUDA

Nama Mahasiswa : Reza Fuad RachmadiNRP : 2208205740Pembimbing : Prof. Dr. Ir. Mauridhi Hery Purnomo, M.Eng.Co-Pembimbing : -

ABSTRAK

Penggambaran dengan menggunakan algoritma ray tracing banyak digunakanuntuk pembuatan film-film animasi, desain arsitektur, dan simulasi teknik. Per-masalahan terbesar pada penggambaran dengan algoritma ray tracing adalah ke-butuhan daya komputasi yang sangat besar sehingga membutuhkan struktur datatambahan untuk menurunkan daya komputasi yang digunakan. Salah satu struk-tur data yang dapat mempercepat proses penggambaran pada algoritma ray tra-

cing adalah struktur uniform grid. Pada penelitian ini akan dilakukan perancangansistem penggambaran dengan menggunakan algoritma ray tracing pada platformCUDA dengan menggunakan struktur uniform grid sebagai strultur pemercepat.Platform CUDA merupakan standar parallel processing pada GPU dan dapat digu-nakan untuk berbagai keperluan komputasi. Hasil akhir penelitian berupa sistempenggambaran dengan menggunakan algoritma ray tracing yang dapat berjalan pa-da GPU dan lebih cepat 2 sampai 6 kali daripada sistem yang sama yang dijalankanpada CPU.

Kata Kunci: ray tracing, parallel processing, CUDA, uniform grid

i

Page 6: RANCANG BANGUN RAY TRACING PIPELINE PADA …web.ee.its.ac.id/~fuad/papers/THESIS.pdfreza fuad rachmadi 2208 205 740 dosen pembimbing: prof. dr. ir. mauridhi hery p., meng. program

[Halaman ini sengaja dikosongkan]

Page 7: RANCANG BANGUN RAY TRACING PIPELINE PADA …web.ee.its.ac.id/~fuad/papers/THESIS.pdfreza fuad rachmadi 2208 205 740 dosen pembimbing: prof. dr. ir. mauridhi hery p., meng. program

DESIGN AND IMPLEMENTATION RAY TRACINGPIPELINE ON CUDA PLATFORM

Student Name : Reza Fuad RachmadiNRP : 2208205740Supervisor : Prof. Dr. Ir. Mauridhi Hery Purnomo, M.Eng.Co-Supervisor : -

ABSTRACT

Rendering an image using ray tracing algorithm had been widely used for ani-mation movie, architecture design, and simulation. Huge computational resourcebecomes the biggest and most challenging problem on implementing ray tracingalgorithm, so it needs additional data structure to lower the resources needed. Oneof the data structure that mainly used to accelerate ray tracing algorithm is uniformgrid. This research will develop a rendering system using ray tracing algorithmon CUDA platform and using uniform grid as accelerating structure. CUDA is aparallel processing standart in GPU and can be use to compute anything (generalpurpose). The research result is a 3d rendering system using ray tracing algorithmthat run on GPU and run 2 to 6 time faster than other similiar system that run onCPU.

Keywords: ray tracing, parallel processing, CUDA, uniform grid

iii

Page 8: RANCANG BANGUN RAY TRACING PIPELINE PADA …web.ee.its.ac.id/~fuad/papers/THESIS.pdfreza fuad rachmadi 2208 205 740 dosen pembimbing: prof. dr. ir. mauridhi hery p., meng. program

[Halaman ini sengaja dikosongkan]

Page 9: RANCANG BANGUN RAY TRACING PIPELINE PADA …web.ee.its.ac.id/~fuad/papers/THESIS.pdfreza fuad rachmadi 2208 205 740 dosen pembimbing: prof. dr. ir. mauridhi hery p., meng. program

KATA PENGANTAR

Segala puji kahadirat Allah SWT karena hanya dengan rahmat-NYA-lah penyu-sunan tesis dengan judul “Rancang Bangun Ray Tracing Pipeline Pada PlatformCUDA” ini dapat berjalan dengan lancar dan tanpa halangan yang berarti. Tesis inidisusun guna memenuhi persyaratan untuk memperoleh gelar magister teknik padabidang konsentrasi Teknologi Permainan, bidang studi Jaringan Cerdas Multimedia,jurusan Teknik Elektro, Institut Teknologi Sepuluh Nopember Surabaya. Penentuanmetode dan perancangan tesis menggunakan pedoman teori dan literatur penunjangpada beberapa konferensi internasional sehingga diharapkan dapat melahirkan tesisyang baik dan dapat dipertanggungjawabkan.

Penulis memahami bahwa penyusunan tesisi tidak lepas dari bantuan pihak-pihak tertentu, oleh karena itu penulis mengucapkan banyak terima kasih kepadaseluruh pihak yang telah membantu proses penyuisunan tesisi ini, diantara:

1. Bapak Menteri Pendidikan Indonesia dan seluruh jajaran Depdiknas yangtelah memberikan kesempatan kepada penulis untuk menerima beasiswa BU(Beasiswa Unggulan) dan menempuh kuliah magister di jurusan Teknik Elek-tro ITS hingga lulus.

2. Orang tuaku tercinta yang telah dengan sabar membimbing dan membesarkanpenulis selama ini.

3. Anggit tercinta yang telah memberikan support dan semangat kepada penulisdalam proses penyusunan tesis ini.

4. Seluruh jajaran dosen lab B-201; pak Hariadi, pak Uki, pak Akok, pak Surya,dan pak Ketut; yang telah memberikan bimbingan dan pencerahan dalampenyusunan tesis ini.

5. Seluruh warga lab Common Computing yang telah memberikan semangatkebersamaan dan banyak berdiskusi sehingga menambah pengetahuan dariberbagai disiplin ilmu.

6. Warga lab B-201 yang telah meluangkan waktunya untuk kebutuhan maha-siswa S2 gamtech.

Penulis menyadari bahwa masih banyak kekurangan dalam penyusunan tesis ini.Saran dan kritik yang membangun dari para pembaca sangat penulis hargai agardapat dilakukan perbaikan di waktu yang akan datang, Selain itu, penulis meng-harapkan akan ada mahasiswa lain yang akan melanjutkan penelitian ini sehingga

v

Page 10: RANCANG BANGUN RAY TRACING PIPELINE PADA …web.ee.its.ac.id/~fuad/papers/THESIS.pdfreza fuad rachmadi 2208 205 740 dosen pembimbing: prof. dr. ir. mauridhi hery p., meng. program

didapatkan hasil yang lebih bagus lagi. Akhir kata, semoga tesis ini dapat menam-bah pemahaman dan pengetahuan pembaca tentang komputer grafik, khususnya raytracing.

Penulis

vi

Page 11: RANCANG BANGUN RAY TRACING PIPELINE PADA …web.ee.its.ac.id/~fuad/papers/THESIS.pdfreza fuad rachmadi 2208 205 740 dosen pembimbing: prof. dr. ir. mauridhi hery p., meng. program

PENGHARGAAN

Model bunny, happy budha, dragon, dan xyzrgb_dragon adalah milik dari stan-

ford university (stanford 3d scanning repository). Model hand, horse, dan blade

adalah milik dari georgia institute of technology (large geometric model reposi-

tory). Model wooddoll dan fairy forest adalah milik dari SCI Institute (the utah

3d animation repository). Model conference adalah milik dari Anat Grynberg danGreg Ward. Model sponza atrium adalah milik dari Marko Dabrovic.

vii

Page 12: RANCANG BANGUN RAY TRACING PIPELINE PADA …web.ee.its.ac.id/~fuad/papers/THESIS.pdfreza fuad rachmadi 2208 205 740 dosen pembimbing: prof. dr. ir. mauridhi hery p., meng. program

[Halaman ini sengaja dikosongkan]

Page 13: RANCANG BANGUN RAY TRACING PIPELINE PADA …web.ee.its.ac.id/~fuad/papers/THESIS.pdfreza fuad rachmadi 2208 205 740 dosen pembimbing: prof. dr. ir. mauridhi hery p., meng. program

DAFTAR ISI

ABSTRAK i

KATA PENGANTAR v

PENGHARGAAN vii

1 PENDAHULUAN 11.1 Latar Belakang . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.2 Perumusan Masalah . . . . . . . . . . . . . . . . . . . . . . . . . . 11.3 Tujuan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21.4 Batasan Masalah . . . . . . . . . . . . . . . . . . . . . . . . . . . 21.5 Relevansi Penelitian . . . . . . . . . . . . . . . . . . . . . . . . . . 21.6 Metodologi Penelitian . . . . . . . . . . . . . . . . . . . . . . . . . 31.7 Sistematika Penulisan . . . . . . . . . . . . . . . . . . . . . . . . . 4

2 TEORI PENUNJANG 72.1 Metode Penggambaran Tiga Dimensi . . . . . . . . . . . . . . . . . 7

2.1.1 Rasterization . . . . . . . . . . . . . . . . . . . . . . . . . 72.1.2 Physically Based Rendering Technique . . . . . . . . . . . 11

2.2 Shading . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152.2.1 Diffuse . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152.2.2 Ambient . . . . . . . . . . . . . . . . . . . . . . . . . . . 162.2.3 Specular . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

2.3 Persamaan Parametrik Ray . . . . . . . . . . . . . . . . . . . . . . 182.3.1 Perpotongan Ray-AABB . . . . . . . . . . . . . . . . . . . 182.3.2 Perpotongan Ray-Segitiga . . . . . . . . . . . . . . . . . . 19

2.4 Ray Tracing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212.4.1 Jenis Ray Tracing . . . . . . . . . . . . . . . . . . . . . . . 222.4.2 Tahapan Proses Pada Ray Tracing . . . . . . . . . . . . . . 24

2.5 Struktur Uniform Grid . . . . . . . . . . . . . . . . . . . . . . . . 292.5.1 Resolusi Uniform Grid . . . . . . . . . . . . . . . . . . . . 292.5.2 Konstruksi Uniform Grid . . . . . . . . . . . . . . . . . . . 302.5.3 Uniform Grid Traversal . . . . . . . . . . . . . . . . . . . 31

2.6 GPGPU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31

ix

Page 14: RANCANG BANGUN RAY TRACING PIPELINE PADA …web.ee.its.ac.id/~fuad/papers/THESIS.pdfreza fuad rachmadi 2208 205 740 dosen pembimbing: prof. dr. ir. mauridhi hery p., meng. program

2.6.1 NVIDIA CUDA . . . . . . . . . . . . . . . . . . . . . . . 312.6.2 SIMT Programming . . . . . . . . . . . . . . . . . . . . . 32

2.7 Parallel Random Access Machine . . . . . . . . . . . . . . . . . . 342.7.1 Dasar Desain Algoritma Pada PRAM . . . . . . . . . . . . 352.7.2 Parallel Prefix Sum . . . . . . . . . . . . . . . . . . . . . . 36

3 RANCANGAN SISTEM 413.1 Rancangan Struktur Data . . . . . . . . . . . . . . . . . . . . . . . 413.2 Konstruksi Struktur Uniform Grid . . . . . . . . . . . . . . . . . . 44

3.2.1 Inisialisasi . . . . . . . . . . . . . . . . . . . . . . . . . . 443.2.2 Overlapped Polygon . . . . . . . . . . . . . . . . . . . . . 443.2.3 Paralel Prefix Sum . . . . . . . . . . . . . . . . . . . . . . 453.2.4 Perhitungan Perpotongan Cell . . . . . . . . . . . . . . . . 453.2.5 Paralel Sort . . . . . . . . . . . . . . . . . . . . . . . . . . 453.2.6 Scanning Data . . . . . . . . . . . . . . . . . . . . . . . . 463.2.7 Flowchart Konstruksi Struktur Uniform Grid . . . . . . . . 46

3.3 Ray Tracing Traversal . . . . . . . . . . . . . . . . . . . . . . . . 483.3.1 Inisialisasi . . . . . . . . . . . . . . . . . . . . . . . . . . 483.3.2 Perpotongan Ray-AABB Scene . . . . . . . . . . . . . . . 503.3.3 Traversal . . . . . . . . . . . . . . . . . . . . . . . . . . . 50

3.4 Shadow Ray . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51

4 PENGUJIAN SISTEM 534.1 Evaluasi Kinerja Pembuatan Struktur Uniform Grid . . . . . . . . . 53

4.1.1 Spesifikasi Pengujian . . . . . . . . . . . . . . . . . . . . . 534.1.2 Hasil Pengujian . . . . . . . . . . . . . . . . . . . . . . . . 544.1.3 Diskusi dan Evaluasi . . . . . . . . . . . . . . . . . . . . . 54

4.2 Evaluasi Kinerja Ray Tracing Traversal . . . . . . . . . . . . . . . 584.2.1 Spesifikasi Pengujian . . . . . . . . . . . . . . . . . . . . . 584.2.2 Hasil Pengujian . . . . . . . . . . . . . . . . . . . . . . . 584.2.3 Diskusi dan Evaluasi . . . . . . . . . . . . . . . . . . . . . 60

4.3 Optimasi Sistem . . . . . . . . . . . . . . . . . . . . . . . . . . . . 624.3.1 Hasil Pengujian . . . . . . . . . . . . . . . . . . . . . . . . 644.3.2 Diskusi dan Evaluasi . . . . . . . . . . . . . . . . . . . . . 64

5 PENUTUP 695.1 Kesimpulan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 695.2 Pengembangan Lebih Lanjut . . . . . . . . . . . . . . . . . . . . . 69

x

Page 15: RANCANG BANGUN RAY TRACING PIPELINE PADA …web.ee.its.ac.id/~fuad/papers/THESIS.pdfreza fuad rachmadi 2208 205 740 dosen pembimbing: prof. dr. ir. mauridhi hery p., meng. program

DAFTAR REFERENSI 71

LAMPIRAN HASIL PENGGAMBARAN 75

xi

Page 16: RANCANG BANGUN RAY TRACING PIPELINE PADA …web.ee.its.ac.id/~fuad/papers/THESIS.pdfreza fuad rachmadi 2208 205 740 dosen pembimbing: prof. dr. ir. mauridhi hery p., meng. program

[Halaman ini sengaja dikosongkan]

Page 17: RANCANG BANGUN RAY TRACING PIPELINE PADA …web.ee.its.ac.id/~fuad/papers/THESIS.pdfreza fuad rachmadi 2208 205 740 dosen pembimbing: prof. dr. ir. mauridhi hery p., meng. program

DAFTAR GAMBAR

2.1 Penggambaran dengan rasterization . . . . . . . . . . . . . . . . . 8

2.2 Tipe proyeksi pada rasterization 1 . . . . . . . . . . . . . . . . . . 9

2.3 Clipping dengan metode sutherland-hodgeman 2 . . . . . . . . . . 10

2.4 Klasifikasi pada konstruksi photon map [Jen96] . . . . . . . . . . . 11

2.5 Ilustrasi BRDF secara geometri3 . . . . . . . . . . . . . . . . . . . 12

2.6 Persamaan penggambaran secara goemetri sederhana 4 . . . . . . . 13

2.7 Perbandingan radiosity dengan penggambaran dengan direct illu-

mination 5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

2.8 Pendekatan diffuse dan specular [SKSS08] . . . . . . . . . . . . . 15

2.9 Hasil penggambaran pendekatan cahaya diffuse6 . . . . . . . . . . . 16

2.10 Penggambaran dengan cahaya diffuse dan ambient7 . . . . . . . . . 17

2.11 Penggambaran dengan cahaya diffuse, ambient, dan specular7 . . . 17

2.12 Perpotongan Ray-AABB dengan metode slabs . . . . . . . . . . . . 19

2.13 Koordinat barycentric pada segitiga . . . . . . . . . . . . . . . . . 21

2.14 Proses perhitungan perpotongan ray-segitiga secara geometri [MT97] 22

2.15 Skema ray tracing . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

2.16 Forward ray tracing . . . . . . . . . . . . . . . . . . . . . . . . . . 24

2.17 Super sampling pada backward ray tracing8 . . . . . . . . . . . . . 25

2.18 Shadow ray . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

2.19 Refleksi dan refraksi ray . . . . . . . . . . . . . . . . . . . . . . . 28

2.20 Struktur uniform grid . . . . . . . . . . . . . . . . . . . . . . . . . 29

2.21 Uniform grid traversal . . . . . . . . . . . . . . . . . . . . . . . . 30

2.22 Operasi floating point antara CPU dan GPU [Nvi09a] . . . . . . . . 33

2.23 Thread, block, dan grid [Nvi09a] . . . . . . . . . . . . . . . . . . . 33

2.24 Hirarki memori pada CUDA [Nvi09a] . . . . . . . . . . . . . . . . 34

2.25 Contoh aliran data pada PRAM balanced trees [CP09] . . . . . . . 37

2.26 Tahapan up-sweep pada algoritma scan [HSO07] . . . . . . . . . . 39

2.27 Tahapan down-sweep pada algoritma scan [HSO07] . . . . . . . . . 39

3.1 Flowchart sistem secara sederhana . . . . . . . . . . . . . . . . . . 42

3.2 Rancangan struktur data . . . . . . . . . . . . . . . . . . . . . . . 43

3.3 Flowchart konstruksi struktur uniform grid . . . . . . . . . . . . . 47

3.4 Gram-Schmidt Orthonormalization . . . . . . . . . . . . . . . . . . 48

xiii

Page 18: RANCANG BANGUN RAY TRACING PIPELINE PADA …web.ee.its.ac.id/~fuad/papers/THESIS.pdfreza fuad rachmadi 2208 205 740 dosen pembimbing: prof. dr. ir. mauridhi hery p., meng. program

3.5 Perhitungan vektor arah ray . . . . . . . . . . . . . . . . . . . . . . 493.6 Ray tracing dengan shadow ray9 . . . . . . . . . . . . . . . . . . . 51

4.1 Visualisasi hasil konstruksi struktur uniform grid . . . . . . . . . . 554.2 Perbandingan jumlah polygon dengan besar triangle offset . . . . . 574.3 Beberapa hasil penggambaran . . . . . . . . . . . . . . . . . . . . 594.4 Perbandingan waktu penggambaran . . . . . . . . . . . . . . . . . 604.5 Persentase waktu yang digunakan pada GPU . . . . . . . . . . . . . 634.6 Grafik penggambaran dengan thread per block yang bervariasi . . . 654.7 Model eksekusi CUDA [Nvi09a] . . . . . . . . . . . . . . . . . . . 67

xiv

Page 19: RANCANG BANGUN RAY TRACING PIPELINE PADA …web.ee.its.ac.id/~fuad/papers/THESIS.pdfreza fuad rachmadi 2208 205 740 dosen pembimbing: prof. dr. ir. mauridhi hery p., meng. program

DAFTAR TABEL

4.1 Hasil Pengujian Pembuatan Struktur Uniform Grid . . . . . . . . . 554.2 Struktur Triangle Offset . . . . . . . . . . . . . . . . . . . . . . . . 564.3 Besar data paralel yang ditangani setiap tahapan . . . . . . . . . . . 564.4 Perbandingan waktu konstruksi dengan sistem lain . . . . . . . . . 564.5 Hasil pengujian ray tracing traversal . . . . . . . . . . . . . . . . . 614.6 Perbandingan besar triangle offset dengan waktu penggambaran . . 614.7 Perbandingan dengan sistem lainnya (dalam fps) . . . . . . . . . . . 614.8 Hasil pengujian dengan jumlah thread per block bervariasi . . . . . 65

xv

Page 20: RANCANG BANGUN RAY TRACING PIPELINE PADA …web.ee.its.ac.id/~fuad/papers/THESIS.pdfreza fuad rachmadi 2208 205 740 dosen pembimbing: prof. dr. ir. mauridhi hery p., meng. program

[Halaman ini sengaja dikosongkan]

Page 21: RANCANG BANGUN RAY TRACING PIPELINE PADA …web.ee.its.ac.id/~fuad/papers/THESIS.pdfreza fuad rachmadi 2208 205 740 dosen pembimbing: prof. dr. ir. mauridhi hery p., meng. program

DAFTAR ALGORITMA

2.1 Metode Slabs [KK86] . . . . . . . . . . . . . . . . . . . . . . . . . 202.2 Algoritma ray tracing [Hav00] . . . . . . . . . . . . . . . . . . . . 262.3 Voxel traversal, diambil dari [AW87] . . . . . . . . . . . . . . . . . 322.4 Algoritma paralel sederhana untuk sum scan [SHG08] . . . . . . . 372.5 Prefix sum dengan double buffer [SHG08] . . . . . . . . . . . . . . 382.6 Up-sweep pseudocode [HSO07] . . . . . . . . . . . . . . . . . . . 392.7 Down-sweep pseudocode [HSO07] . . . . . . . . . . . . . . . . . . 393.1 Pemetaan AABB ke koordinat uniform grid . . . . . . . . . . . . . 443.2 Perhitungan perpotongan cell . . . . . . . . . . . . . . . . . . . . . 453.3 Scanning data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 463.4 Algoritma perhitungan vektor arah ray . . . . . . . . . . . . . . . . 50

xvii

Page 22: RANCANG BANGUN RAY TRACING PIPELINE PADA …web.ee.its.ac.id/~fuad/papers/THESIS.pdfreza fuad rachmadi 2208 205 740 dosen pembimbing: prof. dr. ir. mauridhi hery p., meng. program

[Halaman ini sengaja dikosongkan]

Page 23: RANCANG BANGUN RAY TRACING PIPELINE PADA …web.ee.its.ac.id/~fuad/papers/THESIS.pdfreza fuad rachmadi 2208 205 740 dosen pembimbing: prof. dr. ir. mauridhi hery p., meng. program

BAB I

PENDAHULUAN

Teknik penggambaran tiga dimensi telah menjadi ilmu yang sangat populer ser-ta banyak diteliti oleh berbagai kalangan, instansi pendidikan maupun perusahaan.Hal terebut dikarenakan penggunaan teknologi penggambaran tiga dimensi diper-lukan di hampir seluruh bidang-bidang keilmuan seperti arsitektur, grafik desain,CAD, film, game, dan simulasi teknik. Rasterization dan ray tracing merupakandua buah jenis penggambaran tiga dimensi yang banyak digunakan untuk membu-at gambar tiga dimensi. Teknik rasterization digunakan untuk penggambaran tigadimensi yang membutuhkan waktu penggambaran yang minimal atau biasa disebutdengan penggambaran secara real-time sedangkan teknik ray tracing digunakan un-tuk penggambaran yang membutuhkan kualitas yang sama dengan foto (foto realis-tik) dan banyak digunakan untuk pembuatan film tiga dimensi serta aplikasi CADdan arsitektur.

1.1 Latar Belakang

Grafik tiga dimensi adalah bidang penelitian yang akan terus berkembang seir-ing dengan berkembangnya perangkat keras. Para peneliti maupun praktisi industrimenggunakan grafik tiga dimensi untuk menvisualisasikan data yang ada sehinggalebih mudah untuk dianalisa. Selain untuk visualisasi data, grafik tiga dimensi jugabanyak digunakan untuk efek film, simulasi, dan game.

Ray tracing merupakan metode penggambaran tiga dimensi yang banyak digu-nakan untuk menvisualisasikan suatu bentuk atau objek sehingga mende-kati kual-itas foto (foto realistik). Ray tracing merupakan metode penggambaran yang mu-dah dipahami secara konseptual tetapi pada implementasinya terdapat kelemahan.Salah satu kelemahan pada ray tracing adalah daya komputasi yang dibutuhkan un-tuk perhitungan sangat besar sehingga diperlukan metode-metode tambahan untukmempercepat proses perhitungan.

1.2 Perumusan Masalah

Permasalahan utama dalam melakukan penggambaran dengan menggunakanmetode ray tracing adalah daya komputasi yang dibutuhkan sehingga dibutuhkantambahan metode tertentu untuk dapat memperkecil daya komputasi yang dibu-

1

Page 24: RANCANG BANGUN RAY TRACING PIPELINE PADA …web.ee.its.ac.id/~fuad/papers/THESIS.pdfreza fuad rachmadi 2208 205 740 dosen pembimbing: prof. dr. ir. mauridhi hery p., meng. program

tuhkan. Dilain segi, perkembangan perangkat keras komputer sangat pesat terutamapada perangkat GPU (Graphics Processing Unit). Pada tahun 2008, NVIDIA men-geluarkan standar CUDA (Compute Unified Device Architecture) yang digunakanuntuk melakukan perhitungan floting-point pada perangkat GPU sehingga dapat di-gunakan untuk berbagai keperluan komputasi.

Pada penelitian ini, permasalahan yang diangkat adalah bagaimana menurunk-an daya komputasi yang dibutuhkan oleh algoritma ray tracing dan bagaimana re-alisasi program penggambaran dengan menggunakan algoritma ray tracing padalingkungan proses paralel dengan standar CUDA. Penyelesain kedua permasalahantersebut menghasilkan eksekusi algoritma ray tracing yang cepat dan dapat berjalanpada interaktif frame rate dengan shading sederhana.

1.3 Tujuan

Penelitian ini bertujuan untuk merancang ray tracing pipeline pada platform

NVIDIA CUDA. Ray tracing pipeline yang dihasilkan adalah framework dasar un-tuk penggambaran tiga dimensi sehingga diharapkan dapat digunakan untuk meng-hasilkan penelitian-penelitian lanjutan untuk membuat efek tambahan yang mem-buat hasil penggambaran menjadi sama dengan kualitas foto, dari segi pencahayaansampai efek lensa pada kamera.

1.4 Batasan Masalah

Batasan masalah atau ruang lingkup yang digunakan selama penelitian berlang-sung didefinisikan sebagai berikut.

1. Penelitian ini merancang dan mengimplementasikan framework dasar untukmelakukan penggambaran tiga dimensi dengan mengunakan metode ray trac-

ing pada platform CUDA.

2. Media komputasi yang digunakan adalah platform NVIDIA CUDA.

3. Model tiga dimensi yang digunakan masih sederhana dan tidak menggunakanmaterial apapun.

4. Metode shading yang digunakan adalah diffuse dan ambient.

1.5 Relevansi Penelitian

Relevansi penelitian adalah industri-industri yang bergerak dibidang kreatifseperti pembuatan film tiga dimensi, arsitektur, dan simulasi CAD. Penelitian inidiharapkan dapat menumbuhkan sistem penggambaran tiga dimensi versi Indonesia

2

Page 25: RANCANG BANGUN RAY TRACING PIPELINE PADA …web.ee.its.ac.id/~fuad/papers/THESIS.pdfreza fuad rachmadi 2208 205 740 dosen pembimbing: prof. dr. ir. mauridhi hery p., meng. program

dimana tidak kalah cepat dengan sistem penggambaran yang dimiliki oleh studio-studio terkenal seperti Pixar, Dimension, dan Lucas Arts.

1.6 Metodologi Penelitian

Metodologi penelitian pada penelitian ini dapat dibagi menjadi beberapa bagian,yaitu studi literatur, pemilihan perangkat keras, implementasi sistem, pemilihanmodel tiga dimensi yang dipakai untuk pengujian, dan pengujian.

Studi Literatur

Studi literatur digunakan untuk memahami teori-teori yang digunakan dalampenelitian ini. Literatur yang digunakan banyak berupa makalah-makalah yangditerbitkan pada beberapa seminar internasional yang berhubungan dengan bidangkomputer grafik maupun bidang parallel processing. Penulis mengambil 2 makalahsebagai referensi utama dari seluruh referensi yang telah didapat, yaitu makalah La-gae [LD08] dan makalah Kolojanov [KS09]. Kedua makalah tersebut melakukanpenelitian yang mirip dengan penelitian ini sehingga dapat dibandingkan kinerjaantara sistem yang telah dirancang dengan sistem yang dijabarkan pada makalahtersebut.

Selain studi literatur tentang komputer grafik dan parallel processing, literaturterakhir yang perlu dipelajari adalah user manual dan programming guide dari stan-dar CUDA yang diterbitkan oleh NVIDIA. Pada makalah tersebut dijelaskan secaragamblang tentang teknik-teknik pemrograman dan batasannya untuk membuat pro-gram dengan menggunakan standar CUDA.

Pemilihan Perangkat Keras

Pemilihan perangkat keras menjadi pertimbangan mutlak karena menyangkutperformansi dari sistem. Perangkat keras yang bagus akan meningkat performasistem sehingga didapatkan hasil pengujian yang optimal. Pertimbangan utamapemilihan perangkat keras yang digunakan adalah versi dari standar CUDA yangdidukung oleh perangkat keras tersebut. Pada penelitian ini, digunakan perangkatkeras GPU NVDIA GTX 260 dengan memori 896 MB. Besar memori yang terbatasmenyebabkan beberapa model atau scene yang mempunyai banyak polygon tidakdapat digambar karena keterbatasan memori.

3

Page 26: RANCANG BANGUN RAY TRACING PIPELINE PADA …web.ee.its.ac.id/~fuad/papers/THESIS.pdfreza fuad rachmadi 2208 205 740 dosen pembimbing: prof. dr. ir. mauridhi hery p., meng. program

Implementasi Sistem

Implementasi sistem dilakukan dengan menggunakan beberapa pustaka lain,yaitu CUDPP, standar C++0.x (boost library), dan pustaka AntTweakBar. CUDPPdigunakan untuk melakukan pengurutan dan prefix sum secara paralel pada standarCUDA. CUDPP sendiri merupakan singkatan dari CUDA Data Parallel Primitive.Boost library pada program digunakan untuk pengolahan parameter masukan dariuser. Pustaka terakhir yaitu AntTweakBar digunakan untuk interaksi antara user

dengan program pada saat program berjalan.

Pemilihan Model Tiga Dimensi Yang Digunakan

Pemilihan model tiga dimensi yang digunakan berhubungan dengan pengujianyang dilakukan pada sistem. Model tiga dimensi yang diujikan diambil dari be-berapa repositori model tiga dimensi yang terkenal, yaitu stanford 3d repository,georgia university large goemetric repository, dan utah 3d animation repository.Beberapa model lain, yaitu conference room dan sponza atrium, digunakan untukmembandingkan antara sistem yang dirancang dengan sistem yang dijabarkan padamakalah lain yang menjadi referensi utama penulis.

Pengujian

Pengujian pada sistem yang dirancang dilakukan pada beberapa model tiga di-mensi yang telah dipilih secara selektif agar kinerja sistem dapat dibandingkan den-gan sistem lain yang dijabarkan pada beberapa makalah. Pengujian dibagi menjaditiga yaitu pengujian waktu eksekusi untuk pembuatan struktur uniform grid, pengu-jian waktu eksekusi untuk ray tracing traversal, dan pengujian pengaruh konfigurasithread per block pada sistem. Dua pengujian pertama merupakan pengujian yangdilakukan tanpa melakukan perubahan pada konfigurasi eksekusi dari sistem sedan-gkan pengujian terakhir dilakukan dengan melakukan perubahan terhadap konfig-urasi sistem serta pengaruhnya terhadap hasil penggambaran.

1.7 Sistematika Penulisan

Penulisan buku tesis ini terbagi menjadi 5 bab yaitu pendahuluan, teori pe-nunjang, perancangan sistem, pengujian sistem, serta penutup. Penjelasan singkattentang masing-masing bab adalah sebagai berikut.

4

Page 27: RANCANG BANGUN RAY TRACING PIPELINE PADA …web.ee.its.ac.id/~fuad/papers/THESIS.pdfreza fuad rachmadi 2208 205 740 dosen pembimbing: prof. dr. ir. mauridhi hery p., meng. program

BAB 1 PENDAHULUAN.

Pada bab 1 diuraikan permasalahan yang menjadi landasan untuk melakukanpenelitian serta tujuan dan batasan dari penlitian yang dilakukan. Selain itu, dije-laskan pula metodologi penelitian yang digunakan serta sistematik penulisan lapo-ran ini.

BAB 2 TEORI PENUNJANG.

Bab 2 berisi tentang teori-teori dasar yang digunakan sebagai landasan dalammelakukan penelitian seperti ray traciug, GPGPU, PRAM, dan persamaan parame-trik ray. Teori tentang parametrik ray digunakan antara lain, deteksi perpotonganray dengan AABB (Axis Align Bounding Box) dan deteksi perpotongan ray dengansegitiga. Teori tentang PRAM (Parallel Random Access Machine) merupakan teoritentang perancangan suatu algoritma paralel dengan metode-metode tertentu.

BAB 3 RANCANGAN SISTEM.

Pada bab ini akan dibahas perancangan dari sistem penggambaran dengan meng-gunakan metode ray tracing serta teori-teori tambahan yang digunakan untuk meng-implementasikannya. Rancangan sistem dibagi menjadi dua yaitu rancangan sistemuntuk pembentukan struktur uniform grid dan ray tracing traversal.

BAB 4 PENGUJIAN SISTEM.

Pengujian sistem dilakukan untuk melihat kehandalan serta evaluasi kinerjadari sistem yang telah dirancang dan diimplementasikan. Selain itu, pada pengujianjuga dibandingkan antara sistem yang dirancang dengan sistem lain yang dijabarkanpada beberapa makalah.

BAB 5 PENUTUP.

Bab terakhir, dirumuskan beberapa kesimpulan yang didapatkan setelah mela-kukan pengujian pada sistem serta penelitian lanjutan yang disarankan untuk di-lakukan.

5

Page 28: RANCANG BANGUN RAY TRACING PIPELINE PADA …web.ee.its.ac.id/~fuad/papers/THESIS.pdfreza fuad rachmadi 2208 205 740 dosen pembimbing: prof. dr. ir. mauridhi hery p., meng. program

[Halaman ini sengaja dikosongkan]

Page 29: RANCANG BANGUN RAY TRACING PIPELINE PADA …web.ee.its.ac.id/~fuad/papers/THESIS.pdfreza fuad rachmadi 2208 205 740 dosen pembimbing: prof. dr. ir. mauridhi hery p., meng. program

BAB II

TEORI PENUNJANG

Penggambaran grafik tiga dimensi telah menjadi tulang punggung untuk be-berapa bidang seperti film, arsitektur, grafik desain, dan game. Penggambarangrafik tiga dimensi terdiri dari dua jenis yaitu rasterization dan PBRT (Physically

Based Rendering Technique). Teknik rasterization biasa digunakan pada game danaplikasi yang bersifat real-time sedangkan PBRT lebih digunakan untuk aplikasiyang membutuhkan ketepatan penggambaran sesuai dengan sifat-sifat cahaya yangada di alam. Salah satu contoh aplikasi yang menggunakan PBRT adalah [JC07]yang menggunakan metode ray tracing untuk penggambaran film “Cars”. TeknikPBRT dibagi menjadi beberapa jenis, diantaranya adalah ray tracing, radiosity, danphoton-mapping. Pada bab ini akan dijelaskan semua teori tentang penggambarantiga dimensi, persamaan parametrik ray, ray tracing, GPGPU (General Purpose

GPU), dan PRAM (Parallel Random Access Machine) yang digunakan sebagaimedia komputasi pada lingkungan paralel yang digunakan untuk perhitungan ray

tracing.

2.1 Metode Penggambaran Tiga Dimensi

Seperti yang telah disinggung pada tulisan sebelumnya, metode penggambarantiga dimensi dibagi menjadi dua jenis yaitu rasterization dan PBRT. Implementasimetode rasterization yang terkenal adalah OpenGL, Direct3D, dan Reyes. OpenGLdan Direct3D merupakan standar yang digunakan untuk pembuatan aplikasi-aplikasiyang berjalan secara real-time, sedangkan penggambaran dengan standar Reyes

banyak diimplementasikan pada program-program permodelan tiga dimensi sepertiMental Ray, Pixar Render Man, dan NVIDIA Gelato. Implementasi PBRT banyakdigunakan untuk pembuatan spesial efek seperti model transparant, subscattering,dan refleksi. PBRT dibagi menjadi beberapa jenis metode, antara lain ray tracing,photon mapping, dan radiosity.

2.1.1 Rasterization

Metode rasterization merupakan metode penggambaran dengan mengasum-sikan suatu objek merupakan vektor grafik. Proses-proses yang terjadi pada ras-

terization adalah melakukan transformasi objek dalam dunia tiga dimensi, proyeksi

7

Page 30: RANCANG BANGUN RAY TRACING PIPELINE PADA …web.ee.its.ac.id/~fuad/papers/THESIS.pdfreza fuad rachmadi 2208 205 740 dosen pembimbing: prof. dr. ir. mauridhi hery p., meng. program

Gambar 2.1: Penggambaran dengan rasterization

objek dari koordinat tiga dimensi ke koordinat dua dimensi, clipping, dan yang ter-akhir adalah melakukan scan conversion untuk mengisi objek sesuai dengan hasilproyeksi dua dimensi yang telah dilakukan dan warna yang telah ditentukan. Gam-bar 2.1 merupakan contoh penggambaran dengan menggunakan teknik rasterization

pada sebuah segitiga.

Transformasi

Proses transformasi terbagi menjadi beberapa bagian yaitu transformasi lokal,transformasi global, transformasi camera, dan proyeksi. Transformasi lokal meru-pakan transformasi yang dilakukan pada suatu objek dengan orientasi pada pusatlokal koordinat dari objek. Transformasi global merupakan transformasi yang di-lakukan objek dengan orientasi pada titik pusat (0,0) dari scene. Proses transformasiobjek yang dapat dilakukan adalah translasi, rotasi, dan dilatasi. Transformasi kam-era merupakan transformasi yang dilakukan untuk membentuk suatu kamera virtual

sehingga penglihat seperti melihat pada suatu region tertentu saja. Proyeksi meru-pakan transformasi spesial yang digunakan untuk memproyeksikan suatu benda darisistem koordinat satu ke sistem koordinat yang lain. Pada metode rasterzation,proyeksi digunakan untuk melakukan proyeksi dari sistem koordinat tiga dimensike sistem koordinat dua dimensi. Banyak sekali teori-teori tentang proyeksi, tetapimetode proyeksi yang paling banyak digunakan adalah metode orthogonal dan per-

spective. Ilustrasi dari kedua tipe proyeksi tersebut dapat dilihat pada gambar 2.2.

8

Page 31: RANCANG BANGUN RAY TRACING PIPELINE PADA …web.ee.its.ac.id/~fuad/papers/THESIS.pdfreza fuad rachmadi 2208 205 740 dosen pembimbing: prof. dr. ir. mauridhi hery p., meng. program

Gambar 2.2: Tipe proyeksi pada rasterization 1

Clipping

Setelah semua objek diproyeksikan ke dalam koordinat dua dimensi, maka adasebagai dari objek tersebut yang berada diluar bidang lihat dari window atau areadari layar dimana setiap titik akan ditulis. Clipping merupakan proses pemotonganobjek yang berada diluar bidang lihat. Metode clipping yang paling banyak digu-nakan adalah metode sutherland-hodgeman. Proses clipping dengan menggunakanmetode sutherland-hodgeman dapat dilihat pada gambar 2.3.

1Diambil dari http://goanna.cs.rmit.edu.au/~gl/teaching/Interactive3D/2009/

lecture3.html

9

Page 32: RANCANG BANGUN RAY TRACING PIPELINE PADA …web.ee.its.ac.id/~fuad/papers/THESIS.pdfreza fuad rachmadi 2208 205 740 dosen pembimbing: prof. dr. ir. mauridhi hery p., meng. program

Gambar 2.3: Clipping dengan metode sutherland-hodgeman 2

Scan Conversion

Scan Conversion merupakan proses pengisian objek yang telah diproyeksikandan telah melalui proses clipping sesuai dengan warna yang diinginkan. Permasala-han yang timbul pada proses scan conversion adalah mengetahui apakah suatu titikyang akan dituliskan mempunyai nilai kedalaman yang lebih kecil daripada titikyang telah dituliskan. Metode yang banyak digunakan untuk mengatasi permasala-han tersebut adalah menggunakan algoritma z-buffer dimana setiap titik yang ditulisdilayar akan disimpan kedalamannya pada suatu buffer yang disebut dengan z-buffer

dan jika ada titik yang sama yang akan ditulis dilayar maka perlu dibandingkankedalamannya dengan kedalaman yang telah disimpan pada z-buffer.

2Diambil dari http://en.wikipedia.org/wiki/Sutherland-Hodgeman

10

Page 33: RANCANG BANGUN RAY TRACING PIPELINE PADA …web.ee.its.ac.id/~fuad/papers/THESIS.pdfreza fuad rachmadi 2208 205 740 dosen pembimbing: prof. dr. ir. mauridhi hery p., meng. program

Gambar 2.4: Klasifikasi pada konstruksi photon map [Jen96]

2.1.2 Physically Based Rendering Technique

Perbedaan mendasar antara PBRT dan rasterization adalah penurunan dan asum-si yang digunakan. Pada rasterization proses penggambaran dilakukan setelah selu-ruh objek dipeta dari koordinat tiga dimensi ke koordinat dua dimensi. Hal tersebutsangat berbeda dengan PBRT, dimana pada PBRT dilakukan perancangan algoritmasesuai dengan fenomena yang terjadi pada keadaan nyata. Metode-metode PBRTyang ada sekarang merupakan simulasi sederhana tentang bagaimana suatu partikelcahaya melakukan perjalanan dari sumber cahaya menuju mata penglihat. Beber-apa metode PBRT yang banyak digunakan adalah ray tracing, photon mapping,dan radiosity. Ray tracing akan dibahas pada sub bab tersendiri, sedangkan photon

mapping dan radiosity akan dibahas secara sederhana pada sub bab ini.

Photon Mapping

Photon mapping merupakan metode penggambaran PBRT yang cukup barudan dikembangkan oleh Henrik Wann Jensen dari University of California San

Diego. Photon mapping mulai diperkenal pada makalah [Jen96] pada tahun 1996.Perkembangan metode penggambaran dengan photon mapping cukup banyak dikem-bangkan oleh beberapa peneliti sampai sekarang seperti pada makalah-makalah[JJD08, HOJ08, HJ09]. Metode penggambaran dengan menggunkan photon map-

ping terbagi menjadi dua tahapan yaitu konstruksi photon map dan rendering.

Tahapan konstruksi photon map dilakukan dengan menembakkan photon (paketenergi) yang sangat banyak dari sumber cahaya ke dalam scene. Setiap photon

ditelusuri ke dalam scene dengan menggunakan metode yang mirip dengan path

11

Page 34: RANCANG BANGUN RAY TRACING PIPELINE PADA …web.ee.its.ac.id/~fuad/papers/THESIS.pdfreza fuad rachmadi 2208 205 740 dosen pembimbing: prof. dr. ir. mauridhi hery p., meng. program

Gambar 2.5: Ilustrasi BRDF secara geometri3

tracing. Pada saat photon menabrak suatu permukaan objek, maka parameter pho-

ton akan disimpan pada photon map dan dilakukan algoritma russian roulette untukmemutuskan apakah photon tersebut diserap atau direfleksikan. Gambar 2.4 meru-pakan jenis-jenis photon yang digunakan pada photon map. Arah perjalanan pho-ton yang baru akan dihitung dengan menggunakan persamaan BRDF (Bidirectional

Reflectance Distribution Function) dari permukaan objek. BRDF adalah suatu per-samaan yang merepresentasikan pemantulan cahaya pada suatu permukaan objek.Ilustrasi persamaan BRDF secara geometri dapat dilihat pada gambar 2.5. Pho-

ton mapping yang dipaparkan pada makalah [Jen96] menggunakan dua buah jenisphoton map yaitu caustic photon map dan global photon map. Caustic photon map

digunakan untuk menyimpan photon yang berhubungan dengan caustic dan pem-buatannya dilakukan dengan memancarkan photon pada objek-objek specular sertamenyimpan sebagaimana suatu photon menabrak suatu permukaan diffuse.

Tahapan terakhir yang dilakukan pada metode photon mapping adalah render-

3Diambil dari http://www.vetscite.org/publish/articles/000063/print.html

12

Page 35: RANCANG BANGUN RAY TRACING PIPELINE PADA …web.ee.its.ac.id/~fuad/papers/THESIS.pdfreza fuad rachmadi 2208 205 740 dosen pembimbing: prof. dr. ir. mauridhi hery p., meng. program

Gambar 2.6: Persamaan penggambaran secara goemetri sederhana 4

ing. Rendering dilakukan dengan menggunakan metode ray tracing monte carlo

dimana setiap radiasi cahaya pada suatu titik akan dihitung berdasarkan rata-ratadari beberapa estimasi sampling. Setiap sampling merepresentasikan sebuah ray

yang ditembakkan dari mata penglihat ke titik pada bidang gambar lalu masukke dalam scene. Setiap titik pada bidang gambar dihitung dengan menggunakanpersamaan penggambaran dan dihitung pada saat pertama kali ray menabrak su-atu permukaan objek pada scene. Persamaan penggambaran yang dipaparkan padamakalah [Kaj86] dapat dilihat pada persamaan 2.1.

Ls(x,ω) = Le(x,ω)+´Ω

fr(x,ω ′,ω)Li(x,ω ′)cos θi dω′ (2.1)

Dimana Ls(x,ω) adalah radiasi cahaya yang terlihat oleh mata penglihat pada titikdimana pertama kali ray menabrak permukaan suatu objek dengan x adalah titiktempat pertama kali ray menabrak suatu permukaan objek dan ω adalah arah dariray yang ditembakkan, Le(x,ω) adalah radiasi cahaya yang di permukaan objek,Li adalah radiasi cahaya yang datang dari arah ω ′, fr adalah fungsi BRDF, dan Ω

adalah permukaan sphere yang menjadi arah dari radiasi cahaya yang lain. Ilus-trasi dari persamaan penggambaran pada suatu permukaan objek dapat dilihat padagambar 2.6.

Radiosity

Radiosity merupakan algoritma penggambaran global illumination yang digu-nakan untuk scene yang bersifat diffuse meterial saja. DIffuse material berarti suatu

4Diambil dari http://en.wikipedia.org/wiki/Rendering_equation

13

Page 36: RANCANG BANGUN RAY TRACING PIPELINE PADA …web.ee.its.ac.id/~fuad/papers/THESIS.pdfreza fuad rachmadi 2208 205 740 dosen pembimbing: prof. dr. ir. mauridhi hery p., meng. program

Gambar 2.7: Perbandingan radiosity dengan penggambaran dengan direct illumination 5

permukaan dari suatu objek akan memantulkan energi dari partikel cahaya dan per-mukaan suatu objek dianggap tidak dapat meneruskan energi cahaya (objek diang-gap sebagai objek transparan).

Metode radiosity pertama kali dikembangkan pada tahun 1950 sebagai solusidari permasalahan pengantaran panas pada suatu objek dan mulai dikembangkanuntuk memecahkan persamaan penggambaran pada bidang komputer grafik padatahun 1984 oleh peneliti dari Cornell University. Perbandingan antara penggam-baran dengan radiosity dan penggambaran dengan direct illumination dapat dilihatpada gambar 2.7. Persamaan dasar dari radiosity diambil dari model sederhana daritransfer energi, persamaannya adalah sebagai berikut

B j = ρ jH j +E j (2.2)

dimana B j adalah total radiosity pada suatu permukaan objek, ρ j adalah tingkat pe-mantulan permukaan dari objek, H j adalah energi lain yang berasal dari pantulancahaya dari permukaan-permukaan objek yang lain, dan E j adalah energi yang di-pantulkan oleh permukaan objek yang sedang dihitung. H j adalah suatu persamaanyang dapat didefiniskan sebagai berikut

H j =N

i=1

BiFi j, j = 1..N (2.3)

5Diambil dari http://en.wikipedia.org/wiki/Radiosity_(3D_computer_graphics)

14

Page 37: RANCANG BANGUN RAY TRACING PIPELINE PADA …web.ee.its.ac.id/~fuad/papers/THESIS.pdfreza fuad rachmadi 2208 205 740 dosen pembimbing: prof. dr. ir. mauridhi hery p., meng. program

Gambar 2.8: Pendekatan diffuse dan specular [SKSS08]

dimana Bi adalah radiosity dari permukaan i pada suatu objek dan Fi j adalah faktordimana energi yang meninggalkan permukaan i dapat sampai ke permukaan j yangbernilai antara 0 sampai 1. Makalah-makalah tentang radiosity cukup banyak seper-ti pada makalah [Kel97, GSCH93, GTGB84], Masing-masing membahas radiosity

dan metode untuk mempercepat perhitungan radiosity.

2.2 Shading

Shading adalah suatu metode yang dilakukan untuk penggambaran dalam halmelakukan pendekatan implementasi dari persamaan penggambaran yang telah di-jelaskan sub bab sebelumnya. Pada pendekatannya, shading membagi permodelancahaya menjadi tiga jenis yaitu diffuse, ambient, dan specular. Pada sub bab iniketiga jenis tersebut akan dibahas secara sederhana. Gambar 2.8 merupakan pen-dekatan cahaya diffuse dan specular.

2.2.1 Diffuse

Diffuse merupakan permodelan dari cahaya yang didasarkan pada pemantulandiffuse. Persamaan sederhana dari cahaya diffuse sesuai dengan ilustrasi pada gam-bar 2.8 adalah sebagai berikut

di f f use = kdcosθ = kd(N ·L) (2.4)

diman kd adalah faktor diffuse yang digunakan (pada aplikasinya biasa direpresen-tasikan dengan warna), θ adalah sudut antara vektor normal dari permukaan objekdengan vektor yang mengarah pada sumber cahaya, N adan L adalah normal vektor

15

Page 38: RANCANG BANGUN RAY TRACING PIPELINE PADA …web.ee.its.ac.id/~fuad/papers/THESIS.pdfreza fuad rachmadi 2208 205 740 dosen pembimbing: prof. dr. ir. mauridhi hery p., meng. program

Gambar 2.9: Hasil penggambaran pendekatan cahaya diffuse6

dan vektor yang mengarah pada sumber cahaya.

Pemodelan cahaya dengan diffuse menghasilkan sebagai dari scene akan berwar-na gelap dan sebagai dari scene terlihat terang. Hal tersebut karena jika faktor sudutθ dimana ketika sudut bernilai 90 derajat maka diffuse akan menghasilkan nilai 0atau permukaan tersebut tidak terkena cahaya sama sekali. Hasil penggambarandari cahaya diffuse dapat dilihat pada gambar 2.9.

2.2.2 Ambient

Pemodelan cahaya dengan ambient adalah diumpamakan bahwa suatu per-mukaan pada suatu objek akan selalu memancarkan suatu cahaya dengan intensitastertentu. Cahaya ambient digunakan agar hasil penggambaran tidak hanya gelapdan terang tetapi ada faktor tambahan yang membuat warna dari hasil penggam-baran akan menjadi lebih baik. Hasil penggambaran dengan menggunakan cahayaambient dan diffuse dapat dilihat pada gambar 2.10.

6Diambil dari http://www.directxtutorial.com/Tutorial9/B-Direct3DBasics/

dx9B3.aspx)

16

Page 39: RANCANG BANGUN RAY TRACING PIPELINE PADA …web.ee.its.ac.id/~fuad/papers/THESIS.pdfreza fuad rachmadi 2208 205 740 dosen pembimbing: prof. dr. ir. mauridhi hery p., meng. program

Gambar 2.10: Penggambaran dengan cahaya diffuse dan ambient7

Gambar 2.11: Penggambaran dengan cahaya diffuse, ambient, dan specular7

7Diambil dari http://www.directxtutorial.com/Tutorial9/B-Direct3DBasics/

dx9B3.aspx)

17

Page 40: RANCANG BANGUN RAY TRACING PIPELINE PADA …web.ee.its.ac.id/~fuad/papers/THESIS.pdfreza fuad rachmadi 2208 205 740 dosen pembimbing: prof. dr. ir. mauridhi hery p., meng. program

2.2.3 Specular

Specular atau bisa disebut dengan specular highlight merupakan pendekatancahaya pada suatu permukaan yang mengkilat. Persamaan yang digunakan padacahaya specular adalah sebagai berikut

specular = ks(N ·H)n (2.5)

dimana ks adalah faktor specular yang ada pada permukaan pada suatu objek, N

adalah normal vektor, n adalah faktor exponesial dari cahaya specular yang di-inginkan, dan H adalah halfway vektor dari permukaan. Persamaan dari halfwayvektor sendiri adalah sebagai berikut

H =V +L|V +L|

(2.6)

dimana V adalah vektor yang menuju ke mata penglihat, dan L adalah vektor yangmenuju ke sumber cahaya. Hasil penggambaran dengan menggunakan ketiga pen-dekatan cahaya tersebut dapat dilihat pada gambar 2.11.

2.3 Persamaan Parametrik Ray

Persamaan parametrik ray merupakan persamaan garis yang dinotasikan den-gan titik dan arah bergeraknya titik tersebut. Persamaan parametrik ray 2.7, digu-nakan untuk merepresentasikan ray yang digunakan untuk melakukan perjalananpartikel cahaya pada metode penggambaran ray tracing.

r(t) = o+ td (2.7)

Persamaan 2.7 dibagi menjadi dua buah vektor, vektor o adalah vektor posisiawal dari ray sedangkan vektor d adalah vektor normal arah dari perjalanan ray

yang berorientasi terhadap vektor o. Variabel skalar t merupakan skala perpindahanvektor o dengan besaran unit d. Ada beberapa metode mendeteksi perpotonganyang digunakan pada penelitian ini yaitu perpotongan antara ray dengan AABB(Axis Aligned Bounding Box) dan perpotongan antara ray dengan segitiga. Keduametode tersebut akan dijelaskan secara sederhana pada sub bab 2.3.1 dan 2.3.2.

2.3.1 Perpotongan Ray-AABB

AABB (Axis Align Bounding Box) merupakan suatu jenis bangun ruang berben-tuk kubus dan sejajar dengan sumbu koordinat. Perhitungan perpotongan antara ray

18

Page 41: RANCANG BANGUN RAY TRACING PIPELINE PADA …web.ee.its.ac.id/~fuad/papers/THESIS.pdfreza fuad rachmadi 2208 205 740 dosen pembimbing: prof. dr. ir. mauridhi hery p., meng. program

Gambar 2.12: Perpotongan Ray-AABB dengan metode slabs

dengan AABB dapat dilakukan salah satunya dengan menggunakan metode slabs.Metode slabs diperkenalkan pada makalah [KK86] dan digunakan untuk perpo-tongan dengan bangun bounding volume. Gambar 2.12 merupakan ilustrasi duadimensi untuk metode slabs.

Pada gambar 2.12 dilakukan perhitungan apakah ray R berpotongan denganAABB dengan koordinat minimum (xi,yi) dan maksimum (xh,yh). Metode slabs

menggunakan variabel skalar t, yang terdapat pada rumus 2.7, untuk menentukantnear dan t f ar. Variabel tnear dan t f ar yang dihasilkan oleh metode slabs adalahperpotongan minimum (saat ray memasuki AABB) dan maksimum (saat ray keluardari AABB).

Algoritma 2.1 adalah penggunaan metode slabs untuk mencari titik perpoton-gan antara ray dengan AABB pada koordinat dua dimensi. Variabel xo dan yo

adalah titik awal ray, sedangkan xd dan yd adalah vektor arah ternormalisasi dariray relatif terhadap xo dan yo. Titik hasil perpotongan pada metode slabs dihasilkanpada variabel tnear dan t f ar serta dikatakan berpotongan jika tnear < t f ar dant f ar > 0.

2.3.2 Perpotongan Ray-Segitiga

Algoritma perpotongan ray dengan segitiga tidak kalah penting dibandingkandengan algoritma perpotongan ray dengan AABB. Banyak metode yang dapat di-gunakan untuk mengimplementasikan algoritma perpotongan ray dengan segitiga,salah satunya dipublikasi pada makalah [MT97] oleh Moller dan Trumbore. Pa-da makalah tersebut, metode yang digunakan dengan menurunkan persamaan darikoordinat barycentric pada suatu segitiga. Gambar 2.13 merupakan skematik dari

19

Page 42: RANCANG BANGUN RAY TRACING PIPELINE PADA …web.ee.its.ac.id/~fuad/papers/THESIS.pdfreza fuad rachmadi 2208 205 740 dosen pembimbing: prof. dr. ir. mauridhi hery p., meng. program

Algoritma 2.1 Metode Slabs [KK86]tnear = -infinity; tfar = infinity;

T1 = (xi - xo) / xd;

T2 = (yi - yo) / yd;

if T1 > T2 then swap(T1,T2);

if T1 > tnear then tnear = T1;

if T2 < tfar then tfar = T2;

if tnear > tfar then return false; // ray miss the box

if tfar < 0 then return false; // box behind the ray

return true;

sistem koordinat barycentric pada sebuah segitiga. Pada bidang komputer grafik,selain untuk perhitungan perpotongan antara ray dengan segitiga, sistem koordinatbarycentric juga bisa digunakan untuk texture mapping, interpolasi normal vektor,dan interpolasi warna.

Suatu titik pada segitiga dapat direpresentasikan dengan menggunakan sistemkoordinat barycentric yaitu dengan menggunakan persamaan sebagai berikut

T (u,v) = (1−u− v)V0 +uV1 + vV2 (2.8)

dimana (u,v) adalah koordinat barycentric, dengan syarat u≥ 0, v≥ 0, dan u+v ≤ 1. Untuk V0, V1, dan V2 adalah titik-titik koordinat katersian yang membentuksegitiga. Untuk mengetahui apakah suatu ray berpotongan dengan segitiga makadiperlukan persamaan r(t) = T (u,v) sehingga persamaan 2.8 dapat ditulis sebagaiberikut

o+ td = (1−u− v)V0 +uV1 + vV2 (2.9)

dengan sedikit modifikasi maka persamaan tersebut dapat juga dituliskan seba-gai berikut

[−d, V1−V0, V2−V0

] t

u

v

= o−V0 (2.10)

Dengan mencari penyelesain sistem persamaan linier yang ada pada persamaan2.10, barycentric koordinat (u,v) dan jarak dari pusat ray ke titik perpotongan (t)dapat ditentukan. Persamaan 2.10 dapat diselesaikan dengan menggunakan aturanCramer sehingga didapatkan persamaan sebagai berikut

20

Page 43: RANCANG BANGUN RAY TRACING PIPELINE PADA …web.ee.its.ac.id/~fuad/papers/THESIS.pdfreza fuad rachmadi 2208 205 740 dosen pembimbing: prof. dr. ir. mauridhi hery p., meng. program

Gambar 2.13: Koordinat barycentric pada segitiga

t

u

v

=1

|−d, E1, E2|

|T, E1, E2||−d, T, E2||−d, E1, T |

(2.11)

dimana E1 = V1−V0, E2 = V2−V0, dan T = o−V0. Dari aturan aljabar linier,diketahui bahwa |A, B, C|=−(A×C) ·B =−(C×B) ·A sehingga persamaan diatasdapat ditulis ulang sebagai berikut

t

u

v

=1

(d×E2) ·E1

(T ×E1) ·E2

(d×E2) ·T(T ×E1) ·D

=1

P ·E1

Q ·E2

P ·TQ ·d

(2.12)

dimana P = (d×E2) dan Q = T ×E1. Pada implementasinya, variabel P dan Q

dapat digunakan kembali dalam perhitungan untuk mempercepat proses perhitun-gannya. Gambar 2.14 merupakan proses perhitungan perpotongan ray dan segitigadilihat secara geometri dengan M = [−d, V1−V0, V2−V0].

2.4 Ray Tracing

Ray tracing merupakan suatu metode penggambaran dengan cara mensimu-lasikan perjalanan partikel cahaya dari sumber cahaya ke mata penglihat. Padaperkembangannya metode ray tracing kemudian sedikit berubah dari pengertianasalnya yaitu mensimulasikan perjalanan partikel cahaya dari mata penglihat kesumber cahaya. Perubahan tersebut digunakan untuk mengefisienkan proses perhi-

21

Page 44: RANCANG BANGUN RAY TRACING PIPELINE PADA …web.ee.its.ac.id/~fuad/papers/THESIS.pdfreza fuad rachmadi 2208 205 740 dosen pembimbing: prof. dr. ir. mauridhi hery p., meng. program

Gambar 2.14: Proses perhitungan perpotongan ray-segitiga secara geometri [MT97]

tungan dan pengertian tersebut hanya digunakan pada bidang keilmuan komputergrafik. Ray tracing diperkenalkan pada makalah [Whi80] dan masih dilakukan den-gan bentuk-bentuk geometri yang sederhana seperti bidang datar dan bola.

Gambar 2.15 merupakan skema dasar dari ray tracing, dimana dalam per-jalanan partikel sinar dari mata penglihat ke sumber cahaya terdapat dua pros-es yang mensimulasikan sifat-sifat dari cahaya yaitu refraksi dan refleksi. Garisberwarna biru pada gambar 2.15 merupakan partikel sinar yang langsung menujuke sumber cahaya sedangkan garis berwarna hijau dan biru merupakan partikel ca-haya yang melalui proses refleksi dan refraksi untuk dapat mencapai sumber cahaya.Pengertian refleksi adalah pemantulan sinar oleh suatu medium tertentu sedangkanrefraksi merupakan penyerapan cahaya pada medium yang berbeda. Jika suatu ap-likasi penggambaran tiga dimensi yang mengunakan ray tracing telah mempunyaifungsi untuk menghitung refraksi dan refleksi maka aplikasi tersebut dikatakan telahmenerapkan teknik global illumination dalam pengambarannya. Pengertian glob-

al illumination berarti perhitungan pencahayaannya tidak hanya berasal hanya darisatu titik saja tetapi merupakan campuran cahaya dari titik tersebut dengan efek ca-haya yang ditimbulkan dari lingkungan di sekitarnya.

2.4.1 Jenis Ray Tracing

tesSimulasi partikel cahaya pada ray tracing dapat dilakukan dengan dua caraberbeda, yaitu dengan menembakkan ray dari sumber cahaya ke dalam scene danberakhir pada mata penglihat (seperti yang terjadi di alam) atau dengan menem-bakkan ray dari bidang gambar dan berakhir pada sumber cahaya. Walaupun idedari kedua metode tersebut sama, tetapi kedua metode tersebut menghasilkan hasil

22

Page 45: RANCANG BANGUN RAY TRACING PIPELINE PADA …web.ee.its.ac.id/~fuad/papers/THESIS.pdfreza fuad rachmadi 2208 205 740 dosen pembimbing: prof. dr. ir. mauridhi hery p., meng. program

Gambar 2.15: Skema ray tracing

penggambaran yang berbeda, efisiensi yang berbeda, serta tingkat kesusahan imple-mentasi yang berbeda.

Forward Ray Tracing

Forward ray tracing merupakan tipe ray tracing dengan metode menembakkanray dari sumber cahaya ke dalam scene dan berakhir pada mata penglihat. Forward

ray tracing mensimulasikan ray sebagai partikel cahaya seperti pada dunia nya-ta sehingga dibutuhkan banyak sekali ray untuk menghasilkan gambar yang baik.Gambar 2.16 merupakan ilustrasi metode forward ray tracing. Pada gambar terse-but, terlihat bahwa tidak semua ray yang ditembakkan dan ditelusuri dari sumbercahaya sampai ke mata penglihat, pada gambar ray yang sampai ke mata penglihatberwarna biru sedangkan ray yang tidak sampai ke mata penglihat berwarna merah,sehingga pada hasil penggambarannya akan menghasilkan banyak noise yang san-gat mengganggu. Satu-satu penyelesaian untuk menghilangkan noise pada gambarhasil adalah dengan menembakkan ray lebih banyak lagi sampai noise tidak ter-lihat sehingga untuk mendapatkan hasil penggambaran yang baik dibutuhkan dayakomputasi yang sangat tinggi. Kelebihan dari forward ray tracing adalah mendekatiperumusan dari persamaan global illumination dengan syarat ray yang ditembakkandari sumber cahaya ke dalam scene sangat banyak.

Backward Ray Tracing

Backward ray tracing menggunakan analogi yang berkebalikan dengan for-

ward ray tracing, yaitu dengan menembakkan ray dari mata penglihat ke bidang

23

Page 46: RANCANG BANGUN RAY TRACING PIPELINE PADA …web.ee.its.ac.id/~fuad/papers/THESIS.pdfreza fuad rachmadi 2208 205 740 dosen pembimbing: prof. dr. ir. mauridhi hery p., meng. program

Gambar 2.16: Forward ray tracing

gambar lalu masuk ke scene dan berakhir pada sumber cahaya. Backward ray

tracing menghasilkan gambar yang kurang lebih sama dengan forward ray tracingtetapi mengefisienkan ray yang ditelusuri pada scene dan mengurangi daya kom-putasi untuk prosesnya. Kekurangan dari metode backward ray tracing adalahadanya efek aliasing yang menghasilkan gambar yang sedikit kabur. Efek alias-

ing terjadi karena sampling setiap titik pada gambar hasil pada dasarnya merupakansuatu bidang besar yang terdiri dari gabungan beberapa sampling tetapi pada back-

ward ray tracing hanya direpesentasikan oleh satu ray sehingga warna yang di-hasilkan tidak sesuai dengan kondisi scene. Pada metode backward ray tracing, so-lusi untuk menghilangkan efek aliasing adalah dengan menggunakan metode super

sampling dimana setiap titik pada gambar hasil tidak direpresentasikan sebagai saturay tetapi sebagai 9 ray yang berjarak seragam dan hasilnya merupakan rata-ratawarna yang dihasilkan oleh kesembilan ray tersebut sehingga menghasilkan perpin-dahan warna yang lebih halus. Gambar 2.17 merupakan ilustrasi penembakan raypada satu titik pada gambar hasil dengan menggunakan super sampling.

2.4.2 Tahapan Proses Pada Ray Tracing

Tahapan proses yang dilakukan pada ray tracing ada 5 buah yaitu persiapanscene, membangun primary ray, menembakkan ray serta melakukan deteksi perpo-tongan ray dengan objek yang ada di scene, membangun shadow, dan menentukanrefleksi atau refraksi ray. Algoritma 2.2 merupakan algoritma dasar untuk prosesray tracing.

24

Page 47: RANCANG BANGUN RAY TRACING PIPELINE PADA …web.ee.its.ac.id/~fuad/papers/THESIS.pdfreza fuad rachmadi 2208 205 740 dosen pembimbing: prof. dr. ir. mauridhi hery p., meng. program

Gambar 2.17: Super sampling pada backward ray tracing8

Persiapan Scene

Persiapan scene merupakan tahapan dimana program menginisialisasi semuastruktur data dan memuat model atau scene ke dalam memori komputer untukdiproses lebih lanjut. Selain itu, program juga melakukan konfigurasi terhadap pa-rameter kamera yang digunakan untuk penggambaran. Proses lain yang terjadi pa-da tahapan ini adalah mengorganisasi data objek atau polygon pada scene denganstruktur data tertentu seperti array dan tree. Sebagian struktur data tersebut tidakhanya menyimpan pointer ke data polygon tetapi bisa menyimpan partisi-partisi dariscene atau membuat objek-objek bayangan untuk meningkatkan efisiensi penggam-baran. Struktur data yang dapat meningkatkan efisiensi penggambaran disebut den-gan accelerated structure (struktur pemercepat), contoh accelerated structure adalahkd-tree, uniform grid, BVH (Bounding Volume Hierarchy) dan hybrid. Pada sub babberikutnya akan dipaparkan salah satu accelerated structure yang digunakan dalamtesis ini yaitu uniform grid.

Membangun Primary Ray

Tahapan pembangunan primary ray dilakukan untuk menentukan ray-ray yangakan ditembakkan ke dalam scene dari mata penglihat untuk setiap titik pada bidanggambar. Primary ray dipengaruhi oleh beberapa faktor yaitu parameter kamerayang digunakan, resolusi bidang gambar yang digunakan, dan metode anti-aliasing

yang digunakan bila menggunakan anti-aliasing dalam penggambarannya.

8Diambil dari http://local.wasp.uwa.edu.au/~pbourke/miscellaneous/aliasing/

25

Page 48: RANCANG BANGUN RAY TRACING PIPELINE PADA …web.ee.its.ac.id/~fuad/papers/THESIS.pdfreza fuad rachmadi 2208 205 740 dosen pembimbing: prof. dr. ir. mauridhi hery p., meng. program

Algoritma 2.2 Algoritma ray tracing [Hav00]1>> Preparing scene

2>> Generating primary ray

3>> Shooting ray to the scene

>> Find the nearest intersection point in scene

>> If not found fill color with background color

>> Calculating the direct lighting of the intersection point

>> Check if point under shadow or not

>> Creating a reflection and refraction ray for next trace

>> Go to step 3 and repeat the step

Menembakkan Ray

Penembakan ray dilakukan untuk mencari titik perpotongan terdekat antara raydengan objek yang ada pada scene. Metode pendeteksian apakah suatu ray berpo-tongan dengan suatu objek tergantung pada bentuk geometri objeknya. Sebagaicontoh jika objek berupa segitiga maka dapat digunakan metode yang dipaparkanpada makalah [MT97] sedangkan jika objek berupa AABB maka dapat digunakanmetode “slabs” yang dipaparkan pada makalah [KK86]. Proses penembakan ray

dan pendeteksian perpotongan ray dengan objek pada scene merupakan tahapanyang paling banyak membutuhkan daya komputasi dibandingkan pada tahapan-tahapan yang lain, sebagai gambaran saja jika pada scene terdapat 10 ribu objek danresolusi bidang gambar yang digunakan adalah 512 x 512 maka pendeteksian yangharus dilakukan adalah 10 ribu x 512 x 512 = 2.621.440.000 pendeteksian denganasumsi bahwa tidak ada metode anti-aliasing dan accelerated structure yang digu-nakan pada sistem.

Setelah mendapatkan titik perpotongan yang paling minimum dari ray dan ob-jek yang ada pada scene, maka proses selanjutnya adalah menghitung direct light-

ing sesuai dengan sumber cahaya yang didefinisikan. Direct lighting merupakangabungan dari ambient lighting, diffuse lighting, dan specular lighting.

Membangun Shadow

Shadow merupakan salah satu efek yang dapat diimplementasikan dengan mu-dah pada ray tracing. Setelah melakukan menembakkan ray dan pendeteksian per-potongan antara ray dengan objek-objek pada scene, tahapan selanjutnya yang bisadilakukan adalah melakukan perhitungan shadow. Ada beberapa jenis shadow ter-gantung dari berapa sumber cahaya yang ada serta bentuk sumber cahaya yang digu-nakan (uniform atau non-uniform). Jika digunakan sumber cahaya berbentuk titik,hanya berjumlah satu buah, dan memancarkan cahaya secara uniform ke segalaarah maka akan didapatkan efek hard shadow tetapi jika sumber cahaya lebih dari

26

Page 49: RANCANG BANGUN RAY TRACING PIPELINE PADA …web.ee.its.ac.id/~fuad/papers/THESIS.pdfreza fuad rachmadi 2208 205 740 dosen pembimbing: prof. dr. ir. mauridhi hery p., meng. program

Gambar 2.18: Shadow ray

satu atau bentuk dari sumber cahaya tidak berupa titik (memancarkan cahaya secaratidak uniform) maka akan terbentuk efek soft shadow.

Penentuan apakah suatu titik perpotongan antara ray dengan objek yang ada pa-da scene berada pada daerah shadow atau tidak dengan menembakkan dan menelu-suri ray tambahan yang dinamakan shadow ray ke masing-masing sumber cahaya.Jika shadow ray menambrak suatu objek pada scene maka titik perpotongan antararay dengan objek pada scene yang telah didapatkan diawal berada pada daerah shad-

ow tetapi jika shadow ray berhasil mencapai sumber cahaya tanpa menabrak objeklain pada scene maka titik perpotongan antara ray dengan objek pada scene yangtelah didapatkan diawal tidak berada pada daerah shadow. Gambar 2.18 merupakangambaran penembakan dan penelusuran shadow ray terhadap tiga sumber cahaya.

Membangun Refleksi dan Refraksi Ray

Tahapan proses yang terakhir pada ray tracing adalah membuat refleksi dan re-fraksi ray dan setelah itu program akan melakukan penelusuran ulang sesuai denganrefleksi dan refraksi ray yang telah dibuat. Pembangunan refleksi dan refraksi rayadalah membuat hasil penggambaran menjadi lebih realistik tetapi yang perlu diin-gat adalah refleksi dan refraksi maksimum yang bisa dilakukan oleh ray dari titik

27

Page 50: RANCANG BANGUN RAY TRACING PIPELINE PADA …web.ee.its.ac.id/~fuad/papers/THESIS.pdfreza fuad rachmadi 2208 205 740 dosen pembimbing: prof. dr. ir. mauridhi hery p., meng. program

Gambar 2.19: Refleksi dan refraksi ray

awal perpotongan antara ray dengan objek pada scene. Semakin banyak refleksi danrefraksi yang dilakukan maka hasil penggambaran akan semakin bagus tetapi akanmembutuhkan daya komputasi yang lebih tinggi karena program harus melakukanpenelusuran tambahan beberapa kali.

Gambar 2.19 merupakan ilustrasi pembentukan refleksi dan refraksi ray darisuatu ray input yang berpotongan dengan permukaan suatu objek pada scene. Per-hitungan refleksi ray adalah dengan menggunakan persamaan sebagai berikut

Rf = 2N · cos(θ)−Rin (2.13)

dimana Rf adalah vektor arah dari refleksi ray yang dihasilkan, N adalah normalvektor pada permukaan objek, θ adalah sudut incident, dan Rin adalah inverse vek-tor arah pada incident ray. Untuk perhitungan refraksi ray digunakan aturan snell

untuk penurunannya dan menghasilkan persamaan sebagai berikut

Rfr =[

η (N ·Rin)−√

1−η2 (1− (N ·Rin))]

N−ηRin (2.14)

dimana Rfr adalah vektor arah dari refraksi ray yang dihasilkan, sedangkan N danRin sama seperti pada persamaan untuk perhitungan refleksi ray, dan η = η1/η2

dimana η1 adalah refraksi index pada medium pada saat ray berpotongan denganpermukaan objek sedangkan η2 adalah refraksi index pada medium yang meng-hasilkan refraksi ray.

28

Page 51: RANCANG BANGUN RAY TRACING PIPELINE PADA …web.ee.its.ac.id/~fuad/papers/THESIS.pdfreza fuad rachmadi 2208 205 740 dosen pembimbing: prof. dr. ir. mauridhi hery p., meng. program

Gambar 2.20: Struktur uniform grid

2.5 Struktur Uniform Grid

Permasalahan utama pada metode ray tracing adalah kebutuhan komputasiyang sangat besar untuk dapat menggambar satu gambar dengan jumlah polygon

yang banyak. Salah satu cara untuk mempercepat penggambaran adalah denganmenggunakan accelerated structure yang membagi scene menjadi kumpulan da-ta spasial. Salah satu accelerated structure yang banyak digunakan adalah uni-

form grid. Gambar 2.20 merupakan gambaran struktur uniform grid yang digu-nakan. Uniform grid telah dikembangkan dan dipublikasikan pada makalah [Chr05,IDC09, KS09, LD08]. Secara sederhana struktur uniform grid dapat diumpamakansebagai sebuah bidang koordinat baru dengan skala satu pixelnya adalah sama den-gan besar satu cell pada uniform grid.

Perhitungan ray tracing dengan menggunakan struktur uniform grid memer-lukan dua tahapan dasar yaitu konstruksi struktur uniform grid dan traversing struk-tur uniform grid. Tahapan pertama diperlukan untuk membentuk struktur uniform

grid sesuai dengan keadaan scene sedangkan tahapan kedua dilakukan pada saatpenggambaran yaitu bagaimana program secara selektif melakukan perhitunganperpotongan antara garis perjalanan partikel cahaya dengan polygon yang ada padascene.

2.5.1 Resolusi Uniform Grid

Resolusi pada struktur uniform grid menjadi faktor yang cukup krusial un-tuk menentukan kecepatan penggambaran. Hal tersebut dikarenakan jika struk-tur terlalu rapat atau terlalu renggang maka akan menghasilkan waktu penggam-

29

Page 52: RANCANG BANGUN RAY TRACING PIPELINE PADA …web.ee.its.ac.id/~fuad/papers/THESIS.pdfreza fuad rachmadi 2208 205 740 dosen pembimbing: prof. dr. ir. mauridhi hery p., meng. program

Gambar 2.21: Uniform grid traversal

baran yang lebih lama. Pada makalah [WIK+06] digunakan persamaan 2.15 untukmenentukan resolusi dari struktur uniform grid.

Nx = dx3√

kPV

Ny = dy3√

kPV

Nz = dz3√

kPV

(2.15)

Variabel Nx, Ny, dan Nz adalah resolusi uniform grid pada setiap axis. Variabelk adalah user konstanta yang bisa berubah sesuai dengan keinginan, nilai k menen-tukan apakah struktur uniform grid yang dihasilkan akan renggang atau rapat. Vari-abel P adalah jumlah polygon pada scene sedangkan variabel V adalah volume dariscene. Terakhir, variabel dx, dy, dan dz adalah diagonal dari masing-masing axispada scene. Pada makalah [WIK+06], melalui beberapa percobaan maka diambilkesimpulan bahwa nilai k yang paling optimal adalah disekitar nilai 5.

2.5.2 Konstruksi Uniform Grid

Setelah menentukan resolusi yang digunakan untuk pembentukan struktur uni-

form grid, langkah berikutnya adalah memetakan seluruh polygon yang ada padascene untuk dimasukkan pada cell-cell yang ada pada uniform grid. Tahapan inidisebut dengan konstruksi struktur uniform grid serta menghasilkan struktur uni-

form grid yang pada cell-cellnya tercatat index dari polygon-polygon yang berpo-tongan dengan cell. Pada tahap ini digunakan metode pemetaan dari AABB sebuahpolygon ke koordinat uniform grid dengan titik (0,0,0) berada di koordinat palingminimum pada AABB scene.

30

Page 53: RANCANG BANGUN RAY TRACING PIPELINE PADA …web.ee.its.ac.id/~fuad/papers/THESIS.pdfreza fuad rachmadi 2208 205 740 dosen pembimbing: prof. dr. ir. mauridhi hery p., meng. program

2.5.3 Uniform Grid Traversal

Proses uniform grid traversal merupakan proses yang dilakukan pada saat peng-gambaran, yaitu melakukan perjalanan partikel cahaya (ray) dengan posisi koor-dinat voxel dari uniform grid. Proses traversal dilakukan dengan menggunakanmetode 3D-DDA (3D Digital Differential Analyzer), yaitu suatu metode pemben-tukan garis pada suatu bidang koordinat. Pada makalah [AW87] diperkenal metodeincrement 3D-DDA, yaitu metode 3D-DDA dengan melakukan penambahan ter-hadap variabel tertentu untuk setiap tahapannya. Secara skematik dua dimensi,uniform grid traversal dapat digambarkan pada gambar 2.21. Algoritma traver-

sal yang digunakan harus memproses semua cell dari uniform grid yang dilewati,dan ini sedikit berbeda dengan algoritma pembentukan garis biasa yang tidak mem-perhitungkan ketelitian setiap pixel yang dilewati.

Algoritma 3D-DDA yang diperkenalkan oleh [AW87] bisa disebut dengan al-goritma 3D-DDA dengan koneksi 6, yaitu algoritma 3D-DDA yang tidak menggu-nakan koordinat tengah dari cell tetapi menggunakan koordinat yang asli dari garistersebut sehingga tidak ada cell yang terlewatkan pada saat melakukan traversal.Algoritma 2.3 merupakan psedo code dari algoritma 3D-DDA. Pada psedu code

tersebut variabel X, Y, dan Z adalah koordinat cell dari uniform grid sedangkan vari-abel stepX, stepY, dan stepZ merupakan kenaikan setiap koordinat cell (nilai -1atau 1 tergantung vektor arah pada ray). Variabel tMaxX, tMaxY, dan tMaxZ di-gunakan untuk menyimpan nilai t (nilai t digunakan sebagai media pembandinguntuk memutuskan koordinat cell mana yang akan ditambah). Tiga variabel ter-akhir adalah tDeltaX, tDeltaY, dan tDeltaZ digunakan untuk penambahan nilait pada masing-masing axis koordinat.

2.6 GPGPU

GPGPU adalah singkatan dari general purpose GPU yaitu dimana GPU di-gunakan sebagai media komputasi paralel. Perkembangan GPU sangat signifikandengan kebutuhan kualitas penggambaran grafik pada game dan desain grafik. Padaawalnya, peneliti GPGPU menggunakan GPU shader untuk melakukan perhitun-gan tetapi seiring dengan berkembangnya perangkat keras GPU (kartu grafik) makamuncul standar yang mengatur pemakaian GPU sebagai media komputasi paralel.

2.6.1 NVIDIA CUDA

NVIDIA CUDA adalah salah satu standar komputasi paralel pada GPU. CU-DA (Compute Unified Device Architecture) dikeluarkan oleh NVIDIA pada tahun

31

Page 54: RANCANG BANGUN RAY TRACING PIPELINE PADA …web.ee.its.ac.id/~fuad/papers/THESIS.pdfreza fuad rachmadi 2208 205 740 dosen pembimbing: prof. dr. ir. mauridhi hery p., meng. program

Algoritma 2.3 Voxel traversal, diambil dari [AW87]list= NIL;

do

if(tMaxX < tMaxY)

if(tMaxX < tMaxZ)

X=X+stepX;tMaxX=tMaxX+tDeltaX; if(X==justOutX)return(NIL);

else

Z=Z+stepZ;tMaxZ=tMaxZ+tDeltaZ; if(Z==justOutZ)return(NIL);

else

if(tMaxY < tMaxZ)

Y=Y+stepY;tMaxY=tMaxY+tDeltaY; if(Y==justOutY)return(NIL);

else

Z=Z+stepZ;tMaxZ=tMaxZ+tDeltaZ; if(Z == justOutZ)return(NIL);

list= ObjectList[X][Y][Z];

while(list == NIL);

return(list);

2007 dan banyak digunakan untuk penelitian-penelitian yang membutuhkan dayakomputasi yang besar. Perkembangan kartu grafik / GPU sangat pesat dan men-galahkan perkembangan yang dicapai oleh CPU. Perbandingan perkembangan dayakomputasi GPU dengan CPU dapat dilihat pada gambar 2.22.

Desain arsitektur perangkat keras GPU adalah multiprosessor SIMT (Single In-

struction Multiple Thread) dengan menggunakan sejumlah SM (Stream Multipro-

cessor). Pada manul [Nvi09a, Nvi09b] dijelaskan bahwa setiap SM akan bertang-gung jawab untuk mengeksekusi setiap block dari instruksi yang dijalankan. SetiapSM akan mempunyai on-chip shared memory, 32-bit register, dan instruksi unituntuk menjalankan suatu block thread.

2.6.2 SIMT Programming

SIMT programming yang diperkenalkan oleh NVIDIA menggunakan beberapaistilah penting yaitu kernel, block, grid, dan thread. Kernel merupakan kode pro-gram yang akan dijalankan secara paralel pada GPU. Block, grid, dan thread adalahmanajemen yang digunakan untuk mengeksekusi suatu instruksi. Thread adalah in-struksi yang dikerjakan pada satu prosessor sedangkan block adalah kumpulan darithread yang dieksekusi secara bersama-sama. Resolusi dari block bisa berupa satudimensi atau dua dimensi. Grid adalah kumpulan dari block dan mempunyai reso-lusi yang bisa berupa satu dimensi maupun dua dimensi. Satu block akan dieksekusioleh satu SM (pada standar lama 1 SM = 8 prosessor dan pada standar baru 1 SM =16 prosessor) dan satu grid akan dieksekusi di beberapa SM secara bersama-sama

32

Page 55: RANCANG BANGUN RAY TRACING PIPELINE PADA …web.ee.its.ac.id/~fuad/papers/THESIS.pdfreza fuad rachmadi 2208 205 740 dosen pembimbing: prof. dr. ir. mauridhi hery p., meng. program

Gambar 2.22: Operasi floating point antara CPU dan GPU [Nvi09a]

Gambar 2.23: Thread, block, dan grid [Nvi09a]

33

Page 56: RANCANG BANGUN RAY TRACING PIPELINE PADA …web.ee.its.ac.id/~fuad/papers/THESIS.pdfreza fuad rachmadi 2208 205 740 dosen pembimbing: prof. dr. ir. mauridhi hery p., meng. program

Gambar 2.24: Hirarki memori pada CUDA [Nvi09a]

maupun bergantian. GPU mempunyai thread schedular yang berfungsi untuk men-gatur eksekusi yang dilakukan. Istilah thread, block, dan grid dapat divisualisasisecara sederhana pada gambar 2.23.

Mekanisme lain yang perlu diperhatikan adalah hirarki memori pada standarCUDA. Terdapat 3 jenis hirarki memori pada CUDA yaitu per thread local memo-

ry, per block shared memory, dan global memory. Per thread local memory adalahregister yang digunakan setiap thread untuk menampung nilai sementara pada per-hitungan dan scope aksesnya hanya pada satu thread. Per block shared memory

digunakan untuk menampung sementara nilai yang akan diakses oleh thread lainyang berada pada satu block dan scope aksesnya adalah semua thread yang adapada satu block. Hirarki terakhir adalah global memory yaitu memori yang bera-da pada GPU dan dapat diakses oleh seluruh thread yang sedang dieksekusi tanpakecuali. Skema hirarki memori pada CUDA dapat dilihat pada gambar 2.24.

2.7 Parallel Random Access Machine

PRAM (Parallel Random Access Machine) merupakan metode perancangan al-goritma paralel yang digunakan untuk lingkungan multiprocessor atau multithread-

ing. Model PRAM menfokuskan pada permasalahan pengaksesan suatu resourcesecara bersama-sama dengan tidak memperhatikan permasalahan sinkronisasi dan

34

Page 57: RANCANG BANGUN RAY TRACING PIPELINE PADA …web.ee.its.ac.id/~fuad/papers/THESIS.pdfreza fuad rachmadi 2208 205 740 dosen pembimbing: prof. dr. ir. mauridhi hery p., meng. program

komunikasi antar proses paralel. Dengan kata lain, jika tidak dapat menghasilkanalgoritma paralel yang baik pada model PRAM, maka tidak akan didapatkan algo-ritma paralel yang baik pada dunia nyata. Pemrosesan pada model PRAM dapatmenyebabkan akses data yang dilakukan secara simultan oleh beberapa prosessorpada lokasi memori yang sama. Pada model PRAM dilihat dari aturan simultanakses sesuai dengan makalah [CP09] dapat dibedakan sebagai berikut.

1. Exclusive Read Exclusive Write (EREW): Pada model PRAM ini, tidakdiperbolehkan untuk menulis atau membaca pada lokasi memori yang samaatau dapat dikatakan bahwa pada model PRAM ini dua atau lebih prosessoryang berbeda tidak akan mengakses, menulis dan membaca, lokasi memoriyang sama.

2. Concurrent Read Exclusive Write (CREW): Pada model PRAM ini, duaatau lebih prosessor dapat membaca dari satu lokasi memori yang sama tetapitidak boleh menulis pada lokasi memori yang sama.

3. Exclusive Read Concurrent Write (ERCW): Pada model PRAM ini, duaatau lebih prosessor tidak boleh membaca pada lokasi memori yang samatetapi dapat menulis pada lokasi memori yang sama.

4. Concurrent Read Concurrent Write (CRCW): Pada model PRAM ini, duaatau lebih prosessor dapat menulis dan membaca pada lokasi memori yangsama. Terdapat beberapa jenis CRCW diantaranya adalah:

(a) Common CRCW: Pada model ini, dua atau lebih prosessor dapat menulispada lokasi memori yang sama jika data yang ditulis sama.

(b) Arbitary CRCW: Pada model ini, data yang dituliskan dipilih secaraacak dari data yang dituliskan oleh prosessor pada lokasi memori yangsama.

(c) Priority CRCW: Pada model ini, data yang dituliskan adalah data yangdituliskan oleh prosessor dengan prioritas yang paling tinggi.

(d) Combining CRCW: Pada model ini, data yang akan dituliskan meru-pakan kombinasi perhitungan (biasanya menggunakan operator asisiatifdan mutatif, + atau max) dari seluruh data yang dituliskan prosessorpada lokasi memori yang sama.

2.7.1 Dasar Desain Algoritma Pada PRAM

Perancangan suatu algoritma dengan model PRAM, biasanya menggunakanparadigma WT (Work-Time) dimana pada WT, setiap tahapan proses dari algoritmadapat mengandung jumlah instruksi yang arbitari serta dilakukan secara simultansehingga penjadwalan algoritma pada prosessor menjadi lebih mudah.

35

Page 58: RANCANG BANGUN RAY TRACING PIPELINE PADA …web.ee.its.ac.id/~fuad/papers/THESIS.pdfreza fuad rachmadi 2208 205 740 dosen pembimbing: prof. dr. ir. mauridhi hery p., meng. program

Terdapat dua kompleksitas yang diukur pada WT yaitu kompleksitas dari al-goritma dan kompleksitas dari setiap tahapan pada algoritma. Kompleksitas darialgoritma, dilambangkan dengan W (n), adalah total operasi yang dilakukan untukmengeksekusi algoritma sedangkan kompleksitas setiap tahapan algoritma, dilam-bangkan dengan S(n), adalah total tahapan yang dilakukan untuk mengeksekusialgoritma. Jika Wi(n) adalah jumlah operasi yang dilakukan pada setiap proses par-alel maka,

W (n) =S(n)

∑i=1

Wi(n) (2.16)

Beberapa metode perancangan algoritma pada PRAM model adalah denganmenggunakan balanced trees dan pointer jumping. Pada sub bab ini akan dijelaskankedua teknik perancangan tersebut.

Balanced Trees

Istilah balanced trees yang digunakan pada PRAM hanya berupa konseptualsaja dan tidak berhubungan dengan struktur data tetapi lebih kepada aliran datanya.Metode balanced trees digunakan untuk merancang work-efficient algoritma padakasus-kasus seperti prefix sum, broadcast, dan perhitungan matrik. Gambar 2.25merupakan salah satu contoh aliran data pada algoritma prefix sum yang bentukaliran datanya mirip dengan balanced trees.

Pointer Jumping

Pointer jumping atau pointer doubling adalah metode pada PRAM yang digu-nakan untuk melakukan suatu proses komputasi pada struktur data linked list atautree. Salah satu aplikasi dari pointer jumping adalah mencari jalan dari leaf ter-bawah ke root dari suatu struktur data tree.

2.7.2 Parallel Prefix Sum

Parallel prefix sum adalah suatu algoritma paralel yang digunakan untuk menam-bahkan isi dari seluruh komponen array satu dimensi. Aplikasi pengembangan dariprefix sum sangatlah banyak dan merupakan metode dasar yang biasa digunakanuntuk merancang algoritma paralel yang lain. Prefix sum, biasa juga disebut denganscan, mempunyai dua jenis variasi yaitu metode inclusive scan dan metode exclu-

sive scan. Inclusive scan merupakan prefix sum dimana setiap elemen pada indexj akan ditambahkan dengan elemen pada index dibawahnya termasuk elemen pada

36

Page 59: RANCANG BANGUN RAY TRACING PIPELINE PADA …web.ee.its.ac.id/~fuad/papers/THESIS.pdfreza fuad rachmadi 2208 205 740 dosen pembimbing: prof. dr. ir. mauridhi hery p., meng. program

Gambar 2.25: Contoh aliran data pada PRAM balanced trees [CP09]

Algoritma 2.4 Algoritma paralel sederhana untuk sum scan [SHG08]for d := 1 to log2n do

forall k in parallel do

if k ≥ 2d then x[k] = x[k−2d−1]+ x[k];

index j, sedangkan exclusive scan mempunyai pengertian yang sama dengan in-

clusive scan tetapi elemen pada index j tidak ikut ditambahkan. Persamaan 2.17merupakan persamaan dari metode inclusive scan.

[a0,a1, . . . ,an−1]⇒ [a0,(a0 +a1), . . . ,(a0 +a1 + . . .+an−1)] (2.17)

Algoritma 2.4 merupakan algoritma sederhana dan tidak work-efficient untukmelakukan prefix sum pada array x dengan jumlah elemen n dan jumlah prosessoradalah k. Algoritma tersebut menganggap bahwa jumlah prosessor sama denganjumlah elemen yang ada pada array. Pada mesin yang mengolah data lebih banyakdari jumlah prosessor, maka akan terjadi kondisi race, yaitu kondisi dimana hasilperhitungan suatu thread ditimpa dengan hasil perhitungan thread yang lain, yangterjadi karena eksekusi paralel yang dilakukan tidak secara simultan. Untuk mengu-rangi jumlah prosessor yang dibutuhkan untuk melakukan perhitungan pada suatuarray dengan besar n, buffer tambahan digunakan dalam algoritma. Penggunaandouble buffer memang mengurangi jumlah prosessor yang dibutuhkan untuk suatudata array dengan jumlah elemen n, tetapi tidak menyelesaikan permasalahan ji-

37

Page 60: RANCANG BANGUN RAY TRACING PIPELINE PADA …web.ee.its.ac.id/~fuad/papers/THESIS.pdfreza fuad rachmadi 2208 205 740 dosen pembimbing: prof. dr. ir. mauridhi hery p., meng. program

Algoritma 2.5 Prefix sum dengan double buffer [SHG08]for d := 1 to log2n do

forall k in parallel do

if k ≥ 2d then

x[out][k] = x[in][k−2d−1]+ x[in][k]else

x[out][k] = x[in][k]swap(in, out)

ka data array masukan sangat besar. Algoritma 2.5 merupakan pseudocode darialgoritma scan dengan menggunakan double buffer.

Algoritma Scan Yang Work-Efficient

Perancangan algoritma scan yang work-efficient diambil dari makalah [Ble90]dan dikembangkan pada makalah [HSO07]. Pada makalah tersebut digunakan bal-

anced trees untuk melakukan penambahan setiap elemen dari array. Balanced trees

yang dimaksud dari algoritma ini adalah aliran data untuk setiap proses dan bukanstruktur data tree. Binary tree yang digunakan pada algoritma ini adalah binary tree

dengan n leaf, mempunyai d = log2n level, dan setiap level mempunyai 2d node.Terdapat dua tahapan dalam algoritma yang dijabarkan pada makalah [HSO07],yaitu tahapan up-sweep (tahapan ini diambil dari makalah [Ble90]) dan tahapandown-sweep.

Tahapan up-sweep merupakan tahapan untuk mencari nilai penambahan darimasing-masing elemen pada array secara parsial. Tahapan up-sweep diilustrasikanpada gambar 2.26 dan implementasinya pada pseudocode 2.6. Hasil dari tahapanini adalah jumlah masing-masing parsial data (disimpan pada akhir elemen untuksetiap parsial data) dan hasil penambahan total (disimpan pada elemen terakhir padaarray) seperti yang terlihat pada gambar 2.26. Tahapan selanjutnya adalah down-sweep, yaitu tahapan untuk mengisi seluruh nilai pada elemen lain yang bukanmerupakan elemen terakhir dari parsial data dengan menggunakan hasil yang telahdidapatkan pada tahapan sebelumnya. Ilustrasi dari tahapan down-sweep terdapatpada gambar 2.27 dan pseudocode dari tahapan tersebut dapat dilihat pada algorit-ma 2.7. Tahapan down-sweep merupakan tahapan traversal menurun untuk men-empatkan nilai-nilai penjumlahan yang tepat untuk setiap elemen pada array.

38

Page 61: RANCANG BANGUN RAY TRACING PIPELINE PADA …web.ee.its.ac.id/~fuad/papers/THESIS.pdfreza fuad rachmadi 2208 205 740 dosen pembimbing: prof. dr. ir. mauridhi hery p., meng. program

Gambar 2.26: Tahapan up-sweep pada algoritma scan [HSO07]

Algoritma 2.6 Up-sweep pseudocode [HSO07]for d = 0 to log2n−1 do

forall k = 0 to n−1 by 2d+1 in parallel do

x[k +2d +11] = x[k +2d1]+ x[k +2d +11]

Gambar 2.27: Tahapan down-sweep pada algoritma scan [HSO07]

Algoritma 2.7 Down-sweep pseudocode [HSO07]x[n−1] = 0for d = log2n−1 down to 0 do

forall k = 0 to n−1 by 2d +1 in parallel do

t = x[k +2d−1]x[k +2d−1] = x[k +2d +1−1]x[k +2d +1−1] = t + x[k +2d +1−1]

39

Page 62: RANCANG BANGUN RAY TRACING PIPELINE PADA …web.ee.its.ac.id/~fuad/papers/THESIS.pdfreza fuad rachmadi 2208 205 740 dosen pembimbing: prof. dr. ir. mauridhi hery p., meng. program

[Halaman ini sengaja dikosongkan]

Page 63: RANCANG BANGUN RAY TRACING PIPELINE PADA …web.ee.its.ac.id/~fuad/papers/THESIS.pdfreza fuad rachmadi 2208 205 740 dosen pembimbing: prof. dr. ir. mauridhi hery p., meng. program

BAB III

RANCANGAN SISTEM

Sistem penggambaran tiga dimensi yang dirancang, menggunakan metode ray

tracing untuk penggambarannya dan struktur data uniform grid untuk mempercepatproses perhitungannya. Gambar 3.1 merupakan flowchart sederhana dari sistem.Ada empat tahapan yang diimplementasikan pada sistem yaitu load model atauscene, konstruksi struktur uniform grid, inisialisasi kamera, dan uniform grid traver-

sal.

Permasalahan utama pada pemrograman SIMT pada pemrograman paralel den-gan menggunakan standar CUDA adalah kebutuhan memori yang harus tetap dantidak bisa berubah pada saat kernel dieksekusi pada media. Metode umum yang di-gunakan untuk penggambaran dengan menggunakan ray tracing dan uniform grid

sebagai accelerated structure adalah dengan menggunakan STL vektor dan linked

list. Pada pemrogram SIMT pada CUDA, STL maupun linked list tidak bisa digu-nakan kerena memiliki memori yang tidak tetap sehingga diperlukan metode tam-bahan untuk mengimplementasikan sistem.

Tahapan pertama dan ketiga dilakukan dengan eksekusi serial pada CPU sedan-gkan tahapan kedua dan keempat dilakukan dengan eksekusi paralel pada platform

CUDA dan pada tahapan inilah pembahasan akan lebih mendetail pada sub babberikutnya. Sebelum membahas permasalahan sistem, perlu dirancang suatu skemastruktur data yang robust dan mudah diakses secara random dan paralel. Rancan-gan struktur data nantinya akan menentukan kecepatan pembentukan struktur dataitu sendiri dan proses uniform grid traversal yang akan banyak mengambil infor-masi dari struktur data yang dibentuk.

3.1 Rancangan Struktur Data

Permasalahan utama yang ada pada struktur uniform grid adalah setiap cell pa-da uniform grid mungkin akan memotong lebih dari satu polygon sehingga diper-lukan struktur tambahan yang menghubungkan antara struktur uniform grid denganstruktur data polygon. Pada penelitian digunakan satu struktur tambahan yang dina-makan triangle offset dan digunakan untuk menghubungkan antara struktur uniform

grid dengan struktur triangle data (data polygon).

41

Page 64: RANCANG BANGUN RAY TRACING PIPELINE PADA …web.ee.its.ac.id/~fuad/papers/THESIS.pdfreza fuad rachmadi 2208 205 740 dosen pembimbing: prof. dr. ir. mauridhi hery p., meng. program

Gambar 3.1: Flowchart sistem secara sederhana

Rancangan struktur data yang digunakan pada penelitian ini terbagi menjaditiga bagian besar yaitu struktur uniform grid, triangle offset, dan triangle data.Masing-masing data pada struktur uniform grid terdiri dari 2 digit angka yang meru-pakan index awal dan index akhir dari triangle offset. Kedua, struktur triangle offset

adalah struktur yang digunakan untuk mencatat polygon-polygon yang masuk padasuatu cell dan data yang disimpan pada struktur triangle offset adalah index daritriangle data. Struktur terakhir adalah triangle data yang berisi kumpulan polygon-

polygon dari scene.

Secara skematik, rancangan struktur data uniform grid yang digunakan terda-pat pada gambar 3.2. Pada gambar tersebut, pada kiri atas adalah struktur uni-

form grid yang berkolerasi dengan struktur triangle offset. Pada kiri bawah terda-pat struktur triangle offset yang berkolerasi dengan struktur triangle data. Panahdan kolom berwarna hijau merupakan kolerasi yang terbentuk antara satu strukturdengan struktur lainnya. Rancangan struktur data tersebut mirip dengan rancan-gan struktur data yang digunakan pada makalah [KS09, IDC09] yang melakukanpenelitian yang bertujuan sama yaitu penggambaran tiga dimensi dengan metoderay tracing dan struktur data uniform grid.

42

Page 65: RANCANG BANGUN RAY TRACING PIPELINE PADA …web.ee.its.ac.id/~fuad/papers/THESIS.pdfreza fuad rachmadi 2208 205 740 dosen pembimbing: prof. dr. ir. mauridhi hery p., meng. program

Gambar 3.2: Rancangan struktur data

43

Page 66: RANCANG BANGUN RAY TRACING PIPELINE PADA …web.ee.its.ac.id/~fuad/papers/THESIS.pdfreza fuad rachmadi 2208 205 740 dosen pembimbing: prof. dr. ir. mauridhi hery p., meng. program

Algoritma 3.1 Pemetaan AABB ke koordinat uniform gridUGCoord.x = floor(Coord.x - UGMin.x) / SizePerGrid.x

UGCoord.y = floor(Coord.y - UGMin.y) / SizePerGrid.y

UGCoord.z = floor(Coord.z - UGMin.z) / SizePerGrid.z

3.2 Konstruksi Struktur Uniform Grid

Konstruksi struktur uniform grid merupakan proses pembuatan struktur uni-

form grid sesuai dengan yang telah dirancang pada sub bab 3.1. Pada tahapan initerdapat 6 proses yang dilakukan secara serial dan masing-masing proses berjalansecara paralel. Proses-proses tersebut adalah inisialisasi, overlapped polygon, par-

allel prefix sum, perhitungan perpotongan cell pada uniform grid, paralel sort, danscanning data. Proses dan metode yang digunakan pada proses konstruksi strukturuniform grid diambil dari makalah penulis, [FH09].

3.2.1 Inisialisasi

Proses inisialisasi adalah proses menentukan resolusi uniform grid yang digu-nakan dan memesan memori yang dibutuhkan untuk menyimpan struktur uniform

grid (pada gambar 3.2 terdapat pada sebelah kiri atas). Persamaan 2.15 digunakanuntuk menentukan resolusi uniform grid dengan nilai variabel k = 5. Nilai k = 5diambil dari percobaan pada makalah [WIK+06] yang menghasilkan nilai k = 5adalah nilai k terbaik untuk digunakan pada penentuan struktur uniform grid. Prosesini berjalan secara serial pada CPU karena hanya terdiri dari beberapa perhitungandan pemesanan memori untuk struktur data uniform grid sehingga tidak diperlukanproses paralel.

3.2.2 Overlapped Polygon

Overlapped polygon merupakan proses untuk mencatat berapa cell yang berpo-tongan dengan polygon dari model input serta proses perhitungannya bersifat inde-penden pada satu polygon. Proses perhitungan berjalan secara paralel dengan thread

berjumlah banyaknya polygon dari input model. Metode perhitungannya menggu-nakan pemetaan dari AABB suatu polygon ke koordinat uniform grid (koordinatdengan x, y, dan z adalah cell index dan (0,0,0) berada di AABB uniform grid yangpaling minimum). Total perhitungan yang dilakukan pada proses ini akan digu-nakan untuk memesan memori yang dibutuhkan oleh struktur data triangle offset.Pseudocode sederhana untuk melakukan pemetaan dari koordinat katersian ke ko-ordinat uniform grid dapat dilihat pada algoritma 3.1.

44

Page 67: RANCANG BANGUN RAY TRACING PIPELINE PADA …web.ee.its.ac.id/~fuad/papers/THESIS.pdfreza fuad rachmadi 2208 205 740 dosen pembimbing: prof. dr. ir. mauridhi hery p., meng. program

Algoritma 3.2 Perhitungan perpotongan cell>> Find AABB Polygon

>> Convert AABB Polygon to Uniform Grid Coord.

>> In Uniform Grid Coord

>> Loop from Min. AABB to Max. AABB

>> Save Polygon Index and Cell Index

3.2.3 Paralel Prefix Sum

Proses berikut adalah melakukan penambahan terhadap semua hasil yang di-dapatkan pada proses overlapped polygon untuk mencari total memori yang dibu-tuhkan untuk struktur triangle offset. Pada proses sebelumnya, data hasil keluarandisimpan dalam array dan proses selanjutnya adalah melakukan penambahan untuksetiap elemen pada array tersebut. Proses penambahan tersebut dinamakan prefix

sum. Persamaan 3.1 merupakan persamaan inclusive scan yang digunakan padaproses ini dengan menggunakan pustaka CUDPP (CUDA Data Parallel Process-

ing) [SHG08, SHZO07].

[a0,a1, . . . ,an−1]⇒ [a0,(a0 +a1), . . . ,(a0 +a1 + . . .+an−1)] (3.1)

3.2.4 Perhitungan Perpotongan Cell

Perhitungan perpotongan cell adalah proses mencatatan cell mana saja yangberpotongan dengan polygon. Proses ini mirip dengan proses kedua, yaitu over-

lapped polygon, tetapi pada proses ini bukan menghitung tetapi mencatat cell manasaja yang berpotongan dengan polygon dari model input. Algoritma sederhana yangdigunakan pada proses ini dapat dilihat pada algoritma 3.2.

Pada algortima tersebut ada 4 buah langkah. Langkah pertama adalah mencariAABB dari polygon yang sedang diproses. Berikutnya melakukan konversi darikoordinat kartesian ke koordinat uniform grid. Lakukan perulangan dari AABBminimum ke AABB maximum yang telah dikonversi ke koordinat uniform grid

lalu catat index cell dan index polygon yang sedang diproses. Data index cell akandisimpan pada struktur data sementara sedangkan data index polygon akan disimpanpada struktur triangle offset pada struktur data utama. Struktur data sementara yangberisi index cell akan dihilangkan setelah semua proses konstruksi telah dilewati.

3.2.5 Paralel Sort

Langkah berikutnya adalah melakukan sorting berdasarkan index cell sehinggamembentuk data yang urut dari index cell terkecil ke yang terbesar. Proses pen-

45

Page 68: RANCANG BANGUN RAY TRACING PIPELINE PADA …web.ee.its.ac.id/~fuad/papers/THESIS.pdfreza fuad rachmadi 2208 205 740 dosen pembimbing: prof. dr. ir. mauridhi hery p., meng. program

Algoritma 3.3 Scanning data>> IF next index cell is different then

>> endindex = this triangle offset index

>> ENDIF

>> IF previous index cell is different then

>> startindex = this triangle offset index

>> ENDIF

gurutan dilakukan dengan menggunakan algoritma paralel radix sort yang terdapatpada makalah [SHG09], yang sampai saat ini merupakan algoritma paralel sorting

yang paling cepat yang pernah diimplementasikan pada platform CUDA. Algoritmadari paralel radix sort tersebut telah diimplementasikan pada pustaka CUDPP danpustaka tersebut digunakan pada proses ini.

3.2.6 Scanning Data

Scanning data adalah proses mencatatan index awal dan index akhir yang meny-impan data polygon yang berpotongan dengan index cell. Proses scanning data di-lakukan secara paralel dengan thread sebanyak jumlah overlapped polygon yangtelah dihitung pada proses kedua. Algoritma 3.3 adalah algoritma yang digunakanuntuk melakukan scanning data. Pada algoritma tersebut, ditekankan bahwa sete-lah melakukan proses sorting maka data dianggap akan urut dari index cell terkecilke index cell terbesar sehingga yang diperlukan adalah melihat data pada index cell

sekarang dengan data pada index cell sebelumnya dan data pada index cell selan-jutnya, jika data index cell sekarang dengan data index cell sebelumnya tidak samamaka berarti index triangle offset sekarang adalah index awal dari cell sedangkanjika data index cell sekarang tidak sama dengan data index cell selanjutnya makaindex triangle offset sekarang merupakan index terakhir pada triangle offset daricell.

3.2.7 Flowchart Konstruksi Struktur Uniform Grid

Gambar 3.3 merupakan flowchart konstruksi struktur data uniform grid beser-ta data masukan dan data keluaran yang digunakan. Data masukan dan keluaranyang disertakan hanya struktur data yang telah dirancang pada sub bab sebelumnya.Triangle data akan selesai dan tidak akan diubah setelah tahapan load model sedan-gkan triangle offset tidak akan diubah lagi setelah proses paralel sort. Data uniform

grid adalah data yang paling akhir dirubah yaitu pada proses scanning data.

46

Page 69: RANCANG BANGUN RAY TRACING PIPELINE PADA …web.ee.its.ac.id/~fuad/papers/THESIS.pdfreza fuad rachmadi 2208 205 740 dosen pembimbing: prof. dr. ir. mauridhi hery p., meng. program

Gambar 3.3: Flowchart konstruksi struktur uniform grid

47

Page 70: RANCANG BANGUN RAY TRACING PIPELINE PADA …web.ee.its.ac.id/~fuad/papers/THESIS.pdfreza fuad rachmadi 2208 205 740 dosen pembimbing: prof. dr. ir. mauridhi hery p., meng. program

Gambar 3.4: Gram-Schmidt Orthonormalization

3.3 Ray Tracing Traversal

Tahapan ray tracing traversal dibagi menjadi 3 proses besar yaitu inisialisasi,deteksi perpotongan ray dengan AABB dari scene dan traversal. Metode yangdigunakan untuk proses traversal adalah metode yang dipaparkan pada makalah[AW87] dan juga telah dipaparkan pada bab 2.5.3.

3.3.1 Inisialisasi

Proses inisialisasi adalah proses perhitungan komponen arah primary ray yangditembakkan dari kamera ke dalam scene. Terdapat dua proses dalam tahapan in-isialisasi yaitu mengorthogonalkan vektor kamera dan menentukan vektor arah daripusat kamera pada setiap titik pada gambar hasil dengan resolusi yang diinginkan.

Gram-Schmidt Orthonormalization

Gram-schmidt orthonormalization adalah proses pencarian tiga buah vektorarah kamera yang orthogonal (l,u,v). Tiga buah vektor arah tersebut akan digu-nakan untuk mencari vektor arah pada setiap titik dari gambar dengan resolusi yangdiinginkan. Proses pertama yang dilakukan adalah mencari vektor l dengan menghi-tung normal vektor dari vektor arah lookat. Setelah itu, mencari vektor v yaitu den-gan menggunakan croos product antara vektor l dengan vektor up lalu mengubahvektor hasilnya ke normal vektor. Terakhir, melakukan perhitungan vektor u yaitudengan melakukan cross product antara vektor v dengan vektor l.

48

Page 71: RANCANG BANGUN RAY TRACING PIPELINE PADA …web.ee.its.ac.id/~fuad/papers/THESIS.pdfreza fuad rachmadi 2208 205 740 dosen pembimbing: prof. dr. ir. mauridhi hery p., meng. program

Gambar 3.5: Perhitungan vektor arah ray

l =lookat− campos‖lookat− campos‖

(3.2)

v =l×up‖l×up‖

(3.3)

u = v× l (3.4)

Perhitungan Vektor Arah Ray

Vektor arah ray merupakan vektor arah yang berorientasi pada titik-titik yangada pada gambar yang akan dihasilkan. Pada gambar 3.5 merupakan skema darikamera yang digunakan untuk menghitung ll, yaitu vektor yang digunakan sebagaiacuan titik (0,0) pada gambar yang dihasilkan. Vektor l, v, dan u merupakan vek-tor arah kamera yang saling orthogonal yang dihasilkan pada proses sebelumnyasedangkan variabel a adalah aspek rasio dari resolusi gambar (panjang/tinggi) danvariabel d dihasilkan dari d = 1

tan( f ovy/2) , parameter f ovy adalah sudut kebebasandari kamera.

ll = campos+dl−av−u (3.5)

Proses selanjutnya seletah melakukan perhitungan vektor ll adalah menghitungvektor arah sesungguhnya untuk setiap titik pada gambar. Algoritma 3.4 adalahalgoritma yang digunakan untuk melakukan perhitungan vektor arah untuk setiap

49

Page 72: RANCANG BANGUN RAY TRACING PIPELINE PADA …web.ee.its.ac.id/~fuad/papers/THESIS.pdfreza fuad rachmadi 2208 205 740 dosen pembimbing: prof. dr. ir. mauridhi hery p., meng. program

Algoritma 3.4 Algoritma perhitungan vektor arah ray

l l = campos + d l − av − u ;f o r ( j = 0 ; j < VRES ; j ++)

f o r ( i = 0 ; i < HRES ; i ++) p = l l + 2 av ( double ) i / HRES + 2u ( double ) j / VRES ;v e k t o r _ a r a h = p − campos ;...

titik pada gambar dan persamaan 3.6 digunakan untuk perhitungan vektor arah un-tuk setiap titik pada gambar.

p = ll+2av( x

resx

)+2u

(y

resy

)(3.6)

3.3.2 Perpotongan Ray-AABB Scene

Perhitungan perpotongan ray dengan AABB dari scene digunakan untuk menge-tahui koordinat uniform grid pertama yang digunakan untuk memulai traversal padastruktur uniform grid. Metode deteksi perpotongan antara ray dengan AABB yangdigunakan adalah metode slabs yang telah dijelaskan pada bab 2.3.1. Hasil keluarandari proses ini adalah koordinat dalam sistem koordinat uniform grid yang pertamakali berpotongan dengan ray.

3.3.3 Traversal

Proses terakhir adalah melakukan proses traversal dari koordinat uniform grid

yang pertama kali berpotongan dengan ray sampai didapatkan ray yang berpoton-gan dengan suatu polygon atau koordinat uniform grid telah keluar dari AABBscene. Metode traversal yang digunakan adalah metode yang dipaparkan padamakalah [AW87] dan telah dijelaskan pada bab 2.5.3.

Setiap berganti koordinat, dilakukan perhitungan perpotongan antara ray den-gan segitiga yang masuk dalam kelompok segitiga yang berpotongan dengan cell

pada uniform grid. Metode deteksi perpotongan antara ray dengan segitiga yangdigunakan adalah metode yang dipaparkan pada makalah [MT97] dan dijelaskanpada bab 2.3.2.

50

Page 73: RANCANG BANGUN RAY TRACING PIPELINE PADA …web.ee.its.ac.id/~fuad/papers/THESIS.pdfreza fuad rachmadi 2208 205 740 dosen pembimbing: prof. dr. ir. mauridhi hery p., meng. program

Gambar 3.6: Ray tracing dengan shadow ray1

3.4 Shadow Ray

Shadow ray adalah perjalanan ray dari tempat pertama ray tersebut berpoton-gan dengan suatu polygon ke pusat sumber cahaya dan menentukan apakah cahayadari sumber cahaya ke titik tersebut terhalang oleh polygon lain atau tidak. Proses-proses yang terjadi pada perhitungan shadow ray sama dengan perhitungan ray trac-

ing traversal, hanya saja pusat ray dan arahnya sudah jelas yaitu titik perpotonganray dengan segitiga yang mempunyai vektor arah menuju pusat sumber cahaya.Keluaran yang dihasilkan dari proses ini adalah titik terlahang oleh polygon lain(true) atau titik tidak terlahang oleh polygon lain (false). Gambar 3.6 merupakanskema ray tracing dengan menggunakan shadow ray.

Pada sistem, shadow ray yang diimplementasikan masih menggunakan metodehard shadow dimana diasumsikan pusat sumber cahaya berupa sebuah bola dan me-mancarkan cahaya secara uniform. Metode lain yang dapat dikembangkan adalahmetode soft shadow yaitu dimana bentuk dari sumber cahaya dapat berupa perse-gi dan tabung sehingga cahaya yang dipancarkan tidak uniform dan menimbulkanefek shadow yang tidak fokus (blur).

Ray tracing dengan menggunakan shadow ray menimbulkan penambahan dayakomputasi sekitar 1.5 sampai 2 kali lebih besar. Hal tersebut karena perhitunngantambahan yang dilakukan pada shadow ray yang kurang lebih sama dengan dayakomputasi yang digunakan untuk ray tracing traversal sehingga akan menurunkanperforma sistem tetapi menghasilkan gambar dengan kualitas yang lebih bagus.

1Diambil dari http://www.codinghorror.com/blog/archives/001073.html

51

Page 74: RANCANG BANGUN RAY TRACING PIPELINE PADA …web.ee.its.ac.id/~fuad/papers/THESIS.pdfreza fuad rachmadi 2208 205 740 dosen pembimbing: prof. dr. ir. mauridhi hery p., meng. program

[Halaman ini sengaja dikosongkan]

Page 75: RANCANG BANGUN RAY TRACING PIPELINE PADA …web.ee.its.ac.id/~fuad/papers/THESIS.pdfreza fuad rachmadi 2208 205 740 dosen pembimbing: prof. dr. ir. mauridhi hery p., meng. program

BAB IV

PENGUJIAN SISTEM

Pengujian pada sistem dilakukan untuk mengukur kinerja sistem yang telahdirancang dan diimplementasikan. Pada penelitian ini, sistem akan diuji coba den-gan dua kategori pengujian yaitu evaluasi kinerja pembuatan struktur uniform grid

dan evaluasi kinerja ray tracing traversal. Evaluasi kinerja pembuatan struktur uni-

form grid dilakukan untuk mengetahui kinerja sistem terhadap pembuatan strukturuniform grid yang merupakan tahapan awal pada algoritma ray tracing. Pengu-jian berikutnya adalah evaluasi kinerja ray tracing traversal yang digunakan untukmengetahui kinerja sistem pada penggambaran pada model yang static. Pada bab4.3 dibahas mengenai optimasi sistem yang dapat dilakukan serta efek yang ditim-bulkan.

Spesifikasi sistem adalah spesifikasi perangkat keras dan perangkat lunak yangdibutuhkan untuk menjalankan sistem. Spesifikasi perangkat keras dan perangkatlunak minimum yang dibutuhkan untuk dapat menjalankan sistem dengan baikadalah komputer dengan kartu grafik yang mendukung standar NVIDIA CUDA(GeForce seri 8 atau lebih baru) dan sistem operasi Linux dengan driver dan pusta-ka CUDA.

4.1 Evaluasi Kinerja Pembuatan Struktur Uniform Grid

Evalusi kinerja pembuatan struktur uniform grid dilakukan dengan menggu-nakan beberapa model yang banyak digunakan pada penelitian-penelitian yang se-jenis seperti model-model pada repositori stanford, model conference room, fairy

forest dan sponza atrium. Kinerja yang diperhatikan dalam evaluasi ini adalah wak-tu pembuatan/konstruksi struktur uniform grid dan memori GPU yang digunakanuntuk struktur uniform grid.

4.1.1 Spesifikasi Pengujian

Pada pengujian dan evaluasi kinerja pembuatan struktur uniform grid yang akandilakukan, digunakan spesifikasi perangkat keras dan perangkat lunak dengan rin-cian sebagai berikut

• Kartu grafik NVIDIA GeForce GTX 260 896 MB DDR3

• Sistem operasi Linux Debian squeeze

53

Page 76: RANCANG BANGUN RAY TRACING PIPELINE PADA …web.ee.its.ac.id/~fuad/papers/THESIS.pdfreza fuad rachmadi 2208 205 740 dosen pembimbing: prof. dr. ir. mauridhi hery p., meng. program

• NVIDIA CUDA Toolkit 2.3 dan NVIDIA CUDA SDK 2.3

Data yang diambil dalam pengujian ini adalah waktu pembuatan atau konstruksistruktur uniform grid (tidak termasuk pengiriman data ke memori GPU) dan mem-ori GPU yang dibutuhkan untuk menyimpan seluruh struktur scene dan strukturuniform grid. Waktu pembuatan atau konstruksi struktur uniform grid merupakanindikasi awal apakah suatu sistem mempunyai algoritma paralel yang bagus atautidak. Indikasi ini akan dipertanyakan kembali pada saat pengujian ray tracing

traversal karena struktur data uniform grid yang dibangun akan mempengaruhi kin-erja dari ray tracing traversal.

4.1.2 Hasil Pengujian

Gambar 4.1 merupakan visualisasi dari struktur uniform grid model sedangkantabel data hasil pengujian untuk pembuatan struktur uniform grid dapat dilihat padatabel 4.1 dan 4.2. Pengambilan waktu konstruksi yang dibutuhkan dilakukan setelahsemua data scene (polygon-polygon) selesai di muat ke dalam memori GPU.

Data hasil pengujian pada tabel 4.1 memuat informasi tentang waktu pemben-tukan struktur uniform grid dan kebutuhan total memori GPU untuk struktur uni-

form grid dan polygon-polygon pada scene. Tabel 4.2 memuat informasi tentangbesar struktur triangle offset yang digunakan pada masing-masing model.

4.1.3 Diskusi dan Evaluasi

Data hasil pengujian pada tabel 4.1 memperlihatkan bahwa seiring denganmeningkatnya jumlah polygon yang ada pada model atau scene yang akan digambar,maka waktu pembuatan struktur uniform grid yang dibutuhkan semakin meningkatpula. Tetapi hal tersebut tidak terjadi pada model sponza dengan model horse. Mod-el horse mempunyai jumlah polygon lebih banyak sekitar dua puluh ribu daripadajumlah polygon pada model sponza tetapi waktu pembuatan struktur uniform grid

lebih singkat. Fenomena tersebut terjadi karena resolusi dan besar struktur trian-

gle offset dari horse lebih kecil daripada model sponza sehingga banyaknya datayang harus diproses menjadi lebih sedikit. Data paralel yang harus diproses un-tuk setiap tahapan dapat dilihat pada tabel 4.3. Dari kedua hal tersebut maka dapatdisimpulkan bahwa pada sistem yang dirancang waktu pembuatan struktur uniform

grid dipengaruhi oleh jumlah polygon dan besar struktur triangle offset. Strukturtriangle offset digunakan untuk mengatasi permasalahan overlapped polygon yangterjadi pada cell pada struktur uniform grid.

54

Page 77: RANCANG BANGUN RAY TRACING PIPELINE PADA …web.ee.its.ac.id/~fuad/papers/THESIS.pdfreza fuad rachmadi 2208 205 740 dosen pembimbing: prof. dr. ir. mauridhi hery p., meng. program

(a) Model bunny (b) Model sponza atrium

(c) happy budha

Gambar 4.1: Visualisasi hasil konstruksi struktur uniform grid

Tabel 4.1: Hasil Pengujian Pembuatan Struktur Uniform Grid

Model / Scene Polygon Resolusi GridWaktu

Konstruksi(ms)

KebutuhanMemori(MB)

Wood Doll 6018 20x48x34 2,45 0,41Bunny 69451 77x77x60 6,14 6Sponza 76148 122x55x58 10,80 7,6Horse 96966 50x109x91 6,81 8,2Fairy Forest 174117 151x39x151 18,77 13,22Conference 282755 211x51x134 24,42 18,73Hand 654666 239x168x82 24,26 53,2Dragon 871414 240x170x108 34,82 72,62Happy Budha 1087716 131x319x131 44,08 90,92Blade 1765388 189x320x147 71,30 148,94xyzrgb_dragon 7219045 461x256x307 193,51 571,33

55

Page 78: RANCANG BANGUN RAY TRACING PIPELINE PADA …web.ee.its.ac.id/~fuad/papers/THESIS.pdfreza fuad rachmadi 2208 205 740 dosen pembimbing: prof. dr. ir. mauridhi hery p., meng. program

Tabel 4.2: Struktur Triangle Offset

Model / Scene Polygon Resolusi GridBesar StrukturTriangle Offset

Wood Doll 6018 20x48x34 24436Bunny 69451 77x77x60 239955Sponza 76148 122x55x58 517016Horse 96966 50x109x91 273430Fairy Forest 174117 151x39x151 1164048Conference 282755 211x51x134 1176884Hand 654666 239x168x82 1467798Dragon 871414 240x170x108 2379395Happy Budha 1087716 131x319x131 3094383Blade 1765388 189x320x147 5372964xyzrgb_dragon 7219045 461x256x307 12335855

Tabel 4.3: Besar data paralel yang ditangani setiap tahapan

Tahapan Jumlah data paralel yang ditanganiInisialisai Serial CodeOverlapped Polygon Jumlah PolygonParalel Prefix Sum Jumlah PolygonPerhitungan Perpotongan Cell Jumlah PolygonParalel Sorting Besar Triangle OffsetScanning Data Besar Triangle Offset

Tabel 4.4: Perbandingan waktu konstruksi dengan sistem lain

Model / Scene Sistem yangdirancang

Sistem padamakalah [KS09]

Sistem padamakalah [LD08]

Bunny 6,14 ms n/a 10 msSponza 10,80 ms 13 ms n/a

Conference 24,42 ms 27 ms 120 msFairy Forest 18,77 ms 24 ms n/a

Dragon 34,82 ms n/a 110 msHappy Budha 44,08 ms n/a 140 ms

56

Page 79: RANCANG BANGUN RAY TRACING PIPELINE PADA …web.ee.its.ac.id/~fuad/papers/THESIS.pdfreza fuad rachmadi 2208 205 740 dosen pembimbing: prof. dr. ir. mauridhi hery p., meng. program

Gambar 4.2: Perbandingan jumlah polygon dengan besar triangle offset

Fenomena lain yang muncul adalah perbandingan jumlah polygon dengan be-sar struktur triangle offset. Pada gambar 4.2 dapat dilihat bahwa pada model-modelyang digunakan perbandingan sangatlah kecil (sekitar 0.1-0.5) yang artinya semakinkecil perbandingan maka semakin banyak polygon yang overlapped dan semakinbesar struktur triangle offset yang harus digunakan. Hal yang sangat mempengaruhiadalah besar resolusi dari uniform grid yang digunakan. Pada makalah [KS09]menjabarkan bahwa resolusi yang paling optimal adalah resolusi yang mendekatibentuk bujur sangkar dan pada makalah tersebut digunakan metode heuristik un-tuk menentukan resolusi uniform grid yang digunakan. Sistem menggunakan pen-dekatan yang dijabarkan pada makalah [Ize09] yang menggunakan volume scene,banyaknya polygon, diagonal scene, dan user konstanta. Pendekatan tersebut cukupefisien tetapi bukan pendekatan yang paling baik karena tidak memasukkan unsurbesar AABB pada masing-masing polygon sehingga jika terdapat perbedaan besarpolygon yang sangat tinggi, struktur menjadi tidak efisien.

Tabel 4.4 merupakan perbandingan antara sistem yang dirancang dengan sistemyang dijabarkan pada makalah [KS09] dan sistem yang dijabarkan pada makalah[LD08]. Pada makalah [KS09] digunakan pendekatan yang kurang lebih samahanya saja pada penentuan resolusi grid-nya digunakan metode heuristik sehing-ga sangat mendapatkan resolusi grid yang berbeda untuk setiap model. Makalah[LD08] menggunakan struktur hashed grid serta menggunakan CPU sebagai dayakomputasinya. Hasil pada tabel 4.4 memperlihatkan bahwa terjadi peningkatan

57

Page 80: RANCANG BANGUN RAY TRACING PIPELINE PADA …web.ee.its.ac.id/~fuad/papers/THESIS.pdfreza fuad rachmadi 2208 205 740 dosen pembimbing: prof. dr. ir. mauridhi hery p., meng. program

performa untuk pembuatan struktur uniform grid antara CPU sebagai daya kom-putasinya dengan GPU sebagai daya komputasinya. Peningkatan performa me-mang terlihat tidak terlalu tinggi (sekitar 2 sampai 3 kali lebih cepat) dibandingkandengan perbedaan daya komputasi antara CPU dan GPU. Hal tersebut dikarenakanmetode ray tracing tidak terlalu cocok diparalelkan pada arsitektur SIMD (Single

Instruction Multiple Data) / SIMT (Single Instruction Multiple Thread), dan ji-ka CPU mempunyai jumlah prosessor yang sama maka dapat dipastikan performapada CPU akan jauh lebih bagus karena mempunyai arsitektur MIMD (Multiple In-

struction Multiple Data). Sedangkan perbandingan antara sistem yang dirancangdengan sistem yang kurang lebih sama yang dipaparkan pada makalah [KS09], di-dapatkan peningkatan yang tidak terlalu signifikan karena kedua sistem tersebutmenggunakan analogi dan algoritma pembentukan struktur uniform grid yang ku-rang lebih sama serta kedua sistem tersebut sama-sama berjalan pada GPU denganmenggunakan standar CUDA.

4.2 Evaluasi Kinerja Ray Tracing Traversal

Evaluasi kinerja ray tracing traversal dilakukan untuk mengetahui performansidari sistem ketika melakukan penggambaran. Pengambilan data dilakukan dengandua jenis fitur yaitu sistem dengan tidak menggunakan fitur shadow dan sistem yangmenggunakan shadow. Model atau scene dan paramter kamera yang digunakansama seperti pada evaluasi kinerja pembuatan struktur uniform grid.

4.2.1 Spesifikasi Pengujian

Spesifikasi pengujian sama dengan pengujian pada pembuatan struktur uniform

grid tetapi pada pengujian ray tracing traversal dilakukan pengambilan data se-banyak dua kali yaitu sistem yang tidak menggunakan shadow untuk penggam-barannya dan sistem yang menggunakan shadow untuk penggambarannya. Metodeshadow yang digunakan adalah hard shadow dimana tidak ada istilah penumbradan umbra yang biasa digunakan pada teknik shadow dengan sumber cahaya yangpancarannya tidak berbentuk bulat. Pengujian dilakukan dengan resolusi gambarsebesar 1024x1024 dan parameter kamera yang diatur sedemikian rupa sehinggamodel akan tampak pada gambar.

4.2.2 Hasil Pengujian

Data hasil pengujian untuk evaluasi kinerja ray tracing traversal pada dilihatpada tabel 4.5, 4.6, dan 4.7. Beberapa hasil penggambaran dengan atau tanpa efek

58

Page 81: RANCANG BANGUN RAY TRACING PIPELINE PADA …web.ee.its.ac.id/~fuad/papers/THESIS.pdfreza fuad rachmadi 2208 205 740 dosen pembimbing: prof. dr. ir. mauridhi hery p., meng. program

(a) conference tanpa shadow (b) conference dengan shadow

(c) sponza tanpa shadow (d) sponza dengan shadow

Gambar 4.3: Beberapa hasil penggambaran

59

Page 82: RANCANG BANGUN RAY TRACING PIPELINE PADA …web.ee.its.ac.id/~fuad/papers/THESIS.pdfreza fuad rachmadi 2208 205 740 dosen pembimbing: prof. dr. ir. mauridhi hery p., meng. program

Gambar 4.4: Perbandingan waktu penggambaran

shadow dapat dilihat pada gambar 4.3. Tabel 4.5 merekam waktu yang digunakanuntuk penggambaran suatu model dengan efek shadow dan tanpa efek shadow.Tabel 4.6 merupakan perbandingan antara resolusi grid, besar struktur triangle off-

set dan waktu penggambaran sedangkan tabel terakhir yaitu tabel 4.7 merupakanperbandingan antara sistem yang dirancang dengan sistem pada makalah [KS09]dan sistem yang dirancang pada makalah [LD08]. Seluruh hasil penggambaran pa-da masing-masing model dapat dilihat pada lampiran.

4.2.3 Diskusi dan Evaluasi

Dari hasil pengujian yang dilakukan dan direkap dalam tabel 4.5 menghasilkanwaktu penggambaran sangat bervariasi dan tidak hanya bergantung pada banyaknyapolygon. Sebagai contoh perbandingan waktu penggambaran antara model con-

ference dengan model blade dimana jumlah polygon dan besar struktur triangle

offset pada model blade jauh lebih besar daripada model conference tetapi wak-tu penggambarannya jauh lebih kecil. Analisa awal bahwa pada model blade cell

kosong pada struktur uniform gridnya lebih sedikit daripada pada model conference

sehingga proses traversal yang dilakukan pada model blade jauh lebih sedikit dari-pada pada model conference. Hal tersebut juga terjadi pada model-model denganruang kosong yang besar sepeti sponza dan fairy forest.

Pada tabel 4.5 terdapat dua data yaitu waktu penggambaran tanpa efek shadow

dengan waktu penggambaran dengan efek shadow. Dari kedua data tersebut, da-pat divisualisasikan peningkatan waktu penggambaran antara penggambaran tanpa

60

Page 83: RANCANG BANGUN RAY TRACING PIPELINE PADA …web.ee.its.ac.id/~fuad/papers/THESIS.pdfreza fuad rachmadi 2208 205 740 dosen pembimbing: prof. dr. ir. mauridhi hery p., meng. program

Tabel 4.5: Hasil pengujian ray tracing traversal

Model / SceneWaktu Penggambaran

(tanpa shadow)Waktu Penggambaran

(dengan shadow)Wood Doll 34,25 ms 92,72 msBunny 61.39 ms 209,91 msSponza 179,84 ms 604,91 msHorse 82,49 ms 393,70 msFairy Forest 499,61 ms 1925,18 msConference 339,91 ms 1645,68 msHand 99,14 ms 611,34 msDragon 133,54 ms 518,90 msHappy Budha 172,40 ms 861,05 msBlade 148,86 ms 1194,40 msxyzrgb_dragon - -

Tabel 4.6: Perbandingan besar triangle offset dengan waktu penggambaran

Model / Scene Resolusi Grid Besar StrukturTriangle Offset

Waktu Penggambaran(tanpa shadow)

Wood Doll 20x48x34 24436 34,25 msBunny 77x77x60 239955 61.39 msSponza 122x55x58 517016 179,84 msHorse 50x109x91 273430 82,49 msFairy Forest 151x39x151 1164048 499,61 msConference 211x51x134 1176884 339,91 msHand 239x168x82 1467798 99,14 msDragon 240x170x108 2379395 133,54 msHappy Budha 131x319x131 3094383 172,40 msBlade 189x320x147 5372964 148,86 msxyzrgb_dragon 461x256x307 12335855 -

Tabel 4.7: Perbandingan dengan sistem lainnya (dalam fps)

Model / SceneSistem yangdirancang

Sistem padamakalah [KS09]

Sistem padamakalah [LD08]

Bunny 16,3 n/a 1,47Sponza 5,56 n/a 0,54Conference 2,9 7,7 0.44Fairy Forest 2 3,5 n/aDragon 7,49 n/a 1,25Happy Budha 5,8 n/a 1,72

61

Page 84: RANCANG BANGUN RAY TRACING PIPELINE PADA …web.ee.its.ac.id/~fuad/papers/THESIS.pdfreza fuad rachmadi 2208 205 740 dosen pembimbing: prof. dr. ir. mauridhi hery p., meng. program

shadow dengan pengambaran dengan shadow yaitu pada gambar 4.4. Dari gambartersebut terlihat peningkatan waktu penggambaran yang beragam antara 4 sampai10 kali lebih lama daripada tanpa shadow.

Hasil lain dari pengujian yang dilakukan adalah gagalnya penggambaran padamodel xyzrgb_dragon. Hal tersebut dikarenakan waktu penggambaran yang terlalulama sehingga mengakibatkan kesalahan time out pada GPU. Hal ini tidak terjadipada proses pembuatan struktur uniform grid karena waktu pembuatannya masihdibawah 5 detik sehingga tidak terjadi kesalahan time out. Solusi dari masalahini adalah menggunakan penggambaran progresif sehingga kernel pada GPU tidakdieksekusi terlalu lama.

Pada tabel 4.7 terdapat perbandingan antara sistem yang dirancang dengan be-berapa sistem yang telah dipaparkan pada makalah [KS09, LD08]. Pada makalah[KS09] digunakan spesifikasi perangkat keras yang lebih bagus (GeForce GTX 280)dan menghasilkan waktu penggambaran yang lebih cepat daripada sistem yang di-rancang, sedangkan pada makalah [LD08] digunakan spesifikasi perangkat kerasdua prosessor quad-core Intel Xeon 3 GHz dan memori 16 GB dan menghasilkanwaktu penggambaran yang lebih lambat daripada sistem yang dirancang.

Pada gambar 4.5 merupakan persentase waktu yang digunakan oleh programpada GPU. Gambar 4.5a merupakan persentase waktu eksekusi program pada GPUuntuk tahapan pembuatan struktur uniform grid. Pada gambar tersebut terlihat bah-wa waktu eksekusi terlama adalah melakukan sorting terhadap struktur triangle off-

set yaitu sekitar 40% sampai 60% dari total waktu tergantung besar dari strukturtriangle offset yang digunakan. Perbandingan antara waktu pembuatan struktur uni-form grid dengan ray tracing traversal dapat dilihat pada gambar 4.5b. Dari grafiktersebut terlihat bahwa 80% sampai 95% waktu digunakan untuk melakukan ray

tracing traversal dan pada makalah [Hav00] dijelaskan bahwa struktur uniform grid

akan melakukan pembuatan struktur dengan cepat tetapi lambat pada saat traversal

sedangkan struktur kd-tree, struktur seperti BSP (Binary Space Partitioning) tetapidengan aturan-aturan tertentu, akan melakukan pembuatan struktur yang lama tetapicepat dalam melakukan traversal.

4.3 Optimasi Sistem

Optimasi sistem dilakukan untuk mempercepat proses-proses yang terjadi padasistem. Pada grafik yang ditampilkan pada gambar 4.5b, didapatkan bahwa waktuyang digunakan untuk traversal jauh lebih besar daripada waktu yang digunakanuntuk proses pembuatan struktur uniform grid sehingga diperlukan sedikit optimisi

62

Page 85: RANCANG BANGUN RAY TRACING PIPELINE PADA …web.ee.its.ac.id/~fuad/papers/THESIS.pdfreza fuad rachmadi 2208 205 740 dosen pembimbing: prof. dr. ir. mauridhi hery p., meng. program

(a) konstruksi

(b) traversal dan konstruksi

Gambar 4.5: Persentase waktu yang digunakan pada GPU

63

Page 86: RANCANG BANGUN RAY TRACING PIPELINE PADA …web.ee.its.ac.id/~fuad/papers/THESIS.pdfreza fuad rachmadi 2208 205 740 dosen pembimbing: prof. dr. ir. mauridhi hery p., meng. program

agar sistem dapat berjalan secara optimal.Proses optimasi dilakukan dengan percobaan dengan jumlah thread per block

dan block per grid yang berbeda-beda. Pada pengujian yang dilakukan pada bab 4.2digunakan jumlah thread per block sebesar 8 x 8 dan block per grid sama denganresolusi dibagi dengan jumlah thread per block. Pada bab ini akan dilakukan pen-gujian dengan jumlah thread per block bervariasi mulai dari 4 x 4 sampai dengan256 x 256 (maksimum jumlah thread per block) dengan kenaikan 1 untuk setiappengujian.

Model atau scene yang diujikan adalah scene dengan jumlah cell kosong cukupbesar yaitu sponza, conference, dan fairy forest. Model fairy forest merupakanmodel dengan jenis “the teapot in the stadium problem” yaitu dimana terdapat mod-el yang detail dengan volume yang kecil di tengah-tengah model yang tidak terlaludetail dengan volume yang besar. Problem tersebut merupakan problem klasik yangada pada ray tracing dengan menggunakan struktur uniform grid.

4.3.1 Hasil Pengujian

Proses pengujian dilakukan dua tahap yaitu pengujian dengan tidak menggu-nakan shadow ray dan pengujian dengan menggunakan shadow ray. Pengujian den-gan tidak menggunakan shadow ray berjalan baik sampai dengan jumlah thread perblock sebesar 16x16 sedangkan jika jumlah thread per block dinaikkan lagi makasistem akan menghasilkan gambar yang tidak semestinya. Pada pengujian denganmenggunakan shadow ray berjalan baik sampai dengan jumlah thread per block

sebesar 13x13 dan jika jumlah thread per block dinaikkan maka sistem akan meng-hasilkan gambar yang tidak semestinya. Data hasil pengujian dapat dilihat padatabel 4.8 dan dalam bentuk grafik pada gambar 4.6.

4.3.2 Diskusi dan Evaluasi

Dari data hasil percobaan sistem dengan menggunakan jumlah thread per block

yang berbeda, didapatkan kesimpulan awal bahwa semakin banyak jumlah thread

per block maka waktu penggambaran cenderung menurun. Sesuai dengan tabel 4.8,pada model sponza waktu penggambaran tanpa shadow paling cepat ketika jumlahthread sebesar 11 x 11. Pada model conference waktu penggambaran tanpa shadow

paling cepat ketika jumlah thread per block sebesar 16 x 16 sedangkan pada modelfairy forest waktu penggambaran paling cepat ketika jumlah thread per block sebe-sar 15 x 15. Berbeda dengan penggambaran tanpa shadow, pada penggambarandengan menggunakan shadow semua model menghasilkan waktu penggambaranpaling cepat ketika jumlah thread per block sebesar 13 x 13. Pada dua pengujian

64

Page 87: RANCANG BANGUN RAY TRACING PIPELINE PADA …web.ee.its.ac.id/~fuad/papers/THESIS.pdfreza fuad rachmadi 2208 205 740 dosen pembimbing: prof. dr. ir. mauridhi hery p., meng. program

Gambar 4.6: Grafik penggambaran dengan thread per block yang bervariasi

Tabel 4.8: Hasil pengujian dengan jumlah thread per block bervariasi

Thread PerBlock

Tanpa Shadow (ms) Dengan Shadow (ms)

Sponza ConferenceFairyForest

Sponza ConferenceFairyForest

4 x 4 312,77 714,41 861,59 1458,39 3371,9 3172,84

5 x 5 233,87 553,67 738,1 1152,82 2819,15 2759,05

6 x 6 173,3 444,89 635,78 966,55 2425,25 2457,33

7 x 7 146,86 374,37 523,73 740.98 1892.55 1966.98

8 x 8 131,63 339,66 498,74 631.17 1657.57 1766.25

9 x 9 159,27 372,75 488,14 814.51 1939.63 1790.79

10 x 10 145,96 337,94 444,19 730.62 1756.62 1692.03

11 x 11 117,03 292,88 407,49 657.68 1597.7 1589.71

12 x 12 179,43 372,25 434,89 604.62 1423.13 1555.7

13 x 13 165,15 341,38 382,44 552.12 1310.83 1315.61

14 x 14 147,93 316,46 388,79 n/a n/a n/a

15 x 15 135,43 297,7 351,04 n/a n/a n/a

16 x 16 128,2 278,55 387,86 n/a n/a n/a

65

Page 88: RANCANG BANGUN RAY TRACING PIPELINE PADA …web.ee.its.ac.id/~fuad/papers/THESIS.pdfreza fuad rachmadi 2208 205 740 dosen pembimbing: prof. dr. ir. mauridhi hery p., meng. program

yang dilakukan, terdapat kegagalan pada sistem. Kegagalan pertama terjadi padapenggambaran tanpa shadow pada saat jumlah thread per block lebih dari 16 x 16sedangkan kegagalan kedua terjadi pada penggambaran dengan shadow pada saatjumlah thread per block lebih dari 13 x 13. Kegagalan terjadi bukan karena kega-galan eksekusi, eksekusi berhasil dilakukan tanpa error tetapi menghasilkan gam-bar yang tidak sesuai (gambar tidak merepresentasikan model). Penjelasan yangmungkin adalah instruksi yang terlalu banyak dimasukkan pada SM, karena ek-sekusi menggunakan on-chip thread schedular yang terdapat pada perangkat kerasCUDA, sehingga menghasilkan suatu kesalahan tertentu yang mengakibatkan pros-es eksekusi paralel terhenti tanpa menghasilkan pesan kesalahan.

Waktu penggambaran yang dihasilkan dipengaruhi oleh beberapa hal, yaitubanyaknya ray yang berpotongan dengan AABB dari scene, banyaknya cell yangdikunjungi oleh ray pada saat traversal, banyaknya polygon yang tergabung dalamcell-cell yang dikunjungi oleh ray, dan jumlah thread per block yang digunakan.Untuk parameter selain jumlah thread per block, semakin banyak maka akan se-makin lama waktu penggambaran yang dibutuhkan sedangkan pada parameter jum-lah thread per block yang mempengaruhi adalah banyaknya prosessor yang idle

(tidak bekerja) pada saat eksekusi paralel dilakukan.

Eksekusi paralel yang dilakukan pada standar CUDA secara skematik dapatdilihat pada gambar 4.7. Pada gambar tersebut terlihat bahwa eksekusi dilakukanper block untuk setiap SM, dimana masing-masing SM pada perangkat keras yangdigunakan pada pengujian mempunyai 8 prosessor. Jika pada saat eksekusi meng-gunakan konfigurasi jumlah thread per block lebih kecil dari 8 x 8 maka tidak semuaprosessor pada SM akan bekerja (idle) karena jumlah thread lebih kecil daripadajumlah prosessor, jika pada saat eksekusi menggunakan konfigurasi jumlah thread

per block 8 x 8 maka prosessor akan bekerja semua tetapi jika salah satu proses-sor sudah selesai melakukan eksekusi dan prosessor yang lain masih melakukaneksekusi maka prosessor yang sudah selesai melakukan eksekusi akan menunggusampai eksekusi pada prosessor yang lain dalam satu block selesai. Kemungkinankonfigurasi yang terakhir adalah dengan jumlah thread per block lebih besar dari8 x 8, pada konfigurasi ini prosessor pada SM akan secara bergantian melakukaneksekusi pada setiap thread dengan bantuan sebuah chip thread schedular sehing-ga prosessor yang idle menjadi berkurang tetapi pada konfigurasi thread per block

di atas 8 x 8 tidak terjadi penurunan waktu yang signifikan bahkan ada beberapakonfigurasi yang lebih jelek hasilnya daripada konfigurasi sebelumnya. Hal terse-but dikarenakan perbedaan banyaknya prosessor yang idle pada saat eksekusi danbanyaknya prosessor yang idle disebabkan metode yang digunakan banyak meng-

66

Page 89: RANCANG BANGUN RAY TRACING PIPELINE PADA …web.ee.its.ac.id/~fuad/papers/THESIS.pdfreza fuad rachmadi 2208 205 740 dosen pembimbing: prof. dr. ir. mauridhi hery p., meng. program

Gambar 4.7: Model eksekusi CUDA [Nvi09a]

gunakan percabangan pada pemrogramannya.Penyelesaian sederhana untuk masalah idle prosessor adalah menggunakan me-

tode penggambaran progresif sehingga setiap tahap dapat ditentukan secara pastidaya komputasi yang dibutuhkan dan dapat menurunkan banyak prosessor yang idle

pada saat eksekusi paralel dilakukan. Tahapan yang dimaksud adalah tahapan pros-es saat ray tracing traversal yaitu pembuatan primary ray, deteksi perpotongan ray

dengan AABB dari scene, uniform grid traversal, dan shading. Pada tahapan prosesdeteksi perpotongan ray dengan AABB dari scene ada kemungkinan ray yang tidakberpotongan sehingga tidak diperlukan proses selanjuutnya, begitupula pada taha-pan uniform grid traversal dimana ada kemungkinan ray tidak berpotongan denganpolygon pada scene sehingga tahapan proses shading tidak perlu dilakukan.

67

Page 90: RANCANG BANGUN RAY TRACING PIPELINE PADA …web.ee.its.ac.id/~fuad/papers/THESIS.pdfreza fuad rachmadi 2208 205 740 dosen pembimbing: prof. dr. ir. mauridhi hery p., meng. program

[Halaman ini sengaja dikosongkan]

Page 91: RANCANG BANGUN RAY TRACING PIPELINE PADA …web.ee.its.ac.id/~fuad/papers/THESIS.pdfreza fuad rachmadi 2208 205 740 dosen pembimbing: prof. dr. ir. mauridhi hery p., meng. program

BAB V

PENUTUP

5.1 Kesimpulan

Dari hasil perancangan dan pengujian sistem penggambaran tiga dimensi den-gan menggunakan algoritma ray tracing pada platform CUDA, maka dapat disim-pulkan beberapa hal yaitu

• Pada sistem, waktu yang digunakan untuk pembuatan struktur uniform grid

tergantung pada dua hal yaitu banyaknya polygon pada scene dan besarnyastruktur triangle offset.

• Waktu traversal pada model / scene akan lebih lama jika banyak terdapat cell

pada uniform grid yang kosong (density scene kecil).

• Dari data yang direkap pada tabel 4.7 maka sistem yang dirancang dan di-jalankan pada GPU, lebih cepat 2 sampai 6 kali daripada sistem yang kuranglebih sama dan dijalankan pada CPU.

• Dari grafik pada gambar 4.5, sekitar 80 % sampai 95 % waktu penggambarandigunakan untuk traversal dan sisanya digunakan untuk pembuatan strukturuniform grid.

• Penambahan jumlah thread per block pada saat eksekusi algoritma ray trac-

ing traversal mengalami trend penurunan waktu penggambaran karena penu-runan jumlah prosessor yang idle pada saat eksekusi.

5.2 Pengembangan Lebih Lanjut

Sistem penggambaran ray tracing yang dirancang pada penelitian ini masihmerupakan framework dasar dan bukan merupakan solusi yang lengkap sehinggadiperlukan pengembangan yang lebih lanjut pada sistem. Penulis menyarankan be-berapa topik pengembangan yang dapat dilakukan, yaitu:

• Penggunaan material (texture dan warna) pada model sehingga didapatkanhasil yang lebih realistik.

• Penggunaan metode anti-aliasing untuk menghilangkan aliasing yang terda-pat pada hasil penggambaran.

• Penambahan efek refleksi dan refraksi cahaya (dengan material tertentu) agardidapatkan hasil penggambaran yang lebih realistik.

69

Page 92: RANCANG BANGUN RAY TRACING PIPELINE PADA …web.ee.its.ac.id/~fuad/papers/THESIS.pdfreza fuad rachmadi 2208 205 740 dosen pembimbing: prof. dr. ir. mauridhi hery p., meng. program

• Perancangan sistem lebih lanjut untuk dinamik scene (animated scene) se-hingga dapat digunakan dengan model / scene yang terdapat animasi didalam-nya.

• Penggunaan multi GPU untuk implementasi algoritma sehingga waktu penggam-baran yang dihasilkan lebih cepat.

70

Page 93: RANCANG BANGUN RAY TRACING PIPELINE PADA …web.ee.its.ac.id/~fuad/papers/THESIS.pdfreza fuad rachmadi 2208 205 740 dosen pembimbing: prof. dr. ir. mauridhi hery p., meng. program

DAFTAR REFERENSI

[AW87] John Amanatides and Andrew Woo. A fast voxel traversal algorithmfor ray tracing. In Proc. Eurographics 1987, August 1987.

[Ble90] Guy E. Blelloch. Prefix sums and their applications. Technical Re-port CMU-CS-90-190, School of Computer Science, Carnegie MellonUniversity, November 1990.

[Chr05] Martin Christen. Ray tracing on gpu. Master’s thesis, University ofApplied Sciences Basel, 2005.

[CP09] Siddhartha Chatterjee and Jan Prins. Pram algorithms. Parallel Com-puting Course Notes, University of North Carolina at Chapel Hill, 2009.

[FH09] Reza Fuad and Mochamad Hariadi. Gpu-based parallel algorithm forconstruction of uniform grid structure. In National Seminar on Applied

Technology, Science, and Arts 2009, 2009.

[GSCH93] Steven J. Gortler, Peter Schröder, Michael F. Cohen, and Pat Hanrahan.Wavelet radiosity. In SIGGRAPH ’93: Proceedings of the 20th annu-

al conference on Computer graphics and interactive techniques, pages221–230, New York, NY, USA, 1993. ACM.

[GTGB84] Cindy M. Goral, Kenneth E. Torrance, Donald P. Greenberg, and Ben-nett Battaile. Modeling the interaction of light between diffuse surfaces.SIGGRAPH Comput. Graph., 18(3):213–222, 1984.

[Hav00] Vlastimil Havran. Heuristic ray shooting algorithms. PhD thesis,Czech Technical University, 2000.

[HJ09] Toshiya Hachisuka and Henrik Wann Jensen. Stochastic progressivephoton mapping. ACM Trans. Graph., 28(5):1–8, 2009.

[HOJ08] Toshiya Hachisuka, Shinji Ogaki, and Henrik Wann Jensen. Progres-sive photon mapping. ACM Trans. Graph., 27(5):1–8, 2008.

[HSO07] Mark Harris, Shubhabrata Sengupta, and John D. Owens. Parallel pre-fix sum (scan) with cuda. GPU Gems 3, pages 851–876, 2007.

71

Page 94: RANCANG BANGUN RAY TRACING PIPELINE PADA …web.ee.its.ac.id/~fuad/papers/THESIS.pdfreza fuad rachmadi 2208 205 740 dosen pembimbing: prof. dr. ir. mauridhi hery p., meng. program

[IDC09] Paul Ivson, Leonardo Duarte, and Waldemar Celes. Gpu-accelerateduniform grid construction for ray tracing dynamic scenes. Master’sthesis, PUC-Rio, 2009.

[Ize09] Thiago Ize. Efficient acceleration structures for ray tracing static and

dynamic scenes. PhD thesis, University of Utah, 2009.

[JC07] Henrik Wann Jensen and Per H. Christensen. High-quality renderingusing ray tracing and photon mapping. In Siggraph course notes, 2007.

[Jen96] Henrik Wann Jensen. Global illumination using photon maps. pages21–30. Springer-Verlag, 1996.

[JJD08] Wojciech Jarosz, Henrik Wann Jensen, and Craig Donner. Advancedglobal illumination using photon mapping. In SIGGRAPH ’08: ACM

SIGGRAPH 2008 classes, pages 1–112, New York, NY, USA, 2008.ACM.

[Kaj86] James T. Kajiya. The rendering equation. SIGGRAPH Comput. Graph.,20(4):143–150, 1986.

[Kel97] Alexander Keller. Instant radiosity. In SIGGRAPH ’97: Proceedings of

the 24th annual conference on Computer graphics and interactive tech-

niques, pages 49–56, New York, NY, USA, 1997. ACM Press/Addison-Wesley Publishing Co.

[KK86] Timothy L. Kay and James T. Kajiya. Ray tracing complex scenes. InSIGGRAPH ’86: Proceedings of the 13th annual conference on Com-

puter graphics and interactive techniques, pages 269–278, New York,NY, USA, 1986. ACM.

[KS09] Javor Kalojanov and Philipp Slusallek. A parallel algorithm for con-struction of uniform grids. In HPG ’09: Proceedings of the Conference

on High Performance Graphics 2009, pages 23–28, New York, NY,USA, 2009. ACM.

[LD08] Ares Lagae and Philip Dutré. Compact, fast and robust grids for raytracing. In SIGGRAPH ’08: ACM SIGGRAPH 2008 talks, pages 1–1,New York, NY, USA, 2008. ACM.

[MT97] Tomas Möller and Ben Trumbore. Fast, minimum storage ray-triangleintersection. J. Graph. Tools, 2(1):21–28, 1997.

72

Page 95: RANCANG BANGUN RAY TRACING PIPELINE PADA …web.ee.its.ac.id/~fuad/papers/THESIS.pdfreza fuad rachmadi 2208 205 740 dosen pembimbing: prof. dr. ir. mauridhi hery p., meng. program

[Nvi09a] NVIDIA Corporation. CUDA 2.3 Programming Guide, 2009.

[Nvi09b] NVIDIA Corporation. CUDA 2.3 Reference Manual, 2009.

[SHG08] Shubhabrata Sengupta, Mark Harris, and Michael Garland. Efficientparallel scan algorithms for GPUs. Technical Report NVR-2008-003,NVIDIA Corporation, December 2008.

[SHG09] N. Satish, M. Harris, and M. Garland. Designing efficient sorting algo-rithms for manycore gpus. In Parallel & Distributed Processing, 2009.

IPDPS 2009. IEEE International Symposium on, pages 1–10, 2009.

[SHZO07] Shubhabrata Sengupta, Mark Harris, Yao Zhang, and John D. Owens.Scan primitives for gpu computing. In GH ’07: Proceedings of the 22nd

ACM SIGGRAPH/EUROGRAPHICS symposium on Graphics hard-

ware, pages 97–106, Aire-la-Ville, Switzerland, Switzerland, 2007. Eu-rographics Association.

[SKSS08] László Szirmay-Kalos, László Szécsi, and Mateu Sbert. GPU-Based

Techniques for Global Illumination Effects. Synthesis Lectures onComputer Graphics and Animation. Morgan & Claypool Publishers,2008.

[Whi80] Turner Whitted. An improved illumination model for shaded display.Commun. ACM, 23(6):343–349, 1980.

[WIK+06] Ingo Wald, Thiago Ize, Andrew Kensler, Aaron Knoll, and Steven G.Parker. Ray Tracing Animated Scenes using Coherent Grid Traversal.ACM Transactions on Graphics, 25(3):485–493, Jul 2006. (Proceed-ings of ACM SIGGRAPH 2006).

73

Page 96: RANCANG BANGUN RAY TRACING PIPELINE PADA …web.ee.its.ac.id/~fuad/papers/THESIS.pdfreza fuad rachmadi 2208 205 740 dosen pembimbing: prof. dr. ir. mauridhi hery p., meng. program

[Halaman ini sengaja dikosongkan]

Page 97: RANCANG BANGUN RAY TRACING PIPELINE PADA …web.ee.its.ac.id/~fuad/papers/THESIS.pdfreza fuad rachmadi 2208 205 740 dosen pembimbing: prof. dr. ir. mauridhi hery p., meng. program

LAMPIRAN

HASIL PENGGAMBARAN

(a) Model wood doll

(b) Model bunny stanford

75

Page 98: RANCANG BANGUN RAY TRACING PIPELINE PADA …web.ee.its.ac.id/~fuad/papers/THESIS.pdfreza fuad rachmadi 2208 205 740 dosen pembimbing: prof. dr. ir. mauridhi hery p., meng. program

(c) Model sponza atrium

(d) Model Horse georgia university

76

Page 99: RANCANG BANGUN RAY TRACING PIPELINE PADA …web.ee.its.ac.id/~fuad/papers/THESIS.pdfreza fuad rachmadi 2208 205 740 dosen pembimbing: prof. dr. ir. mauridhi hery p., meng. program

(e) Model fairy forest

(f) Model conference room

77

Page 100: RANCANG BANGUN RAY TRACING PIPELINE PADA …web.ee.its.ac.id/~fuad/papers/THESIS.pdfreza fuad rachmadi 2208 205 740 dosen pembimbing: prof. dr. ir. mauridhi hery p., meng. program

(g) Model hand (from georgia university)

(h) Model dragon stanford

78

Page 101: RANCANG BANGUN RAY TRACING PIPELINE PADA …web.ee.its.ac.id/~fuad/papers/THESIS.pdfreza fuad rachmadi 2208 205 740 dosen pembimbing: prof. dr. ir. mauridhi hery p., meng. program

(i) Model happy budha (stanford)

(j) Model blade (dari georgia university)

79

Page 102: RANCANG BANGUN RAY TRACING PIPELINE PADA …web.ee.its.ac.id/~fuad/papers/THESIS.pdfreza fuad rachmadi 2208 205 740 dosen pembimbing: prof. dr. ir. mauridhi hery p., meng. program

[Halaman ini sengaja dikosongkan]

Page 103: RANCANG BANGUN RAY TRACING PIPELINE PADA …web.ee.its.ac.id/~fuad/papers/THESIS.pdfreza fuad rachmadi 2208 205 740 dosen pembimbing: prof. dr. ir. mauridhi hery p., meng. program

DAFTAR RIWAYAT HIDUP

Reza Fuad Rachmadi, anak pertama dari pasangan suami istriAchmad Fuadi (alm) dan Lina Rachmawati, melakukan stu-di sekolah dasarnya di SD Pengadilan II Bogor, lalu melan-jutkan ke SMPN 1 Bogor dan ke SMUN 1 Bogor. Pada tahun2003, beliau menempuh jalur SPMB dan diterima di JurusanTeknik Elektro ITS dan lulus pada tahun 2009. Sekarang be-liau sedang menyelesaikan tesis untuk memperoleh gelar S2

pada Jurusan Teknik Elektro ITS bidang studi bidang studi jaringan cerdas multi-media dengan bidang konsentrasi game teknologi.