3B dokular nelerdir?


31

Google başarısız oldu, bilgilendirici bir şey bulamadım. Yani belki GameDev :) yapabilir.

  • 3B dokular nelerdir?
  • Ne zaman kullanılırlar?
  • Performans maliyetleri?
  • Nasıl saklanırlar?

Çok belirsiz fikirlerim var ancak 'kesin' bir tanım yok.

Örneklere veya öğreticilere yapılan atıflar, özellikle 3B dokularla parçacık sistemlerinin oluşturulmasında takdir edilir.


İstediğin şeyin bir şey olduğundan emin değilim. "Düz" alanlarda yüzey değişimini simüle etmek için normal ve çarpma eşlemesini mi kastediyorsunuz?
kodlayıcı

2
Onun demek istediğinin daha çok GL_TEXTURE_3D, vb. Olduğunu düşünüyorum.
Luker

1
Ayrıca, şu soruya bakın: UVW doku eşlemesi nasıl çalışır? (ve cevapları).
George Duckett

Yanıtlar:


34

3B doku normal doku gibi çalışır. Ama bu gerçekten 3D. 2B dokuların UV kodları vardır, 3B'nin UVW'si vardır (bunları uygun şekilde kullanmak zorundaydınız). Doku kodları birim küptür (0 - 1, 0 - 1, 0 - 1).

Muhtemel kullanım :

  • Oyunlarda hacimsel etkiler (ateş, duman, ışık ışınları, gerçekçi sis)
  • gerçek zamanlı küresel aydınlatma için önbellek ışığı ( örneğin CryEngine )
  • bilimsel (MRI, BT taramaları birimlere kaydedilir)

Performans :
Normal doku ile aynı - süper hızlı (gpu'daki en hızlı hafıza erişimi). Yakın dişler (piksel gölgelendiriciler) yakın değerler ararken dişliler için önbelleğe alınır ve duruma göre optimize edilir.

Nokta olarak veya doğrusal örneklemede okunabilir (doğal tri-doğrusal enterpolasyon. 2B dokuda eşdeğer iki doğrusal enterpolasyon).

Bir dizi 2B doku gibi bellekte saklanırlar.

3B doku üzerinde mipmap oluşturma:
görüntü tanımını buraya girin


14

3B dokular veya 'Cilt dokular', bir kağıt destesi gibi, dilimler halinde düzenlenmiş normal dokular dizisidir. Bunlar, CT taramaları gibi gerçek dünya verilerini alan ve ardından bunları manipüle eden hacimsel görüntülemede kullanılır. Oyunlarda ve grafiklerde, bazen parçacıklar sisteminin esnekliğini sabit bir maliyetle ve bir hacim dokusunun kolay (ve kolayca paralelleştirilebilir) hesaplanması için alıp sattığınız duman gibi hacimsel etkiler içindir. Bir hacim dokusunda en yakın komşuları bulmak gerçekten kolaydır, ancak bu bir problem olabilir, gevşek noktalardan oluşan daha geleneksel bir parçacık sistemidir.

Ayrıca, bazı karmaşık nesneler çimen gibi hacimli dokuları kullanmaktan yararlanır:

Nvidia'nın bir kutudaki dumanı harika bir örnektir:

http://www.youtube.com/watch?v=9AS4xV-CK14

Ayrıca, ışık saçılımı oluşturmak, işlemek için bir biriminiz olduğunda daha kolaydır


7

Mevcut cevapların yanı sıra, 3B dokuların da prosedürel olarak nasıl oluşturulduğunu seviyorum (aslında 2B prosedürel dokulardan daha mantıklı), herhangi bir açı yüzeyine sahip olmadan iyi ve deforme olmayan doku detayları sağlayacak gürültü ve fraktallar gibi Bir projeksiyon modeli seçmek için (UV, düzlemsel, silindirik, küresel vb.)

Bir bitmap katmanını 3B alanda örneklemek yerine, 3B alandaki her nokta için temel bir algoritma kullanarak ayrı bir değer elde edersiniz; Bu 3D "dokular" ya da bana göre yüzey gölgelendirme ^^

Oyun geliştirmedeki tüm bitmap doku ekşilemesinden oldukça yoruldum, bir uzay gemisini kirletmek istediğimde, birkaç katman gürültü formülü uygulamak istiyorum ve sınırlı bir çözünürlükteki bitmap boyamak zorunda kalmıyorum. Eski bir 3B tutkunu hayal edebilir, o olamaz;)

Şu anda bu tatlı oldschool 3D film yüzey çözümlerini renkli, normal ve speküler UV bitmapleri önceden pişirmek aldığım tek eğlence hakkında ve sinir bozucu bir şekilde sınırlı hissediyor. Demo sahnesi (her zaman olduğu gibi) gerçek zamanlı 3D için prosedürel olarak dokular üretme eğilimindedir (ancak bu iş akışını tasarımdan çalışma zamanına kadar destekleyen iyi araçlar bulmak zordur.) Oyun geliştirme prosedürü yaklaşımlarının çoğu ağ oluşturma ile ilgili gibi görünüyor. Gölgelendirici boru hattının derinlemesine bir harita / ertelenmiş görüntü oluşturma işleminin oldschool 3D gürültü algosuna ne kadar dayanabileceğini merak ediyorum?

... bir doku görüntüsünün, şekil yüzeyinize parametrik olarak nasıl eşleştirileceğini bulmak yerine, gürültü temelli dokuların hacimsel doğası, onları pikselinizin (x, y, z) konumlarında kolayca değerlendirmenize olanak sağlar. gölgelendirici. Bu şekilde, dokunuzu sağlam bir malzemeden etkili bir şekilde oyuyorsunuz, bu da makul bir bozulmamış parametrik haritalama yapmaya çalışmaktan çok daha kolay.

Bu tür volumetrik gürültü temelli prosedürel dokular, uzun zamandır gölgelendiricilerin gerçek zamanlı performans gerektirmediği uzun metrajlı filmlerin ana temeli olmuştur ... günümüzde tüm özel efekt filmleri, gürültü esaslı prosedürel gölgelendiricilerin ... gürültü fonksiyonunun, Pixar's RenderMan gibi dillerde yazılmış piksel gölgelendiricilerin içinde yaygın olarak kullanılması. GPU'larda gerçek zamanlı kullanım için mevcut olan gürültü fonksiyonunun iyi bir şekilde uygulanmasıyla, masaüstünde ve konsolda yeni nesil etkileşimli eğlenceye dahil edilen uzun metrajlı görsel fikirlerden bazılarını görmek için sabırsızlanıyorum. http://http.developer.nvidia.com/GPUGems/gpugems_ch05.html


Çok ilginç bir okuma! Yine de ikinci paragrafında ne demek istediğini görselleştirmekte zorlanıyorum.
havyar

Belki bir şema yapabilirim. Demek istediğim, bir bitmap örneklemek yerine, rengin (ya da her neyin peşindeyseniz) basitçe bir gürültü algoritması tarafından kararlaştırılmasıdır. Bu şekilde, gereken bitmap pikseller arasında enterpolasyon yoktur (mükemmel bir 1x1 piksel konumunda değil örneklemeye mecbur olduğunuz için) ve çözünürlük teoride sonsuz olur. Belirli bir adım / aralık bulunan önceden hesaplanmış bir arama tablosu kullanmak yerine belirli bir faiz oranına olan ilgiyi hesaplamak gibi bir şey (bitmap çözünürlüğü).
Oskar Duveborn,

Başvurulan makalenin tamamını okuduktan sonra. Daha iyi bir anlayışa sahibim, ancak ref. imgeler her iki tarafa da fayda sağlayacaktır: emin değil ve tl; :)
yavaşlattı

0

3B doku desenleri, 2B doku desenlerinin bir 2B poligonun piksellerine uygulandığı gibi hacimsel bir cismin voksellerine de uygulanır. İşte JavaScript'te bir 3B hacimsel doku örneği (WebGL gerektirir):

http://kirox.de/test/Surface.html

[v] tuşuna basın, gövdeyi döndürün ve oluşturulan dokunun gradyanını fare tekerleğiyle değiştirin

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.