3Dc
3Dc (FourCC : ATI2), позната као и DXN, BC5, или Block Compression 5 је алгоритам компресије са губитком података за нормалне мапе направљен и прво имплементиран од стране ATI[1]. Ослања се на ранији DXT5 алгоритам и то је отворен стандард.3Dc је сада имплементиран од стране ATI[1] и Nvidia[2] је један од највећих светских произвођача графичких чипова за личне рачунаре и Xbox.
Циљна апликација
Циљна апликација, нормално мапирање, је екстензија бамп мапирања која симулира осветљење геометриских поврсина тако што чита површине нормала са проволиниских мрежа који су аналогни текстурним мапама - дајући једноставним моделима импресију повећане комплексности. Овај додатни канал повећава учитавање протока графичким мемориским системима. Пре постојања алгоритама са губитком података имплементираним на корисничком хардверу имали смо мањак прецизности неопходну за репродукцију нормалних мапа без прекомерних видљивих артефакта, правдајући развој 3Dc.
Алгоритам
Нормале површине су тродимензионални вектори, јединичне вредности. Зато сто је дужина константна само два елемента једне нормале морају бити сортирана. И због тога је улаз само низ од само дводимензионалних елемената.
Компресија се изводи на 4х4 блоковима. У сваком блоку, две компоненте сваке вредности су компресоване појединачно. За сваки блок, свака од две компоненте има палету од осам вредности. Палете су генерисане од две вредности које представљају почетак и крај праве, остале шест вредности су генерисане као линеарна комбинација почетка и краја праве.
Компресија је изворно постигнута проналажењем најмање и највеће вредности од 16 пиксела, које су компресоване и сортиране у 8-битним количинама. Индивидуални елементи у 4х4 блоковима се чувају у 3-бита појединачно, представљајући њихову позицију на осмо степеној линеарнј скали. Свака 3-битна вредност пиксела биће изабрана од минималне дистанце од оригиналне вредности.
Укупно чување је 128-бита по 4х4 блоку, кад два извора буду факторисана. У не компресованој шеми са 8-битној прецизношћу, извор података је 32 8-битне вредности за исту област, заузимају ћи 256 бита. Тада алгоритам прави компресију размере 2:1.
Размера компресије на почетку је 4:1 јер је уобичајно да се користи 16-битна прецизност за улазне податке него 8-битна.
3Dc+
3Dc+ (FourCC: ATI1) (позната као BC4 или Block Compression 4) може да компресује текстуре тј. лаке мапе, мапе сенки, HDR текстуре и својства материјала.3Dc+ омогућава 2:1 однос компресије са једном компонентом 8-битне целобројне текстуре и 4:1 однос компресије са нормалним мапама и са текстурама које се састоје од две 8-битне целобројне компоненте.
Референце
- ^ а б АТИ. „АТИРЕФ” (на језику: енглески). Приступљено 8. 2. 2016. „Компанија се бави производњом микропроцесора и флеш меморија”
- ^ „NVIDIAРЕФ” (на језику: енглески). 1993. Приступљено 8. 2. 2016. „NVIDIA Corporation”
|first1=
захтева|last1=
у Authors list (помоћ)
Литература
- Introductions to algorithms -Thomas H. Cormen,Charles E. Leiserson,Ronald L. Rivest,Clifford Stein, књигу можете погледати овде Архивирано на сајту Wayback Machine (18. октобар 2016)
- Алгоритми и структуре података - Мило Томашевић
Спољашње везе
- 3Dc White Paper (PDF)
- Microsoft Developer Network article on Block Compression in Direct3D 10
- What is a Normal Map?
- CREATING AND USING NORMAL MAPS
- Creating Normal Maps Архивирано на сајту Wayback Machine (5. фебруар 2005)
- 3Dc - higher quality textures with better compression