Filtrowanie trójliniowe

listopad 27th, 2008

Filtrowanie trójliniowe to sposób wykonywania poprawy jakości tekstur w trójwymiarowej grafice komputerowej, polegająca na zamazywaniu granic między mipmapami, przez interpolację pośrodku kolejnymi poziomami mipmapy. Jest to tak bardzo w istocie rozciągniecie filtrowania dwuliniowego.

Technika powyższa nie stanowi idealnego rozwiązania na rzecz rysowania tekstur poniżej dużymi kątami, jest natomiast często stosowana ze względu na swoją wydajność.

Opis


Różnica między filtrowaniem biliniowym (po lewej), a trójliniowym (po prawej). Strzałkami oznaczono miejsca widocznych pokonać pośrodku poziomami szczegółowości mipmap.

W filtrowaniu biliniowym wartości tekstury były obliczane na podstawie interpolacji biliniowej między najbliższymi czterema punktami w teksturze - tekslami. Podziękowanie tej operacji jest dozwolone było zdobyć uśrednione wartości tekstury pośrodku jej dyskretnymi punktami. Sprawność ta dawała dobre rezultaty na rzecz tekstur wyświetlanych w dużym powiększeniu.

Dla tekstur, które znajdowały się w pewnej odległości od obserwatora, pojawia się szkopuł aliasingu - tekstury znajdujące się w targ dużej odległości są rynek szczegółowe, przez co próba wyświetlenia ich w przestrzeni ekranu daje niepożądane efekty. By odwrócić powyższemu stosuje się różne horyzontalny szczegółowości tekstury w układy od odległości - tzw. mipmapy. Na podstawie zadanej tekstury tworzy się ciąg tekstur o mniejszych rozdzielczościach z użyciem filtrów dolnoprzepustowych (atut każdego teksla jest średnią ważoną z odpowiednich teksli z wyższego poziomu szczegółowości).

W grafice komputerowej teksturowane obiekty często umiejscowione są w ów tryb, iż ich część znajduje się plus minus obserwatora, zaś część w oddali. Przykładem mogą być w tym miejscu teksturowane powierzchnie reprezentujące np. ziemię w symulatorach lotu. W powyższych przypadkach wymaga się iżby tekstura była słusznie wyświetlana zarówno na rzecz jej fragmentów znajdujących się bliżej obserwatora, jakim sposobem i na rzecz tych w wyższym stopniu oddalonych - tak aby połączone były ze sobą cechy filtrowania dwuliniowego z mipmapami (różnymi poziomami szczegółowości). By anulować wyżej wymieniony powikłanie w grafice komputerowej stosuje się cedzenie trójliniowe.

Filtrowanie trójliniowe polega na interpolacji pośrodku najbliższymi tekslami dodatkowo na dwóch poziomach szczegółowości (jednakowo w jaki sposób pod ręką filtrowaniu dwuliniowym), a później interpolacji liniowej pośrodku dwoma uzyskanymi wartościami (z dwóch poziomów szczegółowości), w układy od odległości od obserwatora.

Z użyciem powyższych technik, wyświetlanie kolejnych poziomów szczegółowości następuje płynnie, bez widocznych odbyć pośrodku poszczególnymi mipmapami.

W dzisiejszych kartach graficznych 3D cedzenie trójliniowe jest wspomagane sprzętowo i jest w szerokim zakresie stosowane zwłaszcza w grach komputerowych. Wskazane jest odnotować, że powyższa strategia nie jest doskonała i blisko dużych kątach efekty filtrowania wydają się być sztuczne na rzecz ludzkiego oka - mnogość lepszą techniką jest obciąganie anizotropowe.

Zobacz też

  • Filtrowanie dwuliniowe
  • Filtrowanie anizotropowe

Bibliografia

  1. Foley J.D., Van Dam A., Feiner S.K., Hughes J.F., Phillips R.L.: Introduction to Computer Graphics, Addison-Wesley Longman Publishing Co. Inc., 1994.
  2. http://developer.nvidia.com

POV-Ray

listopad 23rd, 2008


Grafika stworzona w programie POV-Ray

Persistence of Vision Ray-Tracer bądź POV-Ray jest programem służącym do ray tracingu na rzecz komputerów z systemami Windows, Mac OS/Mac OS X bądź i86 Linux. Wykorzystywany jest głównie do tworzenia grafiki trójwymiarowej. Projekt udostępniany jest na zasadzie licencji freeware.

Cechą charakterystyczną programu jest wykorzystywanie zaawansowanego języka opisu sceny SDL (ang. Scene Description Language), kto jest w zasadzie językiem programowania, zawierającym elementy takie jakże m.in. zmienne, tablice, instrukcje warunkowe, pętle, funkcje. Geometrię obiektów definiuje się w poprzednio w tryb parametryczny, podziękowanie czemu mapa ich kształtu jest niezwykle dokładne, a ponadto możliwe staje się uzyskanie obrazu powierzchni nieskończonych albo ogromnie złożonych takich jakim sposobem np. powierzchnie funkcyjne.

W programie aparycja sceny opisuje się w skrypcie, w którym umieszcza się informacje dotyczące:

  • położenia kamery
  • oświetlenia
  • obiektów w postaci brył i powierzchni

Program umożliwia wygenerowanie sekwencji obrazów do celów animacji.

POV-Ray wykorzystuje w tym momencie multum nowoczesnych technik ułatwiających generowanie sceny i podnoszących ścisłość obrazu:

  • caustics - udawanie załamania światła na nierównej powierzchni, np. na falującej wodzie
  • CSG (Constructive Solid Geometry) - wykonywanie operacji logicznych na bryłach
  • photon mapping - mapa przebiegu strumienia światła, pozwala na wierność zjawisk takich jakim sposobem np. refrakcja
  • radiosity - obliczanie światła rozproszonego

POV-Ray rozwijany jest ciągle od 1991 r. na bazie wcześniejszego programu o nazwie DKBTrace. Autorzy tworzą grupę POV Team, która dąży do ciągłego unowocześniania technik stosowanych w programie, zwiększenia jego wydajności i zachowania zgodności z poprzednimi wersjami, a też między wersjami przeznaczonymi na rzecz różnych systemów operacyjnych.

Wzorcowy skrypt


Wygenerowana utarczki na podstawie zamieszczonego przy skryptu

#include “colors.inc”

global_settings {
assumed_gamma 1.0
max_trace_level 5
}

camera {
location <0.0, 0.5, -4.0> //pozycja umieszczenia kamery
direction 1.5*z
right x*image_width/image_height
look_at <0.0, 0.0, 0.0> //punkt programu na kto patrzy (jest skierowana)kamera
}

sky_sphere {
barwnik {
pochylenie y
color_map {
//przydawka koloru (składowe r-czerwony,g-zielony,b-niebieski)

}
}
}

light_source { // wstawienie światła punktowego
<0, 0, 0> // ułożenie ciała początkowa światła
color rgb <1, 1, 1> // barwa światła
translate <-30, 30, -30> // wypieranie x,y,z
}

plane { // posadzka w “szachownicę”
y, -1
texture
{
barwnik {
checker
color rgb 1
color blue 1
scale 0.5
}
finish{
diffuse 0.8
ambient 0.1
}
}
}

sphere { // błyszcząca kula
0.0, 1
texture {
barwnik {
color rgb <0.8,0.8,1.0>
}
finish{
diffuse 0.3
ambient 0.0
specular 0.6
reflection {
0.8
metallic
}
conserve_energy
}
}
}

Zobacz też

  • Gilles Tran

Linki zewnętrzne

  • POV-Ray - Persistence of Vision Raytracer - pagina domowa programu
  • POVCOMP - POV-Ray Competition - stronica konkursu na najlepszą grafikę, z cennymi nagrodami
  • Internet Raytracing Competition - gros artysta grafik i animacji wykonana blisko użyciu POV-Raya
  • Andrea Lohmüller + Friedrich A. Lohmüller - grafiki wykonane w sąsiedztwie użyciu POV-Raya

śmieszne filmiki natural soap konstrukcje stalowe autoklaw odżywki www.pozycjonowanie.mde.pl konstrukcje stalowe Grill Kraków systemy raid www.pozycjonowanie.mde.pl
pozycjonowanie i optymalizacja ror Konstanty Ildefons Gałczyński Adam Naruszewicz Igor Newerly