2012-11-21 15 views
5

Mam obraz chmury punktów 3D (patrz poniżej).Uśpienie zablokowanych punktów w chmurze punktów

Chciałabym też usunąć wszystkie punkty, które teoretycznie znajdują się za innymi punktami (np. Punkty wokół tylnej części osoby nie będą widoczne, ponieważ są zatkane przez punkty wokół klatki piersiowej i brzucha).

Jak mam rozwiązać ten problem?

Potrzebuję tylko punktów, które nie są zasłonięte od widoku z przodu, dzięki czemu mogę go używać do innych celów.

Edytuj: To naprawdę nie jest do celów oglądania. Próbuję wyizolować tylko niezakłócone wierzchołki, aby później obliczyć powierzchnię normalną, aby uzyskać funkcje głębi obrazu.

enter image description here

+0

Dlaczego powierzchnia jest normalna, aby uzyskać głębokość? – JAre

+0

Brak wydobycia głębokości, ale użycie powierzchni normalnej jako funkcji dla obrazu głębi. To bardziej komputerowa wizja. Używam niektórych modeli OBJ do tymczasowego naśladowania danych chmury punktów uzyskanych z Kinect. A ponieważ jest to czujnik głębokości, tylko przednia część obiektu jest pobierana przez Kinect –

+0

Można renderować normalne siatki jako kolor fragmentu (RGB) i głębokość jako alfa do tekstury i wyszukiwać losowe punkty z niego lub stosować maskę, która zawiera wartości 1 i 0 i mutatelyly shader na wyjściu, dzięki czemu otrzymasz teksturę z punktami zamiast stałej powierzchni. – JAre

Odpowiedz

3

Nie można zasłonić czymś punktem - nie ma on żadnych wymiarów.

Jeśli masz, masz siatkę (tzn. Wiesz, do których punktów należy "podłączyć"), możesz ukryć rzeczy zasłonięte za tą siatką.

Jeśli nie, najłatwiejszą sztuczką, jaką znam, aby osiągnąć coś takiego jak twoje wymaganie, jest użycie blaknięcia związanego z Z - po prostu punktuj z tyłu.

+0

Jeśli weźmiesz pod uwagę linię (promień) między punktem i punkt w modelu, czy wszystkie punkty w tym wierszu nie będą "zasłonięte" przez punkt najbliższy modelowi kamery? –

+0

@RuiMarques tylko wtedy, gdy _exactly_ on-line, ale punkt ma zerowy rozmiar, więc nie może niczego ukryć. – Alnitak

+0

Oczywiście, myślę, że OP oznacza punkty zasłonięte przez powierzchnie zdefiniowane przez inne punkty. –

1

Jak o świadczenie wielokątny siatki z teksturą punkty? Innym sposobem jest renderowanie wielobokowej siatki do bufora z (potrzebujesz tylko głębokości) i użycie go do odrzucenia (daleko punktów nie powiedzie się z-testu) punktów, które znajdują się za siatką.