Текстурни филтри
- Forums:
Във връзка с билинейния филтър от второто домашно, се замислих за някакви решения с още по-малко aliasing артефакти. Mipmaps, трилинеен филтър, анизотропно семплиране, такива неща.
Да де, обаче в контекста на raytracer на базата на какво ще избираме mipmap ниво и колко различно се разтягат u и v измеренията? Да проектираме филтъра върху обекта - това влиза в графа по-лесно да го кажеш, отколкото реализираш.
След невероятни усилия в интернет (да се чете - 15 минути с google), успях да намеря поне 20 различни картинки за това какво е анизотропен филтър и защо е готино/не и как да си го пусна в DirectX / ОpenGL. Както и това нещо.
Трасиране на диференциалите на лъчите ... звучи като удивително не-чак-толкова-сложна идея, като изключим факта, че трябва навсякъде по кода да се пипа, за да влачим апроксимация на производните.
И така - към хора по-добре запознати с областта - колко хубаво / отвратително е това, има ли други по-ефективни модели? През това време ще разгледам и референциите в доклада, както и ще потърся в Siggraph за нещо интересно.
Comments
моето мнение
Професионалният подход е да се ползват ray differentials, а текстурите да се пазят като summed area table - с всички сложнотии, които произтичат от смятането на ray differentials.
Както правилно се досещаш, именн тяхната реализация, за всичките видове геометрия, която се ползва, и с всичките частни случаи и случайчета, е най-тежката част от всичко. След него, може да ползваш и mipmaps с trilinear filtering или (дори) anisotropic filtering. Обаче, SAT се пише само малко по-трудно от тях, а дава по-добри резултати, пък и ще ти се струва детска игра след ray differential-ите.