Anda di halaman 1dari 19

LAPORAN PRAKTIKUM

KOMPUTER GRAFIKA

MODUL VI
PEMODELAN GEOMETRIK DAN RAY TRACING

NIM : 15104410020

NAMA : SEPTIAN LUKAS C

JURUSAN : TI A

TGL. PRAKTEK : 26 MEI 2017

FAKULTAS TEKNOLOGI INFORMASI


TEKNIK INFORMATIKA
UNIVERSITAS ISLAM BALITAR
2017
LEMBAR PERSETUJUAN

MODUL VI
PEMODELAN GEOMETRIK DAN RAY TRACING

NIM : 15104410020

NAMA : SEPTIAN LUKAS C

JURUSAN : TI A

KELOMPOK :A

TGL. PRAKTEK : 26 MEI 2017

Disetujui,

Blitar, Juni 2017

Asisten Dosen

Azis Suroni, S.Kom


PRAKTIKUM
FAKULTAS TEKNOLOGI INFORMASI
TEKNIK INFORMATIKA

LEMBAR ASISTENSI

BAB :6

JUDUL PRAKTIKUM : PEMODELAN GEOMETRIK DAN RAY TRACING

NAMA PRAKTIKAN : SEPTIAN LUKAS CAHYONO

NIM : 15104410020

FAKULTAS : TEKNOLOGI INFORMASI

JURUSAN : TI A

TANGGAL PRAKTIKUM : 26 MEI 2017

TANGGAL ASISTENSI : 2 JUNI 2017

TANDA TANGAN :

Disetujui,

Blitar, ... Juni 2017

Asisten Dosen

Azis Suroni, S.Kom


BAB I

PENDAHULUAN PRAKTIKUM

1.1 Konsep Koordinat 3 Dimensi


Processing dapat melakukan pengolahan grafik baik 2 dimensi maupun 3 dimensi.
Untuk melakukan pemrosesan 3 dimensi mode yang digunakan adalah P3D, missal
saja size(200,200,P3D); hal ini berarti ukuran layar 200 x 200 dengan mode proses 3
dimensi. Koordinat 2 dimensi berbeda dengan 3 dimensi, hal ini karena terdapat
penambahan satu sumbu axis z pada lokasi origin (0,0) seperti tergambar pada
gambar 6.1.

Dari gambar 6.1, dijelaskan bahwa layar pada processing adalah bidang 2 dimensi
dengan ujung pojok kiri atas sebagai titik origin (0,0). Sekarang dipikirkan untuk
menampilkan model 3 dimensi dengan media 2 dimensi tersebut. Sehingga
ditambahkan satu axis z untuk ordo ketiganya.

1.2 Model Prespektif


Menetapkan proyeksi perspektif foreshortening menerapkan, membuat obyek yang
jauh tampak lebih kecil dibandingkan yang dekat. Parameter yang menentukan volume
melihat dengan bentuk piramida terpotong. Objek dekat kedepan volume muncul
ukuran sebenarnya mereka, sedangkan objek jauh terlihat lebih kecil. Proyeksi ini
mensimulasikan perspektif dunia lebih akurat dibandingkan proyeksi fortografi. Versi
perspektif tanpa parameter set default perspektif dan versi dengan empat parameter
yang memungkinkan programmer untuk mengatur daerah tersebut tepat. Nilai default
adalah: perspektif (PI/3.0, lebar / tinggi, camera Z/10.0, camera Z * 10.0) di mana
camera Z adalah ((height/2.0) / tan (PI * 60.0/360.0));
1.3 Light
Mengatur cahaya default ambient, cahaya directional, falloff, dan nilai-nilai specular.
Secara default nilainya adalah ambientLight (128, 128, 128) dan directionalLight (128,
128, 128, 0, 0, -1), lightFalloff () (1, 0, 0), dan lightSpecular (0, 0, 0). Mode
pencahayaan perlu dimasukkan dalam fungsi draw() untuk tetap persisten dalam
program perulangan. Menempatkan mereka di fungsi setup () dari program looping
akan menyebabkan mereka hanya memiliki efek pertama kalinya melalui loop.

1.4 Directional Light


Menambahkan cahaya directional. Arah cahaya datang dari satu arah dan kuat ketika
mengenai permukaan dan lebih lemah jika di sudut. Setelah mencapai permukaan,
sebuah lampu arah memantulkan ke segala arah. Pengaruh dri parameter v1, v2, dan
v3 ditentukan oleh mode warna saat ini. Parameter nx , ny dan nz menentukan arah
cahaya yang dihadapi. Misalnya, pengaturan ny ke -1 akan menyebabkan geometri
yang akan menyala dari bawah (terang menghadap langsung ke atas). Sintaksis untuk
directional light adalah : directionalLight (v1, v2, v3, nx, ny, nz).

1.5 Point Light


Menambahkan titik cahaya. Pengaruh dari parameter v1, v2, dan v3 ditentukan oleh
mode warna saat ini. Parameter x, y, dan z mengatur posisi cahaya. Sintaksis yang
digunakan adalah : pointLight (v1, v2, v3, x, y, z).

1.6 Spot Light


Menambahkan spot light. Pengaruh dari parameter v1, v2, dan v3 ditentukan oleh
mode warna saat ini. Parameter x, y, dan z parameter menentukan posisi cahaya dan
nx, ny, nz menentukan arah atau cahaya. Parameter sudut mempengaruhi sudut
kerucut sorotan. Sintaksis yang digunakan adalah : spotlight (v1, v2, v3, x, y, z, nx, ny,
nz, sudut, konsentrasi)
BAB II

TUGAS PRAKTIKUM

2.1 Buatlah sebuah objek tata surya dengan 9 planet dan 1 matahari-nya
Listing Program
void setup(){
size(400,400,P3D);
camera(200,-200, 300, width/2, height/2, 0, 0, 1,0 );
}
int i=0;
void planet(float x, float y,float z,int r) {
pushMatrix();
stroke(5,167,17);
rotateY(frameCount*PI/x * 0.05);
translate(y,0,0);
fill(5,167,17);
sphere(z);
popMatrix();
}

void draw(){
background(0);
lights();
translate(width/2,height/2,-100);

pushMatrix();
stroke(237,155,48);
rotateY(frameCount * PI/12 * 0.05);
fill(237,155,48);
sphere(60);
stroke(255);
noFill();
popMatrix();

pushMatrix();
stroke(10,47,250);
rotateY(frameCount * -PI/6 * 0.05);
translate(200,0,0);
fill(10,47,250);
sphere(30);

stroke(255,3,24);
rotateY(frameCount * -PI/3 * 0.05);
translate(60,0,0);
fill(255,3,24);
sphere(20);
popMatrix();
planet(6,100,15,230);
planet(4,150,20,160);
planet(5,150,10,120);
planet(3,250,15,180);
planet(4,300,20,160);
}

Input Program
Output Program

2.2 Buatlah sebuah objek bola yang berputar dengan penggunaan lighting !
Listing Program
void setup(){
size(500,500,P3D);
}

void draw(){
background(0);
lights();
translate(width/2.0, height/2.0);
scale(50);
rotateX( map(mouseY,0,height,-PI,PI));
rotateY( (millis()*TWO_PI/10000)%TWO_PI );
pushMatrix();
directionalLight(404, 404, 404, mouseX, mouseY, -1);
scale( map(mouseX,0,width,1,1.5 ));
noStroke();
fill(117,252-map(mouseX,0,width,0,255),229);
sphere(2);
popMatrix();

}
Input Program

Output Program
BAB III

PEMBAHASAN PRAKTIKUM

3.1 Program 6.1


Listing Program
void setup() {
size (300, 300, P3D);
}
void draw(){
background (200);
stroke(50);
box(100);
}
Input Program

Output Program
3.2 Program 6.2
Listing Program
void setup() {
size (300, 300, P3D);
}
void draw(){
background (200);
stroke(50);
translate (158, 148, 0);
rotateX(mouseY * 0.05);
rotateY(mouseX * 0.05);
box(100);
}
Input Program

Output Program

3.3 Program 6.3


Listing Program
size (100, 100, P3D);
noFill();
float fov = PI/3.0;
float cameraZ = (height/2.0) / tan (fov/2.0);
perspective (fov, float(width)/float(height), cameraZ/10.0,
cameraZ*10.0);
translate(50, 50, 0);
rotateX(-PI/6);
rotateX(PI/3);
box(45);
Input Program

Output Program

3.4 Program 8.1


Listing Program
float spin = 0.0;
void setup()
{
size(640, 360, P3D);
noStroke();
}

void draw()
{
background (51);
lights();
spin += 0.01;

pushMatrix();
translate(width/2, height/2.0);
rotateX(PI/9);
rotateY(PI/5 +spin);
box(150);
popMatrix();
}
Input Program

Output Program

3.5 Program 8.2


Listing Program
void setup()
{
size(640, 360, P3D);
noStroke();
fill(204);
}

void draw()
{
noStroke();
background (0);
float dirY = (mouseY / float(height) - 0.5) *2;
float dirX = (mouseX / float(width) - 0.5) *2;
directionalLight(204, 204, 204, -dirX, -dirY, -1);
translate(width/2 - 100, height/2.0);
sphere(80);
translate(200, 0, 0);
sphere (80);
}
Input Program

Output Program
3.6 Program 8.3
Listing Program
void setup()
{
size(640, 360, P3D);
noStroke();
}

void draw()
{
background (0);
translate (width/2, height / 2);

//orange point light on the right


pointLight (150, 100, 0, //color
200, -150, 0);//position

//blue directional light from the left


directionalLight (0, 102, 255, //color
1, 0, 0); //the x-, y-, z-axis direction

//Yellow spotLight from the front


spotLight (255, 255, 109, //color
0, 40, 200, //position
0, -0.5, -0.5, //direction
PI / 2, 2);//angle, concentration

rotateY (map (mouseX, 0, width, 0, PI));


rotateX (map (mouseY, 0, height, 0, PI));
box(150);
}
Input Program

Output Program

3.7 Program 8.4


Listing Program
int concentration = 600;
void setup()
{
size(640, 360, P3D);
noStroke();
fill (204);
sphereDetail(60);
}

void draw()
{
background (0);
//light the bottom of the sphere
directionalLight (51, 102, 126, 0, -1, 0);

//orange light on the upper-right of the sphere


spotLight (204, 153, 0, 360, 160, 600, 0, 0, -1, PI/2, 600);

//Moving spotLight that follows the mouse


spotLight (102, 153, 204, 360, mouseY, 600, 0, 0, -1, PI/2, 600);

translate(width/2, height/2, 0);


sphere(120);
}
Input Program
Output Program
BAB IV

PENUTUP

4.1 Kesimpulan
Processing dapat melakukan pengolahan grafik baik 2 dimensi maupun 3 dimensi.
Untuk melakukan pemrosesan 3 dimensi mode yang digunakan adalah P3D, missal
saja size (200,200,P3D). Menetapkan proyeksi perspektif foreshortening menerapkan,
membuat obyek yang jauh tampak lebih kecil dibandingkan yang dekat. Mengatur
cahaya default ambient, cahaya directional, falloff, dan nilai-nilai specular. Directional
light menambahkan cahaya directional. Arah cahaya datang dari satu arah dan kuat
ketika mengenai permukaan dan lebih lemah jika di sudut.

4.2 Saran
Dari penerapan di atas kita dapat membuat animasi gambar berupa bentuk 3D,
dengan bentuk 3D kita bisa membuat animasi menjadi lebih menarik. Sebaiknya kita
benar-benar bisa memahami dan menerapkan konsep 3D ini. Dari contoh-contoh
program diatas, kita bisa membuat sebuah simulasi tata surya. Jadi kita harus kreatif
dan memahami setiap koding yang ada untuk membuat sebuah objek atau simulasi
animasi dengan menggunakan processing ini.

Anda mungkin juga menyukai