connected) sehingga modelnya akan tampak menggembung. Sebaiknya jangan terlalu
besar saat meng-extrude face-nya agar efek yang dihasilkan juga tidak terlalu
tebal.
Perintah Extrude Faces Connected akan membuat object membesar secara proporsional.
Perintah ini sedikit berbeda dengan Scale. Pada perintah Scale, object
diperbesar dengan
menggunakan pusat object sebagai pusat scale. Dengan menggunakan Extrude Faces
Connected, tiap object akan di scale dengan menggerakkan tiap vertex searah
dengan
arah normalnya.
Untuk
melihat perbedaannya, bisa mencoba sendiri kedua perintah diatas.
Setelah itu set materialnya. Untuk menghasilkan effect cel shading kita perlu
material
yang bersifat bolak balik. Bagian depan di set transparant, sedangkan bagian
belakang di
set dengan warna hitam. Untuk lebih jelasnya perhatikan gambar berikut:
Setelah itu, kita tinggal menggabungkan object pertama dan kedua:
Hasilnya adalah sebuah model dengan outline yang tampak seperti gambar pada
game HARVESTMOON 2: SAVE THE HOMELAND
Cara Kedua:
Pada
cara kedua, kita akan membuat effect yang sama dengan bahasa pemrograman.
Untuk itu sebaiknya dirimu memiliki dasar pengetahuan tentang pemrograman dan
model
3D. Kodenya adalah sebagai berikut. Kode ini
ditulis dengan menggunakan Blitz3D. Bisa
mendownload Blitz3D disini.
Graphics3D 640,480,16,2
SetBuffer BackBuffer()
camera=CreateCamera()
light=CreateLight()
PositionEntity camera,0,70,-100
TurnEntity camera,10,0,0
CameraClsColor camera,255,255,255
;load model
model=LoadAnimMesh("nana.b3d")
EntityFX model,1
model2=LoadAnimMesh("nana.b3d",model)
EntityFX model2,2
FlipMesh model2
EntityColor model2,0,0,0
Animate model,1
Animate model2,1
;scale model
For count=1 To CountSurfaces(model2)
surf=GetSurface(model2,count)
For a=0 To CountVertices(surf)-1
xm#=VertexNX(surf,a)*1.5
ym#=VertexNY(surf,a)*1.5
zm#=VertexNZ(surf,a)*1.5
x#=VertexX(surf,a)
y#=VertexY(surf,a)
z#=VertexZ(surf,a)
VertexCoords surf,a,x-xm,y-ym,z-zm
VertexColor surf,a,0,0,0
Next
Next
;render
While Not KeyHit(1)
Cls
TurnEntity model,0,1,0
RenderWorld
UpdateWorld
Flip
Wend
End
Penjelasan program.
Program
ini terdiri dari 3 bagian: load, fx, dan render
Pada bagian load kita meload 2 buah model yang berasal dari file yang sama. Pada bagian FX, kita mengedit model yang
diload kedua. Model ini di edit per vertex. Prosesnya sama dengan
proses yang dilakukan dengan Anim8or, hanya saja disini kita menggunakan code
untuk menghasilkan FX secara realtime. Kita
membesarkan model sedikit dengan cara menggerakkan tiap vertexnya searah dengan arah normal
dari vertex tersebut. Kemudian modelnya dibalik dan diberi warna hitam atau warna yang
lainnya
Yang
perlu diperhatikan disini adalah kita tidak bisa menzoom modelnya secara
langsung. Menzoom model akan menyebabkan model diperbesar relative terhadap
origin. Hal ini tidak akan menghasilkan FX yang bagus. Untuk menghasilkan FX
seperti cel shade maka tiap vertex harus digerakkan searah dengan arah normal
dari vertex tersebut.
Pada bagian render, prosesnya berjalan seperti biasa. Kedua model dianimasikan
secara bersama-sama. Model yang kedua akan tampak dari belakang, sehingga
warnanya tampak hitam dan karena ukurannya yang sedikit besar maka akan tampak
seperti outline.
Bayangan adalah proses penentuan
warna dari semua pixel yang menutupi permukaan menggunakan model illuminasi.
Metodenya melliputi :
-
Penentuan permukaan tampak pada setiap pixel
-
Perhitungan normal pada permukaan
-
Mengevaluasi intensitas cahaya dan warna menggunakan
model illuminasi.
Jaring poligon secara umum sering
digunakan untuk merepresentasikan permukaan yang kompleks. Informasi geometri
yang tersedia hanyalah vertice dari polygon. Interpolasi dari model bayangan
dapat digunakan untuk meningkatkan substansi secara lebih efisien.
Unsur yang mempengaruhi bayangan
adalah
1. Normal Vektor
Normal Vector adalah vector yang
arahnya tegak lurus pada luasan (face). Normal Vector dapat diperoleh dari
perkalian silang (cross-product) dari dua vector yang berada pada face. Besar
dari Normal Vector Vector tegantung pada hasil perkalian silangnya.
2. Unit Vektor
Unit Vector adalah vektor yang
besarnya adalah satu satuan dan arahnya tergantung arah vektor asalnya. Besar
suatu vektor dapat diperoleh dengan Agar vektor v menjadi unit vektor maka
semua koefisien (vx,vy,vz)
3. Optical Vektor
Sebuah konsep mengenai
pencahayaan yang jatuh pada sebuah benda. Model bayangan dibagi menjadi dua
yaitu :
A.
Direct Line
Flat shading
Satu face mempunyai warna yang sama dan flat
shading menggunakan model Phong untuk optical view. Pemberian bayangan rata
(flat) merupakan cara termudah untuk dibuat. Bayangan rata mempunyai
karakteristik sebagai berikut :
·
Pemberian tone yang sama untuk setiap polygon.
·
Penghitungan jumlah cahaya mulai dari titik tunggal
pada permukaan.
·
Penggunaan satu normal untuk seluruh permukaan.
Pemberian bayangan rata ini mengasumsikan bahwa
setiap muka polygon dari sebuah objek adalah rata dan semua titik pada
permukaan mempunyai jarak yang sama dengan sumber cahaya.
Gouraud shading
Sebuah teknik yang dikembangkan oleh Henri Gouraud
pada awal tahun 1970. Teknik ini menampilkan kesan gelap terang dari sebuah
permukaan objek dengan memperhitungkan warna dan penyinaran dari tiap sudut segitiga.
Gouraud shading adalah metode rendering sederhana jika dibandingkan dengan
Phong shading. Teknik ini tidak menghasilkan efek shadow dan refleksi. Metode
ini digunakan dalam grafik komputer untuk mensimulasikan efek cahaya yang berbeda
dan warna di permukaan benda.Dalam prakteknya, Gouraud shading digunakan untuk
mencapai pencahayaan halus rendah-poligon permukaan tanpa berat menghitung
kebutuhan komputasi pencahayaan untuk setiap pixel. Phong shading
Terdapat perbedaan antara
phongshading dengan phonglighting. Phonglighting merupakan model empiris untuk
menghitung iluminasi pada titik pada permukaan sedangkan Phongshading merupakan
interpolasi linear permukaan normal di segi itu, menerapkan model Phonglighting
pada setiap pixel. Phong shading mengacu pada seperangkat teknik dalam komputer
grafis 3D.Phong shading meliputi model bagi refleksi cahaya dari permukaan dan
metode yang
kompatibel memperkirakan pixel
warna oleh interpolating permukaan normal dirasterized poligon.
Model refleksi juga mungkin disebut sebagai refleksi
Phong model, Phong Phong iluminasi atau encahayaan.Ini mungkin disebut Phong
shading dalam konteks pixel shader, atau tempat lain di mana perhitungan
pencahayaan dapat disebut sebagai "shading". Metode interpolasi juga
mungkin disebut Phong interpolasi, yang biasanya disebut dengan "per-pixel
pencahayaan".Biasanya disebut "pelindung" bila dibandingkan dengan
metode interpolasi lain seperti Gouraud pelindung atau flat shading.Refleksi yang
Phong model tersebut dapat digunakan bersama dengan salah satu metode interpolasi
2. Indirect Line
- Ray Tracing
- Radiosity
suatu medium dengan sejumlah
diskrit. Masalah sederhana dapat dianalisis dengan menyebarkan beberapa sinar dengan menggunakan
matematika sederhana. Analisis yang lebih detailnya dapat dilakukan dengan
menggunakan komputer untuk menyebarkan banyak sinar.
Ray tracing bekerja dengan
mengasumsikan bahwa partikel atau gelombang dapat dimodelkan sebagai sejumlah
besar berkas sinar yang sangat sempit, dan bahwa ada beberapa sinar yang
melewati batas jarak seperti sinar yang bertempat datar. Sinar pelacak akan
mepercepat sinar yang melewati jarak ini, dan kemudian menggunakan daerah turunan
dari medium untuk menghitung arah sinar baru. Dari lokasi ini, sinar yang baru
akan dikirim keluar dan proses akan diulang sampai jalan yang lengkap
dihasilkan. Jika simulasinya mencakup benda padat, sinar dapat diuji pada
persimpangan dengan setiap langkahnya, melakukan penyesuaian pada arah sinar
jika ditemukan adanya suatu tabrakan. Properti lain dari sinar dapat diubah
sebagai pencepatan simulasi juga.,
seperti intensitas, panjang gelombang, atau polarisasi. Contoh kegunaan Ray
Tracing (physics) ada pada sinyal radio, samudra akustik, dan desain optis.
2. Ray Tracing (graphics), yang digunakan untuk generasi
gambar 3D.
Dalam grafik komputer, ray
tracing adalah teknik untuk menghasilkan sebuah gambar dengan menelusuri
jalan cahaya melalui pixel dalam gambar pesawat. Teknik ini mampu menghasilkan
tingkat ketajaman gambar yang sangat tinggi – biasanya lebih tinggi dari pada
metode tipe scanline rendering, tetapi pada biaya komputasi yang lebih
besar. Hal ini membuat ray tracing paling cocok untuk aplikasi di mana
gambar dapat di-render perlahan terlebih dahulu, seperti pada gambar diam dan
film dan special effects televisi, dan kurang lebih cocok untuk
real-time aplikasi seperti game komputer, di mana kecepatan sangat penting.
Ray tracing mampu mensimulasikan berbagai efek optis, seperti refleksi dan pembiasan
penyebaran, dan aberasi kromatik. Ray tracing telah digunakan dalam lingkungan
produksi untuk off-line rendering selama beberapa dekade sekarang – yaitu
rendering yang tidak perlu menyelesaikan seluruh adegan dalam waktu kurang dari
beberapa milidetik. Tentu saja kita tidak boleh men-generalisasi dan membiarkan
pengguna mengetahui bahwa beberapa implementasi raytracer telah mampu menekan
tanda “interaktif”. Sekarang juga disebut “real-time ray tracing”, yaitu bidang
yang sangat aktif sekarang, karena sudah dianggap sebagai hal yang besar bahwa
akselerator 3D perlu dipercepat. Raytracer sungguh menyukai daerah-daerah yang
kualitas refleksinya penting. Banyak efek yang tampaknya sulit dicapai dengan
teknik lain yang sangat alami menggunakan raytracer : refleksi, pembiasan,
kedalaman bidang, tingginya tingkat kualitas bayangan. Tentunya hal tersebut
tidak selalu berarti bahwa raytracer cepat.
Terdapat 2 metode pada Ray
Tracing yaitu:
1.
Forward Ray Tracing
1.
Backward Ray Tracing
Dalam pemrograman shader
terdapat 3 macam standar pencahayaan (ligthing model) yang sering digunakan,
yaitu :
- Ambient
Lighting : Merupakan salah satu ligthing model
yang digunakan tanpa memperhatikan arah datangnya cahaya / sumber cahaya
(light source). Jadi pada Ambient Lighting, permukaan object akan
mendapatkan cahaya dari segala arah dengan nilai dan intensitas yang
sama.Dimana seluruh permukaan object akan memiliki warna yang sama.
- Diffuse
Lighting : Merupakan lighting model yang
memperhatikan arah datangnya cahaya dan akan memantulkan/menyebarkan
cahaya ke berbagai arah. Jadi pada Diffuse Lighting, permukaan object yang
berhadapan dengan sumber cahaya akan memerima cahaya dan menyebarkannya ke
berbagai arah.
Specular Lighting : Sama seperti Diffuse Lighting, Specular Lighting merupakan lighting
model yang memperhatikan arah datangnya cahaya. Akan tetapi pada Specular
Lighting, cahaya yang datang hanya akan dipantulkan pada 1 arah.
Pada kesempatan kali ini, kita
akan membahas tentang Diffuse Lighting. Salah metode / teknik yang
paling bagus untuk membuat Diffuse Lighting adalah dengan menggunakan
metode Lambertian Reflection atau biasa disebut juga dengan Lambert
Shading. Secara umum, rumus dari metode Lambert adalah sebagai berikut :
Dimana,
ID = Intensity
Diffuse (Intensitas cahaya dari hasil Diffuse)
L = normalized Light Direction
(Vector arah datangnya cahaya / sumber cahaya yang telah dinormalisasi)
N = Normal Vector (Vector yang
tegak lurus dengan permukaan object)
(N . L) = perkalian dot product
antara Vector Normal dengan Vector Light Direction
C = Color (Warna)
IL = Instensity Light
(Intensitas cahaya)
Light Direction dan Normal Vector
Jadi, lambert shading diperoleh
dari perkalian dot product antara vector normal dengan vector light direction.
Selanjutnya,
kita akan mengimplementasikannya pada RenderMonkey. Setelah membuka
RenderMonkey, kemudian kita tambahkan DirectX Effect dengan cara Effect
Group => Effect Group w/ DirectX Effect. Kemudian terlebih dahulu kita ganti
model/object sphere menjadi model Teapot dengan cara klik kanan Model pada
Effect1 kemudian pilih Change Model => Teapot.3ds, seperti gambar berikut :
Mengubah model menjadi Teapot
Setelah itu, pastikan model yang
tampil pada layar anda adalah model teapot bukan lagi sphere, seperti gambar di
bawah ini :
Tampilan awal model Teapot
Dikarenakan pada lambert shading
kita harus menggunakan Vector Normal, maka untuk mendapatkan Vector Normal dari
object dapat dilakukan dengan menambahkan node pada Stream Mapping Node dengan
cara double klik pada Stream Mapping atau klik kanan Stream Mapping
=> Edit. Kemudian klik Add, dan pilih NORMAL, ubah Data
Type menjadi FLOAT3, seperti gambar di bawah ini :
Stream Mapping pada RenderMonkey
Stream Mapping Node di atas
mendefinisikan informasi apa saja yang bisa kita peroleh dari model dan dapat
kita digunakan pada render engine.
Setelah kita mendefiniskan
Normal, selanjutnya kita harus mendefinisikan lampu menggunakan Vector Light.
Pada pemrograman shader terdapat 3 tipe lampu (sumber cahaya) yang bisa
digunakan, diantaranya adalah :
- Directional
Light : Merupakan type lampu (sumber
cahaya) yang memiliki komponen warna dan arah, tetapi tidak memiliki
komponen posisi. Sehingga intensitas cahaya yang diterima object tidak
dipengaruhi oleh jarak antara object dengan sumber cahaya. Akan tetapi
hanya dipengaruhi oleh arah dari sumber cahaya.
- Point
Light : Merupakan sumber cahaya yang
memiliki komponen warna dan posisi, tetapi tidak memiliki komponen arah. Point
Light didefinisikan sebagai sumber cahaya yang memancar dari satu titik
dan memancarkan cahaya merata ke segala arah. Intensitas cahaya yang
diterima object dari point light akan dipengaruhi oleh posisi dan jarak
object dari sumber cahaya.
Spot Light :
Merupakan sumber cahaya yang memiliki komponen warna, arah dan posisi. Sehingga
intensitas cahaya yang diterima object dari selain dipengaruhi arah sumber
cahaya juga dipengaruhi oleh jarak object dengan sumber cahaya. Spot Light juga
mempunyai efek kerucut dimana intensitas cahaya di tepi kerucut akan lebih
kecil dibandingkan dengan pusat kerucut
3 tipe sumber cahaya : Directional Light, Point Light, dan Spot Light
Pada percobaan kali ini, sumber
cahaya yang akan kita gunakan adalah sumber cahaya dengan tipe Directional
Light. Untuk membuatnya pada RenderMonkey dilakukan dengan membuat variable
float3 dengan cara klik kanan pada Effect1 => Add Variable => Float
=> Float3. Lalu kita ganti nama variablenya menjadi lightDirection.
Karena kita menggunakan Directional Light, maka nilai dari x,y, dan z
adalah nilai arah datangnya sumber cahaya. Kita misalkan saja arahnya (0, 0,
-1), seperti gambar berikut :
Menambahkan Directional Light pada program
Setelah itu, jangan lupa juga
menambahkan variabel Color. Variabel Color digunakan untuk warna dari Lambert
shading. Untuk menambahkan variabel Color bisa dilakukan dengan cara klik kanan
pada Effect1, lalu pilih Add Variable => Color, ubah nama
variabelnya menjadi Color. Sedangkan nilai Intensitas Cahaya pada tutorial
kali ini kita anggap tetap, yaitu 1.
Kemudian ganti code pada vertex
shader dengan code di bawah ini :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
float4x4
matWorldViewProjection;
float4x4
matWorld;
struct
VS_INPUT
{
float4
Position : POSITION0;
float3
Normal : NORMAL;
};
struct
VS_OUTPUT
{
float4
Position : POSITION;
float3
Normal : TEXCOORD0;
};
VS_OUTPUT
vs_main( VS_INPUT Input )
{
VS_OUTPUT
Output;
Output.Position
= mul (Input.Position, matWorldViewProjection );
Output.Normal
= mul (float4(Input.Normal,0), matWorld);
return(
Output );
}
|
sehingga pada kesempatan kali
ini hanya akan dijelaskan code-code yang belum dijelaskan pada artikel
sebelumnya.
Merupakan variabel matriks yang
digunakan untuk mentransformasi suatu nilai variabel dari object space
ke world space. Perbedaan object space dan world space
terletak pada titik pusatnya. Pada object space yg menjadi titik
pusatnya adalah titik pusat object. Sedangkan pada world space yg
menjadi titik pusatnya adalah titik pusat origin (0,0,0). Secara default pada
Render Monkey, tidak ada perbedaan antar object space dan world space
dikarenakan titik pusat object space dan world space berhimpitan. Akan tetapi,
hal ini bisa berbeda jika kita menggunakan software lain, misalnya saja
Blender. Gambar di bawah ini adalah contoh perbedaan titik pusat antara object
space dengan world space (pada software Blender 3D) :
Perbedaan titik pusat pada object space dan world space
Untuk dapat menggunakan variabel
matWorld, kita harus terlebih dahulu menambahkannya ke dalam program kita
dengan cara klik kanan Effect1 => Add Variable => Matrix =>
Predefined => matWorld. Agar program dapat berjalan lancar pastikan kita
sudah terdapat variable matWorld pada Effect1.
1
|
float3
Normal : NORMAL;
|
Mendefinisikan variable Normal
dengan semantik NORMAL yang telah kita tambakan pada Stream Mapping, digunakan
untuk mendapatkan normal vector dari model.
1
|
float3
Normal : TEXCOORD0;
|
Variable untuk menampung nilai
vector Normal dan vector Light Direction. Nilai yang ditampung dalam variabel
ini merupakan Output dari proses Vertex Shader.
1
2
|
Output.Position
= mul (Input.Position, matWorldViewProjection );
Output.Normal
= mul (float4(Input.Normal,0), matWorld);
|
Mengubah nilai variable Normal
pada struct Output untuk menampung nilai vector Normal. Vector Normal diperoleh
dari input model (Input.Normal). Dikarenakan Normal yg kita peroleh dari stream
mapping berada pada object space maka untuk mentransformasi ke world space kita
harus mengalikannya dengan matWorld. dengan terlebih dahulu mengubahnya menjadi
float4 karena matriks matWorld berukuran 4×4. Penambahan nilai 0 untuk
perkalian variable Input.Normal dikarenakan variable tersebut adalah
vector, sedangkan apabila variable tersebut berupa posisi maka nilai yg
ditambahkan pada adalah 1.
Setelah mengganti code pada
vertex shader, langkah selanjutnya adalah mengganti code pada pixel shader
dengan code berikut ini :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
float4
Color;
float3
lightDirection;
struct
PS_INPUT
{
float4
Position : POSITION;
float3
Normal : TEXCOORD0;
};
float4
ps_main(PS_INPUT Input) : COLOR0
{
float
NdotL =
dot(Input.Normal,normalize(lightDirection;));
float4
Diffuse = NdotL * Color;
return
Diffuse;
}
|
Berikut adalah penjelasan dari
code pada pixel shader di atas :
Mendefinisikan variabel Color
yang telah kita tambahkan sebelumnya.
Mendefinisikan variable light Direction yang sudah kita tambahkan
sebelumnya. Variabel lightDirection berada pada world space.
1
2
3
4
5
|
struct
PS_INPUT
{
float4
Position : POSITION;
float3
Normal : TEXCOORD0;
};
|
Struct PS_INPUT merupakan struct
untuk menampung variabel-variabel yang akan dijadikan sebagai input pada pixel
shader. Karena input yang digunakan pada pixel shader merupakan output dari
vertex shader, sehingga variabel dan nilai yang ada dalam struct PS_INPUT sama
dengan variabel yang ada pada struct VS_OUTPUT.
1
2
3
4
5
6
7
|
float4
ps_main(PS_INPUT Input) : COLOR0
{
float
NdotL =
dot(Input.Normal,normalize(lightDirection;));
float4
Diffuse = NdotL * Color;
return
Diffuse;
}
|
Variabel NdotL digunakan untuk
menampung nilai perkalian dot product antara Vector Normal dengan Vector Light
Direction yang telah dinormalisasi. Yang terakhir adalah Variabel Diffuse
merupakan variabel yang untuk menampung nilai Lambert Shading yang
diperoleh dari perhitung rumus yang telah dijelaskan di atas (ID=(N
. L) C IL) dengan nilai IL adalah 1.
Nilai variabel Diffuse inilah yang digunakan untuk menampilkan object dengan
metode Lambert Shading.
Setelah kita membuat code pada
vertex shader dan pixel shader, selanjutnya kita tinggal menjalankan code-code
yang telah kita buat tersebut dengan mengklik ikon Compile All Shader in
Workspace () pada RenderMonkey. Selanjutnya kita akan melihat bahwa
model teapot telah berubah tampilannya menjadi seperti gambar di bawah ini :
Output dari Lambert Shading
Bagian teapot yang terang adalah
bagian yang menghadap ke arah cahaya, sedangkan bagian yang membelakangi sumber
cahaya.
Kita bisa mengatur dan mengubah
nilai dari variabel-variabel lightDirection, dan Color, untuk mendapatkan
tampilan sesuai dengan apa yang kita inginkan. Gambar berikut ini adalah output
dari lambert shading dengan nilai lightDirection= (1.5, 0.5, -1.0), Color
(RGBA) = (126,255,21,255).
Output Lambert Shading dengan mengubah nilai variable color
dan lightDirection
•
Metodenya
melliputi : Penentuan permukaan tampak pada setiap pixel, Perhitungan normal
pada permukaan, dan Mengevaluasi intensitas cahaya dan warna menggunakan model
illuminasi.
•
Metode
pembuatan bayangan cukup mahal, untuk membuatnya lebih efisien dilakukan
melalui kustomisasi untuk merepresentasikan permukaan yang spesifik.
•
Jaring poligon
secara umum sering digunakan untuk merepresentasikan permukaan yang
kompleks.
•
Informasi
geometri yang tersedia hanyalah vertice dari poligon.
•
Interpolasi
dari model bayangan dapat digunakan untuk meningkatkan substansi secara lebih
efisien.
6 Ragam Teknik Bayangan
• Constant Shading
• Gouraud Shading
• Phong Shading
Flat Shadding :
Pemberian bayangan rata (flat)
merupakan cara termudah untuk dibuat. Bayangan rata mempunyai karakteristik
sebagai berikut :
·
Pemberian tone yang sama untuk setiap polygon
·
Penghitungan jumlah cahaya mulai dari titik tunggal pada permukaan
·
Penggunaan satu normal untuk seluruh permukaan.
Contoh gambar Flat Shading:
1). Gouraud shading
Sebuah teknik yang dikembangkan
oleh Henri Gouraud pada awal tahun 1970. Teknik ini menampilkan kesan gelap
terang dari sebuah permukaan objek dengan memperhitungkan warna dan penyinaran
dari tiap sudut segitiga. Gouraud shading adalah metode rendering sederhana
jika dibandingkan dengan Phong shading. Teknik ini tidak menghasilkan efek shadow
dan refleksi. Metode ini digunakan dalam grafik
komputer untuk mensimulasikan efek cahaya yang berbeda dan warna di permukaan
benda.Dalam prakteknya, Gouraud shading digunakan untuk mencapai pencahayaan
halus rendah-poligon permukaan tanpa berat menghitung kebutuhan komputasi
pencahayaan untuk setiap pixel.
Contoh gambar Gouraud Shading:
Phong shading
Phong shading mengacu pada seperangkat teknik dalam
komputer grafis 3D. Phong shading meliputi model bagi refleksi cahaya dari
permukaan dan metode yang kompatibel memperkirakan pixel warna oleh
interpolating permukaan normal di rasterized poligon. Model refleksi juga
mungkin disebut sebagai refleksi Phong model, Phong Phong iluminasi atau
pencahayaan.Ini mungkin disebut Phong shading dalam konteks pixel shader, atau
tempat lain di mana perhitungan pencahayaan dapat disebut sebagai
"shading". Metode interpolasi juga mungkin disebut Phong interpolasi,
yang biasanya disebut dengan "per-pixel pencahayaan".Biasanya disebut
"pelindung" bila dibandingkan dengan metode interpolasi lain seperti
Gouraud pelindung atau flat shading. Refleksi yang Phong model tersebut dapat
digunakan bersama dengan salah satu metode interpolasi. Metode ini dikembangkan
oleh Phong Bui Tuong di Universitas Utah.
Secara Garis besar, gambar perbedaan dari Flat shading, Gouraud shading dan Phong shading:
CONTOH
saya mempunyai konsep untuk
membuat sebuah replika planet Bumi dengan menyertakan tulisan UNIVERSITAS
GUNADARMA. Saya akan menjelaskan tentang tahap pembuatannya.
Tahap Pembuatan :
Buka software BLENDER, kemudian buat sebuah bola.
Caranya klik Add - Mesh - UVsphere. Kemudian set Segment :
32, Ring : 32, Radius : 3.00.
2. Langkah
berikutnya adalah menambahkan gambar permukaan Bumi pada bola tersebut. Pada
panel Shading klik Material buttons lalu pilih Add
New.
Selanjutnya
pada bagian Texture buttons pilih Add New.
Lalu pada Texture Type pilih Image.
Klik Load
untuk membuat gambar permukaan Bumi. Gambar yang saya pakai adalah : Sebenarnya ketika di Render, gambarnya berporos
pada sumbu Y. Jadi saya akan mengubahnya menjadi sumbu Z. Caranya adalah klik Material
buttons pada panel Shading, kemudian klik pada Map
Input lalu klik Sphe
3. Langkah
selanjutnya adalah membuat background angkasa. Rasanya kurang jika hanya
membuat replika planet Bumi tanpa adanya bintang-bintang. Caranya adalah klik World
buttons pada panel Shading, lalu buat warnanya menjadi
hitam
4. Selanjutnya
saya akan membuat bintang dengan cara klik tab Mist/Stars/Physics.
Kemudian klik Stars
5. Gambarnya sudah hampir jadi,
hanya saja masih agak kasar. Jadi saya akan membuatnya lebih halus dengan
cara klik Editing panel lalu klik Set Smooth
pada tab Links and Materials.
6. Langkah
terakhir adalah membuat tulisan UNIVERSITAS GUNADARMA. Caranya klik Add -
Text. Untuk mengedit kata-kata maka kita tekan tombol Tab
setelah itu kita bisa memasukkan kata/kalimat yang kita inginkan. Lalu untuk
membuat tulisan menjadi lebih tebal maka kita atur pada bagian Extrude. Hasilnya
akan tampak seperti ini :
7. Langkah
terakhir adalah proses rendering. Klik Render - Render Current Frame.
Hasilnya akan tampak seperti ini.
Shader Subsurface Scattering
Subsurface scattering (SSS)
adalah effek pantulan cahaya sekitar bawah permukaan material, dan umumnya
terdapat pada bahan seperti kulit, lilin, dan marmer. Hasil pada tepi
bayangan tampak agak kabur, karena
cahaya berdifusi keluar dari daerah terang ke area bayangan. Sebagai hamburan
cahaya, sebagian diserap, dengan cahaya yang tersisa biasanya mengambil warna
dari bahan yang mendasarinya. Dalam kasus kulit, daging dan darah dibawah kulit
menyebabkan persebaran cahaya yang muncul berwarna jingga merah
Menghubungkan
Teks dengan Bayangan 3D
Sebelumnya,
klik menu Layer > Rasterize > Type.
Selanjutnya gunakan Polygonal Lasso Tool (L) dan hubungkanlah sudut setiap
huruf dengan bayangan 3D, isilah area seleksi dengan wrna merah tua (#990000)
sehingga membentuk teks 3D berbentuk balok, seperti yang ditunjukkan di bawah
ini.
Menambahkan
Bayangan Pada Layer Teks
Sekarang
kita telah mendapatkan teks 3D yang diinginkan, untuk menambahkan efek
bayangan, pastikan Anda masih berada pada layer teks yang berwarna merah gelap,
klik menu Layer > Layer Style > Gradient Overlay,
ikuti seting Gradient Overlay serta Color Overlay seperti gambar
di bawah ini.
Menambahkan Bayangan Teks
Untuk menambahkan bayangan di bawah teks, pergi
ke layer teks warna merah terang, buat duplikat layer dengan menekan tombol Cmd/Ctrl+J,
selanjutnya isi layer baru dengan warna hitam (#000000). Pindahkan
layer ini tepat dibawah layer teks yang berwarna merah gelap, gunakan Transform
Tool (T) atau tekan Cmd/Ctrl+T, tarik kotak Transform Tool ke atas, bawah,
kiri atau kanan untuk mendapatkan bayangan teks yang sesuai, seperti gambar di
bawah.
Selanjutnya
klik menu Layer > Rasterize > Type, kemudian pilih
menu Filter > Blur > Motion Blur, ikuti gambar
dibawah untuk mengatur blur bayangan teks. Untuk mendapatkan bayangan
yang lebih kuat, gandakan layer dengan menekan tombol Cmd/Ctrl+J, kemudian
gabungkan kedua layer ini dengan memilih menu Layer > Merge Down
Membuat
Blur Shadow
Buat
lagi duplikat layer untuk layer shadow, selanjutnya gabungkan kedua layer ini
dengan memilih menu Layer > Merge Down, pilih menu Filter
> Blur > Gaussian Blur dan sesuaikan Radius ke 12.0
BAB
5
PENUTUP
5.1
PENUTUP
Demikian materi
yang dapat kami paparkan mengenai materi yang menjadi pokok bahasan dalam
penulisan makalah ini, tentunya masih banyak kekurangan dan kelemahan dalam
penulisan ini, dikarenakan kurangnya referensi atau rujukan tentang apa yang
menjadi judul dari makalah ini.
Penulis berharap dengan adanya makalah ini, maka dapat
membantu pembaca yang ingin membuat objek 3D dengan bantuan metode shading atau
sekedar menyalurkan kreatifitas.
Penulis juga berharap kepada para pembaca agar memberi
kritik dan saran yang membangun kepada penulis demi sempurnanya makalah ini dan
penulisan-penulisan selanjutnya. Penulis juga mengharapkan kepada yang membaca
makalah ini dapat termotivasi oleh makalah ini dalam mencapai keinginannya
dalam memajukan dunia animasi di Indonesia.
Sekian penutup dari kami, semoga makalah ini berkenan di
hati pembaca dan kami ucapkan terima kasih yang sebesar-besarnya.
5.2
KESIMPULAN
Berdasarkan penulisan
tentang shading modeling diatas, maka dapat ditarik beberapa kesimpulan sebagai
berikut:
- Shading
merupakan proses untuk membuat suatu objek yang kita buat terlihat lebih
hidup.
- Metode
shading dapat digunakan pada aplikasi yang berorientasi pada pembuatan
objek-objek 3D.
- Shading
dibagi menjadi beberapa ragam, seperti flat
shading, phong shading, gouraud shading dan blinn shading.
- shading mengacu pada proses mengubah warna berdasarkan sudut
terhadap cahaya dan jarak dari cahaya untuk menciptakan efek photorealistic.
- Model
shading menentukan bagaimana
suatu permukaan objek muncul dalam kondisi pencahayaan yang berbeda-beda.
- Model
3D adalah perwakilan dari setiap objek tiga dimensi (nyata atau bayangan)
dalam lingkungan perangkat lunak 3D.
5.3
SARAN
Berdasarkan kesimpulan diatas, adapun
saran yang dapat penulis sampaikan adalah sebagai berikut:
- Perlu adanya ilmu lebih lanjut
yang mempelajari tentang model shading.
- Perlu ditingkatkan lagi
pengajaran pada bidang ini, agar kita dapat memajukan animasi Indonesia.
- Perlu adanya aplikasi-aplikasi
yang dapat membantu lebih lanjut dalam pembuatan objek berorientasi 3D
dengan metode shading.
- Adanya aplikasi yang compatible dengan hampir semua
perangkat.
DAFTAR PUSTAKA