Kabut (Direct3D 9)

Menambahkan kabut ke adegan 3D dapat meningkatkan realisme, memberikan suasana hati atau mengatur suasana hati, dan artefak yang tidak jelas terkadang disebabkan ketika geometri yang jauh terlihat. Direct3D mendukung dua model kabut, kabut piksel dan kabut vertex, masing-masing dengan fitur dan antarmuka pemrogramannya sendiri.

Pada dasarnya, kabut diimplementasikan dengan memadukan warna objek dalam adegan dengan warna kabut yang dipilih berdasarkan kedalaman objek dalam adegan atau jaraknya dari sudut pandang. Ketika objek tumbuh lebih jauh, warna aslinya semakin menyatu dengan warna kabut yang dipilih, menciptakan ilusi bahwa objek semakin dikaburkan oleh partikel kecil yang mengambang di tempat kejadian. Ilustrasi berikut menunjukkan adegan yang dirender tanpa kabut, dan adegan serupa yang dirender dengan kabut diaktifkan.

ilustrasi adegan yang sama dengan dan tanpa kabut

Dalam ilustrasi ini, adegan di sebelah kiri memiliki cakrawala yang jelas, di luar itu tidak ada pemandangan yang terlihat, meskipun akan terlihat di dunia nyata. Adegan di sebelah kanan mengaburkan cakrawala dengan menggunakan warna kabut yang identik dengan warna latar belakang, membuat poligon tampak memudar ke kejauhan. Dengan menggabungkan efek kabut terpisah dengan desain adegan kreatif, Anda dapat menambahkan suasana hati dan melembutkan warna objek dalam adegan.

Direct3D menyediakan dua cara untuk menambahkan kabut ke adegan: kabut piksel dan kabut puncak, dinamai bagaimana efek kabut diterapkan. Untuk detailnya, lihat Pixel Fog (Direct3D 9) dan Vertex Fog (Direct3D 9). Singkatnya, kabut piksel - juga disebut kabut tabel - diimplementasikan di driver perangkat dan kabut puncak diimplementasikan di mesin pencahayaan Direct3D. Aplikasi dapat mengimplementasikan kabut dengan shader puncak, dan kabut piksel secara bersamaan jika diinginkan.

Catatan

Terlepas dari apakah Anda menggunakan piksel atau kabut puncak, aplikasi Anda harus menyediakan matriks proyeksi yang sesuai untuk memastikan bahwa efek kabut diterapkan dengan benar. Pembatasan ini berlaku bahkan untuk aplikasi yang tidak menggunakan transformasi Direct3D dan mesin pencahayaan. Untuk detail tambahan tentang bagaimana Anda dapat memberikan matriks yang sesuai, lihat Transformasi Proyeksi (Direct3D 9).

 

Topik berikut memperkenalkan kabut dan menyajikan informasi tentang menggunakan berbagai fitur kabut dalam aplikasi Direct3D.

Penpaduan kabut dikendalikan oleh status render; ini bukan bagian dari alur piksel yang dapat diprogram.

Penyajian Direct3D