Vertex Lighting and Blending Colors
S E N G
- Vertex Lighting and
H A
Blending Colors
N S
Level 5
GRAFIKA KOMPUTER DAN ANIMASI U
N Rendering Depth
Understanding the Problem at Hand
- H A N S U N
Z-Buffers
Including the Z-Buffer
The Finished Program Simple Modeling
Building a Quad
Combining Quad to Make a Cube
More Shapes
S E N G
The Finished Program
S E N
Rendering with Vertex Lighting
G
Light in Nature and Light in 3D
-
Vertex Normals
H
Creating Lights
A
The Finished Program
N S
More on Lighting
U
The Scaling Problem
N
Point Lights
Spot Lights
The Finished Program Blending Colors for Special Effects
Blend Operations
The Finished Program
Kita telah berhasil membuat obyek-obyek 3D sederhana tanpa menggunakan teknik pencahayaan.
- H A N S U N
Seluruhnya diberi cahaya yang sama.
Dengan teknik pencahayaan khusus, kita dapat membuat model seperti di dunia nyata.
Light in Nature and Light in 3D
Vertex Normals
Creating Lights
S E N G
The Finished Program
S E N
Saat ini, teknik pencahayaan 3D masih belum benar-
G
benar bisa menyerupai cahaya di dunia nyata.
- H A N S U N
Direct3D menggunakan lighting untuk menyerupai cahaya di dunia nyata.
- H A N S U N
Menggunakan suatu sistem perhitungan yang tidak terlalu berat dan dapat dijalankan secara real-time.
Terdiri dari sejumlah tipe lighting dan light sources.
Types of Lighting
S E N G
Types of Light Sources
S E N
3 jenis cahaya: diffuse light, ambient light, dan specular
G light.
- H A N S U N
Diffuse Light Ambient Light Specular Light http://directxtutorial.com/Lesson.aspx?lessonid=9-4-8 Ambient lights 2. Directional lights 3. Point lights 4. Spot lights
Setiap sumber cahaya bisa memiliki sifat dan warna cahayanya masing-masing, dan dapat dikombinasikan satu dengan lainnya untuk membentuk cahaya yang mendekati cahaya di dunia nyata.
Terdapat beberapa jenis cahaya (atau sumber cahaya) yang memancarkan cahaya, yakni: 1.
S E N G
- H A N S U N
S E N
Ambient lights tidak memiliki sumber atau arah
G cahaya tertentu.
- H
Warnanya biasanya putih atau abu-abu.
A N S
Directional lights mirip seperti ambient lights,
U
memberikan cahaya dari seluruh tempat pada satu
N waktu.
Namun directional lights memberikan cahaya pada arah tertentu.
Directional lights akan menghasilkan ambient, diffuse, dan specular light. S E N G
- H A N S U N
http://directxtutorial.com/Lesson.aspx?lessonid=9-4-8
Memancarkan ambient, diffuse, dan specular light.
Point lights tidak memiliki arah tertentu, tapi memiliki lokasi, serta memancarkan cahaya ke seluruh arah dari satu lokasi tersebut.
S E N G
- H A N S U N
G
- H A N S U N
Menghasilkan suatu sinar cahaya.
http://directxtutorial.com/Lesson.aspx?lessonid=9-4-8 S E N
Suatu material adalah suatu penggambaran cara
G
permukaan obyek memantulkan cahaya dan warna
- H apa yang terlibat di dalamnya.
A
Jangan memberikan hanya 1 warna primer ke
N materials.
S U N
S E N G
- H A N S U N
http://directxtutorial.com/Lesson.aspx?lessonid=9-4-8 S E N
Suatu normal adalah suatu vektor yang tegak lurus
G terhadap permukaan sebuah bidang.
- H A N S U N
http://directxtutorial.com/Lesson.aspx?lessonid=9-4-8 S E N
Direct3D menggunakan sudut dari normal dan
G
sudut arah datang cahaya untuk menentukan
- seberapa besar cahaya di suatu permukaan
H diberikan. A N
Semakin sedikit perbedaan sudutnya, maka semakin
S besar intensitas cahaya di permukaan tersebut. U
Sayangnya, Direct3D tidak memberikan normal
N suatu permukaan secara otomatis.
Kita harus menentukan normal bidang tersebut sendiri.
Caranya dengan memberikan suatu normal vector ke setiap titik di permukaan
→ vertex normals. S E N G
- H A N S U N
http://directxtutorial.com/Lesson.aspx?lessonid=9-4-8 S E N
Langkah-langkah untuk menerapkan lighting:
G 1.
- H 2.
Setting Up a New Flexible Vertex Format
Turning the Lighting On
A N 3.
Setting the Ambient Light
S 4.
Creating and Setting the Diffuse Light
U N 5.
Creating and Setting the Material S E N G
- H A N S U N
- H
Turn on the light
A N S U N
S E N G
- Set the ambient light
H A N S U N
The color of the ambient light S E N G
- H A N S U N
- H A N S U N
http://directxtutorial.com/Lesson.aspx?lessonid=9-4-8 S E N G
- H A N S U N
- H A N S U N
- H A N S U N
- H A N S U N
- H A N S U N
- H A N S U N
- H A N S U N
- H A N S U N
- H A N S U N
- H A N S U N
- H A N S U N
- H A N S U N
- H A N S U N
- H A N S U N
- H A N S U N
Directional light mewakili cahaya pada umumnya yang ada di semua tempat.
- H A N S U N
Bagaimana dengan cahaya-cahaya yang tidak ada di semua tempat?
Point lights dan Spot lights.
The Scaling Problem
Point Lights
Spot Lights
S E N G
The Finished Program
Sebuah obyek dengan ukuran yang berubah-ubah akan memiliki sedikit masalah dengan pencahayaan.
- H A N S U N
Obyek makin kecil → makin terang.
Obyek makin besar → makin gelap.
Kenapa?
Saat obyek diskalasikan, maka normal-nya juga ikut
diskalasikan. Semakin kecil normal, maka semakin terang obyek.
S E N G
S E N G
- H
http://directxtutorial.com/Lesson
A
.aspx?lessonid=9-4-9
N S
Merupakan cahaya yang memiliki lokasi tertentu dan
U memancarkan cahaya ke seluruh arah dari lokasi itu. N
Point light tidak meneruskan cahayanya tanpa batas.
Semakin jauh dari sumber cahaya, maka akan semakin terpencar ke segala arah.
Semakin jauh suatu obyek dari sumber cahaya, makin kurang cahaya yang diterimanya. S E N Merupakan jarak suatu sumber cahaya.
G
Di luar batas range suatu sumber cahaya, tidak ada
- H cahaya dari sumber itu yang ditampilkan.
A
Caranya dengan mengubah nilai range dari suatu
N S light.
U N
S E N
Mengendalikan bagaimana intensitas cahaya makin
G
berkurang setelah melalui ruang jarak dan waktu
- H tertentu.
A N
Constant values
S U N
Attenuation, Distance between the range values 0.0 - 1.0 vertex and the light S E N
Saat membuat point light, Anda dapat menggunakan
G
fungsi attenuation dan menentukan nilai untuk setiap
- H variabel.
A
Dapat juga dikombinasikan untuk memperoleh efek-
N efek yang berbeda.
S U
Perhatikan pula range dari sumber cahaya karena
N
range menentukan seberapa jauh Direct3D akan menghitung attenuation tersebut.
Catatan: mengatur range dan attenuation untuk suatu directional light tidak menimbulkan efek apapun. S E N G
- H A N S U N
- H A N S U N
- http://directxtutorial.com/Lesson.
H
aspx?lessonid=9-4-9
A
Merupakan cahaya yang memiliki lokasi dan arah.
N S
Memancarkan cahaya dari suatu titik tertentu dan ke
U arah tertentu. N
Paling jarang digunakan, paling kurang efisien, dan
sulit diterapkan dibandingkan dua jenis cahaya
lainnya. Terdapat 3 sifat baru yang perlu diterapkan, yakni Phi, Theta, dan Falloff. S E N Spot lights memiliki bentuk seperti kerucut.
G
- H
- Theta
merepresentasikan
A N inner circle.
S
- Phi merepresentasikan
U outer circle. N
- Keduanya merupakan bilangan float yang menyimpan sudut yang digunakan untuk menentukan ukuran
Biasanya ditentukan dengan suatu bilangan float, 1.0.
Merupakan suatu nilai yang digunakan untuk mengendalikan seberapa cepat inner circle memudar ke dalam outer circle.
S E N G
- H A N S U N
http://directxtutorial.com/Lesson.aspx?l essonid=9-4-9 S E N G
- H A N S U N
- H A N S U N
- H A N S U N
- H A N S U N
- H A N S U N
- H A N S U N
- H A N S U N
- H A N S U N
- H A N S U N
- H A N S U N
- H A N S U N
- H A N S U N
- H A N S U N
- H A N S U N
- H A N S U N
- H A N S U N
Color blending merupakan suatu cara untuk menggabungkan dua/ lebih warna untuk menghasilkan warna baru.
- H A N S U N
Red + Blue → Purple
Bisa juga untuk membuat efek semi transparan.
Blend Operations
S E N G
The Finished Program
S E N
DirectX menggunakan blend operation, yakni suatu
G
persamaan dengan 2 nilai yang tidak diketahui, yang
- H saat diisi, akan menghasilkan nilai ketiga.
A
Memiliki 5 bagian, yakni: warna sumber, faktor
N sumber, operasi, warna tujuan, dan faktor tujuan.
S U N
S E N G
Color blending terjadi pada saat suatu obyek
- H digambarkan ke back buffer.
A
Persamaan di atas akan dilakukan untuk setiap pixel
N S yang digambarkan.
U
Warna sumber (source color) adalah warna dari pixel
N yang sedang digambarkan.
Warna tujuan (destination color) adalah warna dari pixel yang berada di belakang obyek yang digambarkan. S E N G
- H A N S U N
Dalam color blending, setiap warna primer dikalikan
G
dengan suatu faktor yang telah ditentukan terlebih
- H dahulu.
A
Biasanya digunakan channel Alpha dari suatu obyek.
N S
Setelah memilih faktor apa yang akan digunakan,
U
Direct3D akan mengubah nilainya menjadi nilai float
N antara 0.0 (fully transparent) dan 1.0 (fully opaque).
Jika digunakan channel Alpha (yang nilainya antara 0 dan 255), dan nilai Alpha adalah 192, maka setelah dikonversi akan menjadi 0.75. S E N
Beberapa operasi yang dapat dilakukan:
G
- 1.
Penjumlahan
H 2.
Pengurangan
A N 3.
Minimum (yang lebih gelap dari dua warna)
S U 4.
Maximum (yang lebih terang dari dua warna)
N
S E N
Langkah-langkah yang dibutuhkan untuk
G
membuat efek semi-transparan:
- H 1.
Turn on Blending
A N 2.
Set the Operation for the Blend Equation
S 3.
Set the Source and Destination Factors
U N 4.
Set the Alpha Values in the 3D Model S E N
Sebelum suatu color blending dapat dilakukan,
G Direct3D harus diberitahu.
- H
Gunakan fungsi SetRenderState().
A N S U N
Turn on the color blending S E N G
What operation to be set
- H A N S U N
Tell Direct3D to set an operation S E N G
- H A N S U N
Akan dipanggil 2 fungsi SetRenderState(), masing-
G masing untuk setiap faktor.
- H A N S U N
Terdapat 15 pilihan faktor berbeda yang dapat
digunakan, tapi tidak semua akan diperlukan.
Semua nilai dalam faktor yang dipilih berada dalam range 0 hingga 255, dan akan dikonversi menjadi 0.0 hingga 1.0. S E N G
- H A N S U N
Cukup mengubah nilai alpha dari setiap warna dalam
G obyek yang digunakan.
- H A N S U N
- H A N S U N
- H A N S U N
- H A N S U N
- H A N S U N
- H A N S U N
- H A N S U N
- H A N S U N
- H A N S U N
- H A N S U N
- H A N S U N
- H A N S U N
http://directxtutorial.com/ http://wiki.blender.org/index.php/Doc:2.4/Books/Essen tial_Blender/11.2.Lighting:_Discussion Other web resources.
- H A N S U N