Doku eşleme - Texture mapping

1: Dokusuz 3B model
2: Dokularla aynı model
İki boyutlu bir dokuyu 3B modele eşleme

Doku eşleme , bilgisayar tarafından oluşturulan bir grafik veya 3B model üzerinde yüksek frekanslı ayrıntıyı , yüzey dokusunu veya renk bilgilerini tanımlamaya yönelik bir yöntemdir . Orijinal tekniğe 1974'te Edwin Catmull öncülük etti .

Doku eşleme, başlangıçta , pikselleri bir dokudan bir 3B yüzeye eşleyen ("görüntüyü nesnenin etrafına saran") bir yöntem olan dağınık eşlemeye atıfta bulunur . Son birkaç on yılda, çok geçişli işleme gelişi, çoklu doku , Eşleşme gibi, ve daha karmaşık eşlemeler yüksekliği haritalama , yumru haritalama , normal bir haritalama , yer değiştirme haritalama , yansıma haritalama , speküler haritalama , oklüzyon haritalama tekniğine ve başka bir takım varyasyonlar (a kontrolündeki malzemeler sistemde ) mümkün yakın-simüle etmek yaptık fotogerçekçilik içinde gerçek zamanlı ölçüde sayısını azaltarak çokgen ve gerçekçi ve işlevsel 3D sahne inşa etmek için gerekli hesaplamaları aydınlatma.

Çoklu doku oluşturma örnekleri :
1: Dokusuz küre, 2: Doku ve kabartma haritaları, 3: Yalnızca doku haritası, 4: Opaklık ve doku haritaları

Doku haritaları

A doku haritası , bir şeklin veyaçokgeninyüzeyine uygulanan (eşlenen) bir görüntüdür. Bu birbitmap görüntüsüveyaprosedürel bir doku olabilir. Bunlar,3d model formatlarıveyamalzeme tanımları ilereferans verilenortakgörüntü dosyası formatlarındasaklanabilirvekaynak demetleri halindebirleştirilebilir.

Görünür yüzeyler için en yaygın olanı 2 boyut olmasına rağmen 1-3 boyuta sahip olabilirler. Modern donanımla kullanım için, doku eşlemi verileri, önbellek tutarlılığını iyileştirmek için kaydırılmış veya döşemeli sıralamalarda saklanabilir . İşleme API'leri tipik olarak doku eşleme kaynaklarını ( aygıt belleğinde bulunabilen ) arabellekler veya yüzeyler olarak yönetir ve işlem sonrası veya ortam eşleme gibi ek efektler için ' dokuya işlemeye' izin verebilir .

Genellikle RGB renk verilerini ( doğrudan renk , sıkıştırılmış biçimler veya dizine alınmış renk olarak saklanır ) ve bazen özellikle reklam panoları ve çıkartma kaplama dokuları için alfa harmanlaması için ek bir kanal ( RGBA ) içerirler . Spekülerlik gibi diğer kullanımlar için alfa kanalını (donanım tarafından ayrıştırılan formatlarda saklanması uygun olabilir) kullanmak mümkündür .

Yansıtıcılık , normaller , yer değiştirme veya yüzey altı saçılması üzerinde kontrol için , örneğin dış yüzey oluşturma için çoklu doku haritaları (veya kanallar ) birleştirilebilir .

Modern donanım için durum değişikliklerini azaltmak için doku atlaslarında veya dizi dokularında birden fazla doku görüntüsü birleştirilebilir . ( Çömlek harita grafiklerinin modern bir evrimi olarak kabul edilebilirler ). Modern donanım , çevre eşlemesi için genellikle birden çok yüzü olan küp eşleme dokularını destekler .

oluşturma

Doku haritaları, GIMP , Photoshop gibi görüntü işleme yazılımlarında tasarlanmış veya doğrudan Mudbox veya zbrush gibi bir 3B boyama aracında 3B yüzeylere boyanmış, tarama / dijital fotoğrafçılık yoluyla elde edilebilir .

Doku uygulaması

Bu işlem, düz beyaz bir kutuya desenli kağıt uygulamaya benzer. Bir çokgendeki her tepe noktasına bir doku koordinatı atanır (2d durumda UV koordinatları olarak da bilinir ). Bu, UV sarmalama araçları aracılığıyla bir 3D modelleme paketinde manuel olarak düzenlenen tepe noktası niteliklerinin açık bir şekilde atanması yoluyla yapılabilir . 3B uzaydan doku uzayına prosedürel bir dönüşümü malzeme ile ilişkilendirmek de mümkündür . Bu, düzlemsel projeksiyon veya alternatif olarak silindirik veya küresel haritalama yoluyla gerçekleştirilebilir . Daha karmaşık eşlemeler, bozulmayı en aza indirmek için bir yüzey boyunca mesafeyi dikkate alabilir. Bu koordinatlar, işleme sırasında doku haritasını örneklemek için çokgenlerin yüzleri boyunca enterpolasyona tabi tutulur. Dokular, sonlu bir dikdörtgen bitmap'i daha geniş bir alana genişletmek için tekrarlanabilir veya yansıtılabilir veya bir yüzeyin her parçasından bire bir benzersiz " enjektif " eşlemeye sahip olabilirler (bu, işleme eşleme ve ışık eşleme için önemlidir , ayrıca fırınlama olarak bilinir ).

Doku alanı

Doku eşleme, model yüzeyini (veya rasterleştirme sırasında ekran alanını ) doku alanına eşler ; bu alanda doku haritası bozulmamış haliyle görülebilir. UV sarma açma araçları tipik olarak doku koordinatlarının manuel olarak düzenlenmesi için doku alanında bir görünüm sağlar. Yüzey altı saçılması gibi bazı işleme teknikleri , yaklaşık olarak doku-uzay işlemleri ile gerçekleştirilebilir.

çoklu doku

Çoklu dokulama , bir çokgen üzerinde aynı anda birden fazla doku kullanılmasıdır. Örneğin, bir yüzeyi aydınlatmak için, yüzey her oluşturulduğunda bu aydınlatmanın yeniden hesaplanmasına alternatif olarak bir ışık haritası dokusu kullanılabilir. Daha yüksek frekans ayrıntıları eklemek için mikro dokular veya ayrıntı dokuları kullanılır ve kir haritaları hava koşullarına ve varyasyona katkıda bulunabilir; bu, tekrarlanan dokuların belirgin periyodikliğini büyük ölçüde azaltabilir. Modern grafikler, daha fazla aslına uygunluk için gölgelendiriciler kullanılarak birleştirilen 10'dan fazla katman kullanabilir . Diğer bir çoklu doku tekniği, aydınlatma hesaplamaları amacıyla bir dokunun bir yüzeyin bakan yönünü doğrudan kontrol etmesine izin veren tümsek haritalamadır ; alışılmış ayrıntılı renklendirmeye ek olarak aydınlatma detayını da üstlenen karmaşık bir yüzeyin (ağaç kabuğu veya kaba beton gibi) çok iyi bir görünümünü verebilir. Bump mapping, grafik donanımı gerçek zamanlı olarak barındıracak kadar güçlü hale geldiğinden, son video oyunlarında popüler hale geldi.

Doku filtreleme

Örnekler (ör olarak bakıldığında bu şekilde piksel ekranında) hesaplanır texel (doku piksel) tarafından yönetilir doku filtreleme . En ucuz yöntem kullanmaktır en yakın komşu interpolasyon , ancak iki doğrusal interpolasyon veya trilinear interpolasyon arasındaki Eşleşme azaltır iki yaygın kullanılan alternatifler aliasing veya jaggies . Bir doku koordinatının doku dışında olması durumunda, ya sıkıştırılır ya da sarılır . Anizotropik filtreleme, dokuları eğik görüş açılarından görüntülerken yönlü bozulmaları daha iyi ortadan kaldırır.

Doku akışı

Doku akışı, her dokunun iki veya daha fazla farklı çözünürlükte mevcut olduğu dokular için veri akışlarını kullanmanın bir yolu olup , hangi dokunun belleğe yüklenmesi gerektiğini ve görüntüleyiciden çekme mesafesine göre ne kadar bellek kullanılabilir olduğunu belirlemek için kullanılır. dokular. Doku akışı, görüntüleme motorunun, izleyicinin kamerasından uzaktaki nesneler için düşük çözünürlüklü dokular kullanmasına ve bunları, bakış açısı nesnelere yaklaştıkça bir veri kaynağından okunan daha ayrıntılı dokulara dönüştürmesine olanak tanır.

pişirme

Bir optimizasyon olarak, karmaşık, yüksek çözünürlüklü bir modelden veya pahalı bir süreçten ( küresel aydınlatma gibi ) bir yüzey dokusuna (muhtemelen düşük çözünürlüklü bir modelde) ayrıntı vermek mümkündür . Pişirme , işleme eşleme olarak da bilinir . Bu teknik en yaygın olarak hafif haritalar için kullanılır , ancak normal haritalar ve yer değiştirme haritaları oluşturmak için de kullanılabilir . Bazı bilgisayar oyunları (örneğin Messiah ) bu tekniği kullanmıştır. Orijinal Quake yazılım motoru, ışık haritalarını ve renk haritalarını (" yüzey önbelleğe alma ") birleştirmek için anında pişirmeyi kullandı .

Pişirme, birçok farklı öğe ve malzemeye sahip karmaşık bir sahnenin, tek bir dokuya sahip tek bir öğeyle yaklaşılabileceği ve daha sonra daha düşük işleme maliyeti ve daha az çekiliş için algoritmik olarak azaltıldığı bir ayrıntı oluşturma düzeyi biçimi olarak kullanılabilir . Ayrıca, 3D heykel yazılımından ve nokta bulutu taramasından yüksek detaylı modeller almak ve bunları gerçek zamanlı işleme için daha uygun ağlarla yaklaşık olarak belirlemek için kullanılır.

rasterleştirme algoritmaları

Yazılım ve donanım uygulamalarında çeşitli teknikler geliştirilmiştir. Her biri hassasiyet, çok yönlülük ve performansta farklı ödünleşimler sunar.

İleri doku eşleme

Bazı donanım sistemleri, örneğin Sega Saturn ve NV1 doku koordinatlarını doğrudan çaprazlar, ekran uzayında yansıtılan konumu doku uzayı aracılığıyla enterpolasyon yapar ve dokuları bir çerçeve arabelleğine sıçratır . (NV1 durumunda, kavisli işlemeye izin veren ikinci dereceden enterpolasyon kullanıldı). Sega , UV haritalı modellerden dörtlü başına uygun dokulu karoların pişirilmesi için araçlar sağladı .

Bu, doku haritalarının basit bir doğrusal biçimde okunması avantajına sahiptir.

İleriye dönük doku eşleme , aynı zamanda, eğer ilkel öğeler belirgin doku yönleriyle (örneğin yol işaretleri veya tuğla katmanları) hizalanırsa, afin doku eşlemesinden daha doğal görünen sonuçlar da üretebilir . Bu, sınırlı bir perspektif düzeltme biçimi sağlar. Bununla birlikte, kameranın yakınındaki ilkeller için perspektif bozulması hala görülebilir (örneğin, Sega Rally'nin Satürn limanı, yakındaki çokgenler UV koordinatları olmadan neredeyse kırpıldığı için doku ezme artefaktları sergiledi ).

UV koordinatlarının modelleme için daha çok yönlü ve kırpma için daha tutarlı olduğu kanıtlandığından , bu teknik modern donanımda kullanılmaz .

Ters doku eşleme

Çoğu yaklaşım , örnekleme için doku koordinatlarını enterpolasyon yaparken ekran alanında işleme ilkellerini çaprazlayan ters doku eşlemesini kullanır . Bu enterpolasyon afin veya perspektif doğru olabilir . Avantajlardan biri, her çıktı pikselinin yalnızca bir kez geçilmesinin garanti edilmesidir; genellikle kaynak doku haritası verileri daha düşük bir bit derinliğinde veya sıkıştırılmış biçimde saklanırken çerçeve arabelleği daha yüksek bir bit derinliği kullanır. Bir diğeri, UV haritalama için daha fazla çok yönlülüktür . Bir doku önbellek beri tamponlama, okur için önemli hale bellek erişimi desen de doku alanı daha karmaşıktır.

Afin doku eşleme

Afin doku eşleme, çokgenin görüntüleyiciye dik olmadığı bir çokgenin köşeleri hakkındaki derinlik bilgisini hesaba katmadığından, fark edilir bir kusur üretir.

Afin doku eşleme, doku koordinatlarını bir yüzey boyunca doğrusal olarak enterpolasyon yapar ve bu, doku eşlemenin en hızlı biçimidir. (Örneğin orijinal gibi bazı yazılım ve donanım PlayStation ) projesi oluşturma ve sırasında ekrana 3D alanında köşe enterpolasyon lineer doku koordinatları ekran alanı içinde aralarında ( "ters doku haritalama"). Bu, sabit nokta UV koordinatlarını artırarak veya Bresenham'ın çizgi algoritmasına benzer bir artımlı hata algoritması ile yapılabilir .

Dikey çokgenlerin aksine, bu, özellikle kameranın yakınında ilkel olarak, perspektif dönüşümlerinde (şekle bakın: onay kutusu dokusu bükülmüş görünür) gözle görülür bir bozulmaya yol açar . Bu tür bozulma, çokgenin daha küçük olanlara bölünmesiyle azaltılabilir.

Doom motoru , yakın doku haritalama ile dikey ve yatay açıklıklar oluşturur ve bu nedenle rampalı zeminler veya eğimli duvarlar çizemez.

Perspektif doğruluğu

2B ekran alanında koordinatları basitçe enterpolasyon yapmak yerine, 3B uzaydaki tepe noktalarının pozisyonları için perspektif doğru dokulandırma hesapları. Bu, doğru görsel efekti sağlar, ancak hesaplanması daha pahalıdır.

Doku koordinatları perspektif düzeltme yapmak için ve ile, bakış izleyici açısından derinlik bileşeni, Biz değerleri aslında olanaklar sunar , ve dokulu yüzey üzerinde ekran alanı doğrusaldır. Buna, orijinal olarak , ve bölünmeden önce, ekran alanı içinde yüzey üzerinde doğrusal değildir. Bu nedenle, bir perspektif doğru doku eşlemesi elde etmek için, her pikselde düzeltilmiş değerleri hesaplayarak, bu karşılıklıları yüzey boyunca doğrusal olarak enterpolasyon yapabiliriz.

Bunu yapmak için önce geometrimizin her bir köşesindeki karşılıklıları hesaplıyoruz (bir üçgen için 3 nokta). Vertex için elimizde . Ardından, bu karşılıklıları tepe noktaları arasında doğrusal olarak enterpolasyon yaparız (örneğin, Barycentric Coordinates kullanarak ), bu da yüzey boyunca enterpolasyonlu değerlerle sonuçlanır. Belirli bir noktada, bu enterpolasyonlu , ve değerini verir . Bunun , koordinat sistemlerini değiştirerek bölümümüz olarak doku koordinatlarımız olarak henüz kullanılamayacağını unutmayın .

Boşluğa geri dönmek için önce tekrar resiprokal alarak düzeltilmiş olanı hesaplıyoruz . Sonra bunu : ve ' mizi düzeltmek için kullanırız .

Bu düzeltme, poligonun izleyiciye daha yakın olan kısımlarında doku koordinatları arasındaki pikselden piksele farkın daha küçük olmasını (dokuyu daha geniş gererek) ve daha uzak kısımlarda bu farkın daha büyük olmasını (dokuyu sıkıştırarak) yapar. .

Afin doku eşleme , iki uç nokta arasında bir doku koordinatını doğrudan enterpolasyon yapar ve :
nerede
Perspektif doğru eşleme, derinliğe böldükten sonra enterpolasyon yapar , ardından doğru koordinatı kurtarmak için interpolasyonlu tersini kullanır:

3B grafik donanımı tipik olarak perspektif doğru dokulamayı destekler.

Hem yazılıma hem de donanıma uygulanabilen, doku eşlemeli geometriyi farklı kalite/hassasiyet dengesine sahip görüntülere dönüştürmek için çeşitli teknikler geliştirilmiştir.

Klasik yazılım doku eşleyicileri genellikle en fazla bir ışık efektiyle (tipik olarak bir arama tablosu aracılığıyla uygulanır) yalnızca basit eşleme yaptı ve perspektif doğruluğu yaklaşık 16 kat daha pahalıydı.

Kısıtlı kamera dönüşü

Doom motoru dikey eksen etrafında sadece döndürmek olabilecek bir kamera ile, dikey duvarlar ve yatay zemin / tavan dünyayı kısıtlı. Bu, duvarların dikey bir çizgi boyunca sabit bir derinlik koordinatı olacağı ve zeminlerin/tavanların yatay bir çizgi boyunca sabit bir derinliğe sahip olacağı anlamına geliyordu. Bu hatlar boyunca hızlı bir afin eşleme kullanılabilir çünkü bu doğru olacaktır. Bu dönemin daha sonraki bazı oluşturucuları , aynı oluşturma tekniğini kullanırken daha fazla özgürlük görünümüne izin veren kesme ile küçük bir miktarda kamera perdesini simüle etti .

Bazı motorlar eşlenen dokusunu işlemek başardık Heightmaps (örneğin Nova Mantık 'ın Voksel Uzay ve motoru Outcast aracılığıyla) Bresenham geleneksel geometrik ilkel kullanılmadan bir doku eşleştirilmiş manzara görünümünü üreten artan algoritmalar -ister.

Perspektif düzeltme için alt bölüm

Her üçgen, iki hedefe ulaşmak için yaklaşık 16 piksellik gruplara bölünebilir. Birincisi, aritmetik değirmeni her zaman meşgul tutmak. İkincisi, daha hızlı aritmetik sonuçlar üretmek.

Dünya uzay alt bölümü

Donanım desteği olmadan perspektif doku eşlemesi için, bir üçgen, oluşturma için daha küçük üçgenlere bölünür ve üzerlerinde afin eşleme kullanılır. Bu tekniğin işe yaramasının nedeni, afin haritalamanın bozulmasının daha küçük çokgenlerde çok daha az fark edilir hale gelmesidir. Sony PlayStation sadece donanım afin eşleme desteklenen ancak emsallerine oranla üretilen iş nispeten yüksek üçgen vardı çünkü bu geniş kullandı.

Ekran alanı alt bölümü

Yazılım oluşturucular, ek yükü daha az olduğu için genellikle ekran alt bölümünü tercih eder. Ek olarak, kurulumu (2d afin enterpolasyona kıyasla) ve dolayısıyla yine ek yükü basitleştirmek için bir piksel çizgisi boyunca doğrusal enterpolasyon yapmaya çalışırlar (ayrıca afin doku eşleme, x86 CPU'nun düşük sayıdaki yazmaçlarına uymaz) ; 68000 veya herhangi bir RISC çok daha uygundur).

Quake için , bir tarama çizgisinin her 16 pikselinde yalnızca bir kez perspektif doğru koordinatları hesaplayacak ve bunlar arasında doğrusal olarak enterpolasyon yapacak, perspektif doğru hesaplama yardımcı işlemcide paralel olarak çalıştığı için etkin bir şekilde doğrusal enterpolasyon hızında çalışan farklı bir yaklaşım benimsendi . Çokgenler bağımsız olarak oluşturulur, bu nedenle daha sabit bir z elde etmek için çokgenin normal yönüne bağlı olarak açıklıklar ve sütunlar veya çapraz yönler arasında geçiş yapmak mümkün olabilir, ancak çaba buna değmez gibi görünüyor.

Ekran uzayı alt bölme teknikleri. Sol üst: Deprem gibi, sağ üst: bilinear, sol alt: const-z

Diğer teknikler

Başka bir teknik, polinom gibi daha hızlı bir hesaplama ile perspektife yaklaşmaktı. Yine başka bir teknik, sonraki değeri doğrusal olarak tahmin etmek için son iki çizilen pikselin 1/z değerini kullanır. Bölme daha sonra bu değerlerden başlayarak yapılır, böylece yalnızca küçük bir kalanın bölünmesi gerekir, ancak defter tutma miktarı bu yöntemi çoğu sistemde çok yavaşlatır.

Son olarak, Build motoru , rastgele çokgenler için sabit mesafe çizgisini bularak ve bu çizgi boyunca işleyerek Doom için kullanılan sabit mesafe hilesini genişletti.

Donanım uygulamaları

Doku eşleme donanımı başlangıçta simülasyon için geliştirildi (örneğin Evans ve Sutherland ESIG görüntü oluşturucularında uygulandığı gibi) ve Silicon Graphics gibi profesyonel grafik iş istasyonları , Ampex ADO gibi dijital video efekt makineleri yayınlıyor ve daha sonra Arcade dolaplarında , tüketici videolarında ortaya çıktı. 1990'ların ortalarında oyun konsolları ve PC ekran kartları . Gelen uçuş simülasyonu , doku haritalama önemli hareket ipuçları sağladı.

Modern grafik işleme birimleri (GPU'lar) , doku eşleme gerçekleştirmek için doku örnekleyiciler veya doku eşleme birimleri adı verilen özel sabit işlev birimleri sağlar ; bunlar, genellikle üç doğrusal filtreleme veya DXTn gibi belirli biçimlerin kodunu çözmek için daha iyi çok dokunuşlu anizotropik filtreleme ve donanım ile yapılır . Çoğu SOC uygun bir GPU içerdiğinden , 2016 itibariyle doku eşleme donanımı her yerde mevcuttur .

Bazı donanımlar, doku eşlemeyi , döşeme tabanlı ertelenmiş işleme veya tarama çizgisi oluşturmada gizli yüzey belirleme ile birleştirir ; bu tür sistemler , dönüştürülmüş köşeler için daha büyük çalışma alanı kullanma pahasına yalnızca görünür dokuları getirir . Çoğu sistem, önden arkaya sıralama ile doku eşleme iş yükünü azaltabilen Z-arabelleğe alma yaklaşımına yerleşmiştir .

Uygulamalar

3B oluşturmanın ötesinde, doku eşleme donanımının kullanılabilirliği, diğer görevleri hızlandırmak için kullanılmasına ilham verdi:

Tomografi

Hem hızlandırmak için doku haritalama donanımı kullanmak mümkündür yeniden bir voksel gelen veri kümeleri tomografisinde , ve sonuçları görselleştirmek

Kullanıcı arayüzleri

Birçok kullanıcı arayüzleri ekran elemanları, örneğin animasyonlu geçişler hızlandırmak için doku haritalama kullanmak Expose içinde Mac OS X .

Ayrıca bakınız

Referanslar

Yazılım

  • TexRecon - C++ ile yazılmış 3B modellerin tekstüre edilmesi için açık kaynaklı yazılım

Dış bağlantılar