O stereogramach
Swego czasu modne były (i chyba nadal są) tzw. stereogramy, czyli płaskie obrazki 2D, które przy odpowiednim sposobie patrzenia otrzymują trzeci wymiar. Dzięki temu na kartce, ekranie monitora itp. możemy oglądać obrazki 3D.
Ze względu na fakt, że stereogramy spodobały mi się od pierwszego 'wejżenia' zabrałem się do wymyślania algorytmu, dzięki któremu płaska kartka może stać się 'wypukła'. Po kilku niepowodzeniach udało mi się w końcu dojść do oczekiwanych rezultatów. Poniżej przedstawiam trochę tekstu na temat otrzymywania stereogramów, dodatkowo powinny się gdzieś tutaj znaleźć jakieś przykładowe obrazki 3D i progrm (mojego autorstwa - rozpowszechnianie zalecane), który służy do tworzenia stereogramów.
Tak jak wiele innych efektów wizualnych efekt 3d na płaskim obszarze możemy uzyskać tylko dzięki oszukaniu naszych oczu.
Żeby zobaczyć efekt 3d należy patrzeć "przez ekran" dzięki temu możliwe jest wpływanie na odległość z jaką nasze oczy będą interpretować widziane obrazy. Poniższy obrazek pokazuje jak patrzymy na rzeczy bliższe i dalsze:

Widać z niego wyraźnie, że oczy interpretują odległość na podstawie kąta jaki tworzą "promienie patrzenia" poszczególnych oczu. Wykorzystując ten fakt możemy już zabrać się do analizy algorytmu 3d. Aby to jednak było możliwe należy przyjąć, że patrzymy na ekran w ten sposób:

Jest to właśnie 'patrzenie przez ekran'. Na początku bardzo trudno jest 'namówić' oczy aby nie skupiały swojej uwagi na monitorze, ale na jakimś fikcyjnym punkcie za nim. Istnieje kilka metod na nauczenie się 'zezowania'. Moim zdaniem najprościej jest się nauczyć patrząc w monitor na swoje odbicie (ewentualnie czegoś jasnego (np. lampka na biurku)). Warto jest się nauczyć patrzeć na steregoramy, ponieważ efekt jast wspaniały. A dlaczego na ekranie widzi się trzeci wymiar. Możliwe jest ono tylko dzięki temu, że poszczególne kolumny ekranu są do siebie bardzo podobne (dzięki temu oczy mogą "złapać ostrość"). Każda para kolumn składa się z "bliźniaczych" punktów (na powyższym obrazku są to punkty A i A' oraz B i B').
W zależności od tego czy są one względem siebie przesunięte czy nie możemy otrzymać efekt głębi. Na powyższym obrazku odległość pomiędzy A i A' jest mniejsza niż pomiędzy B i B' dlatego oczy muszą ustawić się pod mniejszym kątem i widzą ten punkt w odległości mniejszej niż punkt tworzony przez B i B'.
A w jaki sposób tworzy się obrazek 3d... Na początku należy ustalić na ile kolumn będziemy dzielić ekran. W zależności od rozdzielczości i przekątnej ekranu mogą to być wartości od 6 do 15 pasków. Pierwszy pasek od lewej wypełniamy w sposób całkowicie dowolny (mogą to być losowo rozsypane punkty, może to być jakaś tekstura...). Natomiast kolejne paski są punkt po punkcie kopiowane z paska poprzedzającego dany, jednak z ewentualnym przesunięciem kopiowanych punktów. Wielkość przesunięcia określa tzw. mapa głębokości, która jest niezbędna do stworzenia stereogramu. Np. jeśli mapa głębokości mówi nam, że aktualnie obrabiany punkt powinien być na głębokości +3 to rysujemy go przesuniętego o trzy punkty w lewo.
W ten sposób tworzymy cały obrazek. Należy przy implementowaniu tego algortymu pamiętać o nie przesadzaniu z ilością pasków oraz ilością dostępnych głębokości. Niedobre wartości tych parametrów powodują, że stereogram jest trudny do zobaczenia.
Mam nadzieję, że powyższy tekst wyjaśnił sposób powstawiania efektu 3D na płaskich obrazkach i dał podstawy do próby napisania własnego programu tworzącego stereogramy. W razie jakichkolwiek niejasności zapraszam na prywatną audiencję:
Obejrzyj stereogramy: - Kostka - Rurka - Delfin
Program do wykonywania stereogramow autorstwa autora tekstu: StereoGR
Początek artykułu

Copyright (c) 1999 - 2000 NoName |
|