Tugas Softskill
Contoh gambar Gouraud Shading:
Buat lagi duplikat layer untuk layer shadow, selanjutnya gabungkan kedua layer ini dengan menentukan sajian Layer > Merge Down, pilih menu Filter > Blur > Gaussian Blur dan sesuaikan Radius ke 12.0
BAB 4
KASUS/CONTOH PEMANFAATAN TERSEBUT UNTUK KONSEP SHADING MODELLING
Goraud Shading
Grafik 3-D, sebuah teknik yg 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 yaitu metode rendering sederhana jikalau dibandingkan dengan Phong shading. Teknik ini tidak menghasilkan imbas shadow dan refleksi.
Pada grafik 3D, poligon yg membentuk gambaran perlu diwarnai sehingga terlihat dengan baik. Gouraud shading yaitu Keliru satu proses yg menggunakan algoritma tertentu untuk menciptakan gradasi warna. Pewarnaan (shading) ini sanggup dipakai pada games.
Sebuah teknik yg 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 yaitu metode rendering sederhana jikalau dibandingkan dengan Phong shading. Teknik ini tidak menghasilkan imbas shadow dan refleksi. Metode ini dipakai dalam grafik komputer untuk mensimulasikan imbas cahaya yg tidak sama dan warna di permukaan benda.Dalam prakteknya, Gouraud shading dipakai untuk mencapai pencahayaan halus rendah-poligon permukaan tanpa berat menghitung kebutuhan komputasi pencahayaan untuk setiap pixel.
(Klik gambar Untuk Memperbesar)
Contoh gambar Gouraud Shading:
Flat shading
Flat shading : suatu teknik shades masing-masing polygon dari suatu objek menurut pada polygon “normal” dan posisi serta intensitas sumber cahaya.
Pemberian bayangan rata (flat) merupakan Caranya termudah untuk dibuat. Bayangan rata mempunyai karakteristik sebagai berikut :
• Pemberian tone yg sama untuk setiap polygon
• Penghitungan jumlah cahaya mulai dari titik tunggal pada permukaan
• Penggunaan satu normal untuk seluruh permukaan.
Contoh gambar Flat Shading:
SeCaranya garis besar perbedaan antara Gouraud shading dengan flat shading yaitu mirip gambar dibawah ini :
Cel Shading
Cel Shading (dalam klarifikasi yg paling sederhana) yaitu sebuah teknik dalam merender gambar 3D semoga karenanya tampak mirip kartun dengan ciri-ciri adanya outline/garis pinggir dan pencahayaan yg sederhana/kurang realistis.
Caranya Pertama:
Pada Caranya yg pertama, saya Bakal berusaha menjelaskan bagaimana menghasilkan effect
ini dengan menggunakan jadwal Anim8or. Pagi pengguna jadwal 3D modeller yg lain bisa menyesuaikan. Pertama-tama siapkan sebuah model.
Bila model ini terdiri dari beberapa mesh, sebaiknya semua mesh tersebut di satukan dengan perintah Join Solid (Build > Join Solid). Buat duplikat dari model tersebut dan letakkan duplikatnya pada object yg terpisah. Seterusnya kita Bakal mengedit model yg kedua
Pilih semua faces/trianggle-nya.
Extrude semua faces/trianglen-ya dengan menggunakan perintah (Extrude Faces connected) sehingga modelnya Bakal tampak menggembung. Sebaiknya jangan terlalu besar Saat meng-extrude face-nya semoga imbas yg dihasilkan juga tidak terlalu tebal. Perintah Extrude Faces Connected Bakal menciptakan object membesar seCaranya proporsional.
Perintah ini sedikit tidak sama dengan Scale. Pada perintah Scale, object diperbesar dengan menggunakan sentra object sebagai sentra scale. Dengan menggunakan Extrude Faces Connected, tiap object Bakal 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 yg bersifat bolak balik. Bagian depan di set transparant, sedangkan bab belakang di set dengan warna hitam. Untuk lebih jelasnya perhatikan gambar berikut:
setelah itu, kita tinggal menggabungkan object pertama dan kedua:
Hasilnya yaitu sebuah model dengan outline yg tampak mirip gambar pada game HARVESTMOON 2: SAVE THE HOMELAND
Caranya Kedua:
Pada Caranya kedua, kita Bakal menciptakan effect yg sama dengan bahasa pemrograman. Untuk itu sebaiknya dirimu mempunyai dasar pengetahuan perihal pemrograman dan model 3D. Kodenya yaitu sebagai berikut. Kode ini ditulis dengan menggunakan Blitz3D. Bisa mendownload Blitz3D disini.
Code: [Select]
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 bab load kita meload 2 buah model yg berasal dari file yg sama. Pada bab FX, kita mengedit model yg diload kedua. Model ini di edit per vertex. Prosesnya sama dengan proses yg dilakukan dengan Anim8or, hanya saja disini kita menggunakan code untuk menghasilkan FX seCaranya realtime. Kita membesarkan model sedikit dengan Caranya menggerakkan tiap vertexnya searah dengan arah normal dari vertex tersebut. Kemudian modelnya dibalik dan diberi warna hitam atau warna yg lainnya yg perlu diperhatikan disini yaitu kita tidak bisa menzoom modelnya seCaranya langsung. Menzoom model Bakal menyebabkan model diperbesar relative terhadap origin. Hal ini tidak Bakal menghasilkan FX yg bagus. Untuk menghasilkan FX mirip cel shade maka tiap vertex Musti digerakkan searah dengan arah normal dari vertex tersebut.
Pada bab render, prosesnya berjalan mirip biasa. Kedua model dianimasikan seCaranya bersama-sama. Model yg kedua Bakal tampak dari belakang, sehingga warnanya tampak hitam dan alasannya ukurannya yg sedikit besar maka Bakal tampak mirip outline.
Bayangan yaitu proses penentuan warna dari semua pixel yg 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 seCaranya umum sering dipakai untuk merepresentasikan permukaan yg kompleks. Informasi geometri yg tersedia hanyalah vertice dari polygon. Interpolasi dari model bayangan sanggup dipakai untuk meningkatkan substansi seCaranya lebih efisien.
Unsur yg menghipnotis bayangan yaitu :
1. Normal Vektor
Normal Vector yaitu vector yg arahnya tegak lurus pada luasan (face). Normal Vector sanggup diperoleh dari perkalian silang (cross-product) dari dua vector yg berada pada face. Besar dari Normal Vector Vector tegantung pada hasil perkalian silangnya.
2. Unit Vektor
Unit Vector yaitu vektor yg besarnya yaitu satu satuan dan arahnya tergantung arah vektor asalnya. Besar suatu vektor sanggup diperoleh dengan supaya vektor v menjadi unit vektor maka semua koefisien (vx,vy,vz)
3. Optical Vektor
Sebuah konsep mengenai pencahayaan yg jatuh pada sebuah benda. Model bayangan dibagi menjadi dua yaitu :
A. Direct Line
Flat shading
Satu face mempunyai warna yg sama dan flat shading menggunakan model Phong untuk optical view. Pemberian bayangan rata (flat) merupakan Caranya termudah untuk dibuat. Bayangan rata mempunyai karakteristik sebagai berikut :
• Pemberian tone yg 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 yaitu rata dan semua titik pada permukaan mempunyai jarak yg sama dengan sumber cahaya.
Gouraud shading
Sebuah teknik yg 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 yaitu metode rendering sederhana jikalau dibandingkan dengan Phong shading. Teknik ini tidak menghasilkan imbas shadow dan refleksi. Metode ini dipakai dalam grafik komputer untuk mensimulasikan imbas cahaya yg tidak sama dan warna di permukaan benda.Dalam prakteknya, Gouraud shading dipakai 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 yangkompatibel 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 sanggup disebut sebagai "shading". Metode interpolasi juga mungkin disebut Phong interpolasi, yg biasanya disebut dengan "per-pixel pencahayaan".Biasanya disebut "pelindung" bila dibandingkan dengan metode interpolasi lain mirip Gouraud pelindung atau flat shading.Refleksi yg Phong model tersebut sanggup dipakai bersama dengan Keliru satu metode interpolasi.
2. Indirect Line
- Ray Tracing
- Radiosity
Suatu medium dengan sejumlah diskrit. Masalah sederhana sanggup dianalisis dengan mengembangkan beberapa sinar dengan menggunakan matematika sederhana. Analisis yg lebih detailnya sanggup dilakukan dengan menggunakan komputer untuk mengembangkan banyak sinar.
Ray tracing bekerja dengan mengasumsikan bahwa partikel atau gelombang sanggup dimodelkan sebagai sejumlah besar berkas sinar yg sangat sempit, dan bahwa ada beberapa sinar yg melewati batas jarak mirip sinar yg bertempat datar. Sinar pelacak Bakal mepercepat sinar yg melewati jarak ini, dan kemudian menggunakan tempat turunan dari medium untuk menghitung arah sinar baru. Dari lokasi ini, sinar yg gres Bakal dikirim keluar dan proses Bakal diulang hingga jalan yg Komplit dihasilkan. Jika simulasinya meliputi benda padat, sinar sanggup diuji pada persimpangan dengan setiap langkahnya, melaksanakan pembiasaan pada arah sinar jikalau ditemukan adanya suatu tabrakan. Properti lain dari sinar sanggup diubah sebagai pencepatan simulasi juga., mirip intensitas, panjang gelombang, atau polarisasi. Contoh kegunaan Ray Tracing (physics) ada pada sinyal radio, samudra akustik, dan desain optis.
Ray Tracing (graphics), yg dipakai untuk generasi gambar 3D.
Dalam grafik komputer, ray tracing yaitu teknik untuk menghasilkan sebuah gambar dengan menelusuri jalan cahaya melalui pixel dalam gambar pesawat. Teknik ini bisa menghasilkan tingkat ketajaman gambar yg sangat tinggi – biasanya lebih tinggi dari pada metode tipe scanline rendering, tetapi pada biaya komputasi yg lebih besar. Hal ini menciptakan ray tracing paling cocok untuk aplikasi di mana gambar sanggup di-render perlahan terlebih dahulu, mirip pada gambar membisu dan film dan special effects televisi, dan kurang lebih cocok untuk real-time aplikasi mirip game komputer, di mana kecepatan sangat penting. Ray tracing bisa mensimulasikan aneka macam imbas optis, mirip refleksi dan pembiasan penyebaran, dan aberasi kromatik. Ray tracing telah dipakai dalam lingkungan produksi untuk off-line rendering selama beberapa dekade kini – yaitu rendering yg tidak perlu menuntaskan seluruh adegan dalam waktu kurang dari beberapa milidetik. Tentu saja kita dihentikan men-generalisasi dan membiarkan pengguna mengetahui bahwa beberapa implementasi raytracer telah bisa menekan tanda “interaktif”. Sekarang juga disebut “real-time ray tracing”, yaitu bidang yg sangat aktif sekarang, alasannya sudah dianggap sebagai hal yg besar bahwa akselerator 3D perlu dipercepat. Raytracer sungguh menyukai lokasi-lokasi yg kualitas refleksinya penting. Banyak imbas yg sepertinya sulit dicapai dengan teknik lain yg 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
2. Backward Ray Tracing
Dalam pemrograman shader terdapat 3 macam standar pencahayaan (ligthing model) yg sering digunakan, yaitu :
1. Ambient Lighting : Merupakan Keliru satu ligthing model yg dipakai tanpa memperhatikan arah datangnya cahaya / sumber cahaya (light source). Makara pada Ambient Lighting, permukaan object Bakal mendapatkan cahaya dari segala arah dengan nilai dan intensitas yg sama.Dimana seluruh permukaan object Bakal mempunyai warna yg sama.
2. Diffuse Lighting : Merupakan lighting model yg memperhatikan arah datangnya cahaya dan Bakal memantulkan/menyebarkan cahaya ke aneka macam arah. Makara pada Diffuse Lighting, permukaan object yg berhadapan dengan sumber cahaya Bakal memerima cahaya dan menyebarkannya ke aneka macam arah.
3. Specular Lighting : Sama mirip Diffuse Lighting, Specular Lighting merupakan lighting model yg memperhatikan arah datangnya cahaya. Bakal tetapi pada Specular Lighting, cahaya yg tiba hanya Bakal dipantulkan pada 1 arah.
Pada kesempatan kali ini, kita Bakal mengulas perihal Diffuse Lighting. Keliru metode / teknik yg paling elok untuk menciptakan Diffuse Lighting yaitu dengan menggunakan metode Lambertian Reflection atau biasa disebut juga dengan Lambert Shading. SeCaranya umum, rumus dari metode Lambert yaitu sebagai berikut :
Dimana :
ID = Intensity Diffuse (Intensitas cahaya dari hasil Diffuse)
L = normalized Light Direction (Vector arah datangnya cahaya / sumber cahaya yg telah dinormalisasi)
N = Normal Vector (Vector yg 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 Bakal mengimplementasikannya pada RenderMonkey. setelah membuka RenderMonkey, kemudian kita tambahkan DirectX Effect dengan Caranya Effect Group => Effect Group w/ DirectX Effect. Kemudian terlebih dahulu kita ganti model/object sphere menjadi model Teapot dengan Caranya klik kanan Model pada Effect1 kemudian pilih Change Model => Teapot.3ds, mirip gambar berikut :
Mengubah model menjadi Teapot
setelah itu, pastikan model yg tampil pada layar anda yaitu model teapot bukan lagi sphere, mirip gambar di bawah ini :
Tampilan awal model Teapot
Dikarenakan pada lambert shading kita Musti menggunakan Vector Normal, maka untuk mendapatkan Vector Normal dari object sanggup dilakukan dengan menambahkan node pada Stream Mapping Node dengan Caranya double klik pada Stream Mapping atau klik kanan Stream Mapping => Edit. Kemudian klik Add, dan pilih NORMAL, ubah Data Type menjadi FLOAT3, mirip gambar di bawah ini :
Stream Mapping pada RenderMonkey
Stream Mapping Node di atas mendefinisikan isu apa saja yg bisa kita peroleh dari model dan sanggup kita dipakai pada render engine.
setelah kita mendefiniskan Normal, selanjutnya kita Musti mendefinisikan lampu menggunakan Vector Light. Pada pemrograman shader terdapat 3 tipe lampu (sumber cahaya) yg bisa digunakan, diantaranya yaitu :
1. Directional Light : Merupakan type lampu (sumber cahaya) yg mempunyai komponen warna dan arah, tetapi tidak mempunyai komponen posisi. Sehingga intensitas cahaya yg diterima object tidak dipengaruhi oleh jarak antara object dengan sumber cahaya. Bakal tetapi hanya dipengaruhi oleh arah dari sumber cahaya.
2. Point Light : Merupakan sumber cahaya yg mempunyai komponen warna dan posisi, tetapi tidak mempunyai komponen arah. Point Light didefinisikan sebagai sumber cahaya yg memancar dari satu titik dan memancarkan cahaya merata ke segala arah. Intensitas cahaya yg diterima object dari point light Bakal dipengaruhi oleh posisi dan jarak object dari sumber cahaya.
3. Spot Light : Merupakan sumber cahaya yg mempunyai komponen warna, arah dan posisi. Sehingga intensitas cahaya yg diterima object dari selain dipengaruhi arah sumber cahaya juga dipengaruhi oleh jarak object dengan sumber cahaya. Spot Light juga mempunyai imbas kerucut dimana intensitas cahaya di tepi kerucut Bakal lebih kecil dibandingkan dengan sentra kerucut.
3 tipe sumber cahaya : Directional Light, Point Light, dan Spot Light
Pada percobaan kali ini, sumber cahaya yg Bakal kita gunakan yaitu sumber cahaya dengan tipe Directional Light. Untuk membuatnya pada RenderMonkey dilakukan dengan menciptakan variable float3 dengan Caranya 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 yaitu nilai arah datangnya sumber cahaya. Kita misalkan saja arahnya (0, 0, -1), mirip gambar berikut :
Menambahkan Directional Light pada program
setelah itu, jangan lupa juga menambahkan variabel Color. Variabel Color dipakai untuk warna dari Lambert shading. Untuk menambahkan variabel Color bisa dilakukan dengan Caranya klik kanan pada Effect1, kemudian 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 :
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 Bakal dijelaskan code-code yg belum dijelaskan pada artikel sebelumnya.
1. float4x4 matWorld;
Merupakan variabel matriks yg dipakai 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 yaitu titik sentra object. Sedangkan pada world space yg menjadi titik pusatnya yaitu titik sentra origin (0,0,0). SeCaranya default pada Render Monkey, tidak ada perbedaan antar object space dan world space dikarenakan titik sentra object space dan world space berhimpitan. Bakal tetapi, hal ini bisa tidak sama jikalau kita menggunakan software lain, contohnya saja Blender. Gambar di bawah ini yaitu pola perbedaan titik sentra antara object space dengan world space (pada software Blender 3D) :
Perbedaan titik sentra pada object space dan world space
Untuk sanggup menggunakan variabel matWorld, kita Musti terlebih dahulu menambahkannya ke dalam jadwal kita dengan Caranya klik kanan Effect1 => Add Variable => Matrix => Predefined => matWorld. supaya jadwal sanggup berjalan lancar pastikan kita sudah terdapat variable matWorld pada Effect1.
2. float3 Normal : NORMAL;
Mendefinisikan variable Normal dengan semantik NORMAL yg telah kita tambakan pada Stream Mapping, dipakai untuk mendapatkan normal vector dari model.
3. float3 Normal : TEXCOORD0;
Variable untuk menampung nilai vector Normal dan vector Light Direction. Nilai yg ditampung dalam variabel ini merupakan Output dari proses Vertex Shader.
4. 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 Musti mengalikannya dengan matWorld. dengan terlebih dahulu mengubahnya menjadi float4 alasannya matriks matWorld berukuran 4×4. Penambahan nilai 0 untuk perkalian variable Input.Normal dikarenakan variable tersebut yaitu vector, sedangkan apabila variable tersebut berupa posisi maka nilai yg ditambahkan pada yaitu 1.
setelah Mengubah code pada vertex shader, langkah selanjutnya yaitu Mengubah code pada pixel shader dengan code berikut ini :
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 yaitu klarifikasi dari code pada pixel shader di atas :
1 float4 Color;
Mendefinisikan variabel Color yg telah kita tambahkan sebelumnya.
1 float3 lightDirection;
Mendefinisikan variable light Direction yg sudah kita tambahkan sebelumnya. Variabel lightDirection berada pada world space.
struct PS_INPUT
{
float4 Position : POSITION;
float3 Normal : TEXCOORD0;
};
Struct PS_INPUT merupakan struct untuk menampung variabel-variabel yg Bakal dijadikan sebagai input pada pixel shader. Karena input yg dipakai pada pixel shader merupakan output dari vertex shader, sehingga variabel dan nilai yg ada dalam struct PS_INPUT sama dengan variabel yg ada pada struct VS_OUTPUT.
float4 ps_main(PS_INPUT Input) : COLOR0
{
float NdotL = dot(Input.Normal,normalize(lightDirection;));
float4 Diffuse = NdotL * Color;
return Diffuse;
}
Variabel NdotL dipakai untuk menampung nilai perkalian dot product antara Vector Normal dengan Vector Light Direction yg telah dinormalisasi. yg terakhir yaitu Variabel Diffuse merupakan variabel yg untuk menampung nilai Lambert Shading yg diperoleh dari perhitung rumus yg telah dijelaskan di atas (ID=(N . L) C IL) dengan nilai IL yaitu 1. Nilai variabel Diffuse inilah yg dipakai untuk menampilkan object dengan metode Lambert Shading.
setelah kita menciptakan code pada vertex shader dan pixel shader, selanjutnya kita tinggal menjalankan code-code yg telah kita buat tersebut dengan mengklik ikon Compile All Shader in Workspace () pada RenderMonkey. Selanjutnya kita Bakal melihat bahwa model teapot telah berubah tampilannya menjadi mirip gambar di bawah ini :
Output dari Lambert Shading
Bagian teapot yg terang yaitu bab yg menghadap ke arah cahaya, sedangkan bab yg membelakangi sumber cahaya.
Kita bisa mengatur dan mengubah nilai dari variabel-variabel lightDirection, dan Color, untuk mendapatkan tampilan sesuai dengan apa yg kita inginkan. Gambar berikut ini yaitu 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 yg spesifik.
• Jaring poligon seCaranya umum sering dipakai untuk merepresentasikan permukaan yg kompleks.
• Informasi geometri yg tersedia hanyalah vertice dari poligon.
• Interpolasi dari model bayangan sanggup dipakai untuk meningkatkan substansi seCaranya lebih efisien.
4 Ragam Teknik Bayangan
• Constant Shading
• Gouraud Shading
• Phong Shading
• Flat shading
Pemberian bayangan rata (flat) merupakan Caranya termudah untuk dibuat. Bayangan rata mempunyai karakteristik sebagai berikut :
• Pemberian tone yg 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 yg 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 yaitu metode rendering sederhana jikalau dibandingkan dengan Phong shading. Teknik ini tidak menghasilkan imbas shadow dan refleksi. Metode ini dipakai dalam grafik komputer untuk mensimulasikan imbas cahaya yg tidak sama dan warna di permukaan benda.Dalam prakteknya, Gouraud shading dipakai untuk mencapai pencahayaan halus rendah-poligon permukaan tanpa berat menghitung kebutuhan komputasi pencahayaan untuk setiap pixel.
Contoh gambar Gouraud Shading:
2) Phong shading
Phong shading mengacu pada seperangkat teknik dalam komputer grafis 3D. Phong shading meliputi model bagi refleksi cahaya dari permukaan dan metode yg 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 sanggup disebut sebagai "shading". Metode interpolasi juga mungkin disebut Phong interpolasi, yg biasanya disebut dengan "per-pixel pencahayaan".Biasanya disebut "pelindung" bila dibandingkan dengan metode interpolasi lain mirip Gouraud pelindung atau flat shading. Refleksi yg Phong model tersebut sanggup dipakai bersama dengan Keliru satu metode interpolasi. Metode ini dikembangkan oleh Phong Bui Tuong di Universitas Utah.
SeCaranya Garis besar, gambar perbedaan dari Flat shading, Gouraud shading dan Phong shading:
CONTOH :
saya mempunyai konsep untuk menciptakan sebuah replika planet Bumi dengan menyertakan goresan pena UNIVERSITAS GUNADARMA. Saya Bakal menjelaskan perihal tahap pembuatannya.
Tahap Pembuatan :
1. Buka software BLENDER, kemudian buat sebuah bola. Caranyanya klik Add - Mesh - UVsphere. Kemudian set Segment : 32, Ring : 32, Radius : 3.00.
2. Langkah berikutnya yaitu menambahkan gambar permukaan Bumi pada bola tersebut. Pada panel Shading klik Material buttons kemudian pilih Add New.
Selanjutnya pada bab Texture buttons pilih Add New.
Lalu pada Texture Type pilih Image.
Klik Load untuk menciptakan gambar permukaan Bumi. Gambar yg saya pakai yaitu : Sebenarnya Saat di Render, gambarnya berporos pada sumbu Y. Makara saya Bakal mengubahnya menjadi sumbu Z. Caranyanya yaitu klik Material buttons pada panel Shading, kemudian klik pada Map Input kemudian klik Sphe.
3. Langkah selanjutnya yaitu menciptakan background angkasa. Rasanya kurang jikalau hanya menciptakan replika planet Bumi tanpa adanya bintang-bintang. Caranyanya yaitu klik World buttons pada panel Shading, kemudian buat warnanya menjadi hitam.
4. Selanjutnya saya Bakal menciptakan bintang dengan Caranya klik tab Mist/Stars/Physics. Kemudian klik Stars.
5. Gambarnya sudah hampir jadi, hanya saja masih agak kasar. Makara saya Bakal membuatnya lebih halus dengan Caranya klik Editing panel kemudian klik Set Smooth pada tab Links and Materials.
6. Langkah terakhir yaitu menciptakan goresan pena UNIVERSITAS GUNADARMA. Caranyanya klik Add - Text. Untuk mengedit kata-kata maka kita tekan tombol Tab setelah itu kita bisa memasukkan kata/kalimat yg kita inginkan. Lalu untuk menciptakan goresan pena menjadi lebih tebal maka kita atur pada bab Extrude. Hasilnya Bakal tampak mirip ini
7. Langkah terakhir yaitu proses rendering. Klik Render - Render Current Frame. Hasilnya Bakal tampak mirip ini.
Shader Subsurface Scattering
Subsurface scattering (SSS) yaitu effek pantulan cahaya sekitar bawah permukaan material, dan umumnya terdapat pada materi mirip kulit, lilin, dan marmer. Hasil pada tepi bayangan tampak agak kabur, alasannya cahaya berdifusi keluar dari tempat terang ke area bayangan. Sebagai hamburan cahaya, sebagian diserap, dengan cahaya yg tersisa biasanya mengambil warna dari materi yg mendasarinya. Dalam kasus kulit, daging dan darah dibawah kulit menyebabkan persebaran cahaya yg muncul berwarna jingga merah
Menghubungkan Teks dengan Bayangan 3D
Sebelumnya, klik sajian Layer > Rasterize > Type. Selanjutnya gunakan Polygonal Lasso Tool (L) dan hubungkanlah sudut setiap aksara dengan bayangan 3D, isilah area seleksi dengan wrna merah bau tanah (#990000) sehingga membentuk teks 3D berbentuk balok, mirip yg ditunjukkan di bawah ini.
Menambahkan Bayangan Pada Layer Teks
Sekarang kita telah mendapatkan teks 3D yg diinginkan, untuk menambahkan imbas bayangan, pastikan Anda masih berada pada layer teks yg berwarna merah gelap, klik sajian Layer > Layer Style > Gradient Overlay, ikuti seting Gradient Overlay serta Color Overlay mirip 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 gres dengan warna hitam (#000000). Pindahkan layer ini sempurna dibawah layer teks yg 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 yg sesuai, mirip gambar di bawah.
Selanjutnya klik sajian Layer > Rasterize > Type, kemudian pilih sajian Filter > Blur > Motion Blur, ikuti gambar dibawah untuk mengatur blur bayangan teks. Untuk mendapatkan bayangan yg lebih kuat, gandakan layer dengan menekan tombol Cmd/Ctrl+J, kemudian gabungkan kedua layer ini dengan menentukan sajian Layer > Merge Down.
Membuat Blur Shadow
0 Response to "Tentang Shading Modelling Kepingan 4 ( Desain Pemodelan Grafik) Lanjutan 3..."