Skip to main content

Apa itu OpenGL Bayangan?

Perpustakaan Grafis Terbuka (OpenGL ) Shadow adalah perkiraan visual dalam OpenGL Reg tiga dimensi (3D);Adegan bagaimana bayangan akan dilemparkan dalam kehidupan nyata dalam kondisi pencahayaan yang sama.Bayangan adalah fitur visual yang kompleks untuk diterapkan di OpenGL , sebagian besar karena tidak ada dukungan bawaan untuk casting bayangan dalam sebuah adegan.Sebaliknya ada berbagai teknik yang dapat digunakan untuk membuat bayangan dari objek dan geometri dalam adegan menggunakan berbagai alat, seperti berbagai buffer yang tersedia, shader dan, dalam beberapa kasus, ekstensi yang memberikan akses ke fitur khusus pada grafik tertentukartu-kartu.Dalam kebanyakan kasus, kualitas, akurasi, dan kecepatan OpenGL Render Shadow secara langsung terkait dengan daya pemrosesan dan memori perangkat keras grafis yang ada di komputer atau perangkat.Beberapa metode yang lebih populer untuk menerapkan OpenGL Bayangan termasuk volume bayangan, pemetaan bayangan dan penelusuran ray.

Membuat aplikasi yang memiliki OpenGL Dukungan bayangan membutuhkan pengetahuan matematika dan pemahaman yang mendalam tentang bagaimana OpenGL Pekerjaan.OpenGL sebagian besar digunakan untuk membuat adegan 3D yang dinamis dan diterjemahkan secara real time, sehingga algoritma yang digunakan untuk membuat bayangan tidak hanya harus dioptimalkan untuk kecepatan, tetapi juga harus diukur dengan cermat untuk konsumsi sumber daya dan gangguan apa pun yang bisa terjadidisebabkan dalam pipa grafis yang digunakan untuk rendering.Untuk alasan ini, metode paling mendasar untuk menciptakan bayangan, yang disebut ray tracing, seringkali tidak praktis untuk adegan 3D penuh, karena itu bisa memakan waktu sangat lama.

Tracing ray pada dasarnya mengikuti garis imajiner, atau ray, dari tampilanPesawat atau posisi kamera melalui pemandangan ke permukaan objek dan kemudian menghitung warna permukaan berdasarkan posisi satu atau lebih sumber cahaya dan faktor lainnya.Selama proses rasterisasi, di mana adegan 3D ditarik ke permukaan dua dimensi (2D) sehingga dapat ditampilkan, proses penelusuran sinar harus dilakukan pada setiap piksel yang sedang ditarik dan, terutama dengan tekstur atau lainnyaSifat permukaan, mungkin perlu menilai piksel yang sama beberapa kali.Ini berarti penelusuran ray real-time, meskipun akan secara akurat membuat bayangan, biasanya tidak praktis.

Metode lain yang dapat digunakan untuk membuat OpenGL Bayangan dikenal sebagai pemetaan bayangan.Metode ini menggunakan buffer kedalaman atau stensil untuk membuat adegan dari sudut sumber cahaya sebagai serangkaian jarak dari sumber cahaya ke permukaan objek yang berbeda dalam adegan.Adegan kemudian diberikan untuk kedua kalinya dari sudut pandang yang benar, memeriksa untuk melihat apakah setiap piksel berada dalam rentang jarak tertentu dalam buffer, menunjukkan apakah piksel dinyalakan atau dibayangi.Menggunakan pemetaan bayangan dapat menjadi intensif memori dan, dengan adegan yang memiliki lebih dari satu sumber cahaya, dapat melibatkan membuat beberapa peta dari beberapa sudut.

Volume bayangan adalah cara untuk membuat OpenGL REG;Bayangan yang lebih akurat daripada beberapa metode lain, tetapi menghadirkan masalahnya sendiri.Volume bayangan pada dasarnya adalah bagian geometri yang tidak terlihat dalam adegan yang mengembang dari permukaan yang menyala dari suatu benda yang jauh dari sumber cahaya.Volume ini dapat diperiksa terhadap objek lain untuk melihat apakah mereka jatuh ke dalam bayangan permukaan dari mana volume berasal.Prosedur ini bisa sangat kompleks dan akhirnya membuat artefak visual saat dioptimalkan untuk kecepatan.