Autor Wątek: Efekt kolizji pocisku ze scianą :o  (Przeczytany 3189 razy)

Offline ziomber

  • Użytkownik

  • Zbanowany
# Czerwiec 18, 2007, 22:04:45
Najpierw co to jest :P


hmm to co mam to pozycja zatrzymania sie pocisku na scianie (punkt) [czyli tam gdzie strzelilem), dalej mam wszystkie parametry tej ściany czyli normalną i odległość D (Ax+By+Cz+D = 0)

Chce narysować efekt jaki jest na rysunku poniżej problem w tym, że nie wiem jak bo nie wiem jak narysować prostokąt, który będzie prostopadły do ściany potrzebuje wyliczyc te 4 punkty :S
« Ostatnia zmiana: Czerwiec 18, 2007, 22:07:55 wysłana przez ziomber »

Offline Mr. Spam

  • Miłośnik przetworów mięsnych

Offline Charibo

  • Redaktor

# Czerwiec 18, 2007, 22:40:17
eee? Nie rozumiem wiele z posta, ale afaik wystarczy poprostu wyrenderowac billboard i umiescic emiter czastek z w miejscu trafienia.

Cytuj
nie wiem jak narysować prostokąt, który będzie prostopadły do ściany
Nie potrzebujesz prostokata wyrownanego do sciany, tylko do kamery[1], ktory renderujesz w miejscu przeciecia promienia ze sciana

[1] na googlach jest pelno, szukaj billboard, ew. napisz sobie na shaderze point sprite'y (nie wiem czy w OGL sa)

Offline ziomber

  • Użytkownik

  • Zbanowany
# Czerwiec 18, 2007, 22:50:12
no właśnie potrzebuje te 4 vertexy wyrównane do ściany, nie billboardy i do zadnych kamer, billboardy to widać jako dym na tym rysunku co podałem

Offline Charibo

  • Redaktor

# Czerwiec 18, 2007, 22:55:58
Sproboj napisac to zdanie gramatycznie, bo nie rozumiem.

No i wytlumacz po co ci te 4 wierzcholki?

Offline ziomber

  • Użytkownik

  • Zbanowany
# Czerwiec 18, 2007, 23:21:11
Pierwszy post w topicu, twoje przemyślenia są błędne. NIe potrzebuje billboardów tylko to co juz opisałem

Offline Grik

  • Użytkownik

# Czerwiec 18, 2007, 23:25:17
     Wydaje mi się, że wszsycy tutaj źle Cię zrozumieli, bo faktycznie odrobinę nieściśle napisałeś - z trafieniem pocisku w ścianę związane są 2 problemy - pozostawianie śladu na ścianie oraz efekt rozprysku cząsteczek ściany.
     Jeśli Cię dobrze zrozumiałem to chodzi Ci o to pierwsze, a dokładniej o zrobienie dziury po pocisku w ścianie poprzez nałożenie dodatkowych trójkątów na geometrię w miejscu zderzenia ( rozumie mnie  ktoś ?  ;D ) - artykuł na ten temat znajdziesz w perełkach programowania gier w artykule Erica Lengyel'a tom II rozdział 4.8 "Stosowanie śladów dla dowolnych powierzchni". Ja bym się jednak jeszcze zastanowił nad innymi sposobami robienia śladów np. można modyfikawać teksturę ściany w miejscu trafienia.

Pozdrawiam,
     Mateusz -=Grik=- Wieloch

RageX

  • Gość
# Czerwiec 18, 2007, 23:45:55
nie mam pojecia co jest na tym obrazku z hitmana.
Nie wiem też, z czym konkretnie masz kłopot.

Wiesz co to cross product? Cross product normalnej od punktu intersekcji, z twoim kierunkiem i masz kierunek w "bok"...
Cross product tego kierunku w "bok" z normalną  i masz kierunek w górę.

Najbardziej "ludzkie" i logiczne... chociaż pewnie z "overhead-em".
Dalej, chyba sobie poradzisz.

Edit: O ile oto ci chodzi... czyli "rysowanie" na ścianie... Jeśli nie, to napisz nam dokładniej co chcesz osiągnąć, najlepiej na jakichś życiowych przykładach("kropla na szybie, na ten przykład").
« Ostatnia zmiana: Czerwiec 18, 2007, 23:50:46 wysłana przez RageX »

Offline ziomber

  • Użytkownik

  • Zbanowany
# Czerwiec 19, 2007, 00:16:38
Nic dodać nic ująć! Nie chce żadnych rysowań na ścianie tylko ten efekt co jest w ramce :) a ten efekt w ramce to dwa quady ktore sa prostopadłe do ściany w ktora sie strzeli tylko jak wyliczyć te punkty tych quadów.
« Ostatnia zmiana: Czerwiec 19, 2007, 00:22:19 wysłana przez ziomber »

Offline Krzysiek K.

  • Redaktor
    • DevKK.net

# Czerwiec 19, 2007, 00:53:24
Cytuj
ten efekt w ramce to dwa quady ktore sa prostopadłe do ściany w ktora sie strzeli tylko jak wyliczyć te punkty tych quadów.
One nie sa prostopadłe do sciany, tylko leżą w osi strzału i narysowane są tak, żeby przodem były zwrócone do kamery. :)

Offline ziomber

  • Użytkownik

  • Zbanowany
# Czerwiec 19, 2007, 01:26:47
no wlasnie nie :/ one sa prospodałe  do sciany, jak masz hitmana 3 to podejdz do jakies belki wez wyciagnij 45'tke bez tlumika i zobacz jak to wyglada :x, wyglada jak dwa quady

Offline Krzysiek K.

  • Redaktor
    • DevKK.net

# Czerwiec 19, 2007, 01:28:26
no wlasnie nie :/ one sa prospodałe  do sciany, jak masz hitmana 3 to podejdz do jakies belki wez wyciagnij 45'tke bez tlumika i zobacz jak to wyglada :x, wyglada jak dwa quady
Nie mam Hitmana. Efekt, który pokazujesz, wygląda jak smuga po strzale, więc napisałem, jak to się robi. :)

Offline ziomber

  • Użytkownik

  • Zbanowany
# Czerwiec 19, 2007, 01:31:58
no ok :P A jak wyliczyc te 4 vertexy? mi potrzebne jest jakies poruszanie sie po przestrzeni tego surface tylko jak sie po tym surface poruszac nie wychodzac poza jego obszar, w sumie nie wiem jak to wytlumaczyc

RageX

  • Gość
# Czerwiec 19, 2007, 01:40:23
To ci tłumaczę, że sobie zobacz cross product. Do liczenia prostopadłych w 3d w sam raz.
http://en.wikipedia.org/wiki/Cross_product

Offline Krzysiek K.

  • Redaktor
    • DevKK.net

# Czerwiec 19, 2007, 01:47:52
no ok :P A jak wyliczyc te 4 vertexy? mi potrzebne jest jakies poruszanie sie po przestrzeni tego surface tylko jak sie po tym surface poruszac nie wychodzac poza jego obszar, w sumie nie wiem jak to wytlumaczyc
Żeby było jasne, chodzi mi o smugę po pocisku (długi quad od lufy do ściany). Mam nadzieję, że tez to masz na myśli. Mamy dany punkt początkowy smugi, punkt końcowy oraz wektor kierunku patrzenia kamery. Szerokość smugi jest stała i okreslona. Gdyby szerokością smugi było zero, cały quad byłby zdegenerowany do odcinka o punktach w punkcie poczatkowym i końcowym. Żeby quad miał pewną szerokość, należy pary punktów w obu końcach od siebie odsunąc o pół szerokości smugi. Odsuwamy punkty od siebie w kierunku prostopadłym do toru lotu pocisku (inaczej quad z prostokątu stałby się rombem), a takze musi to być kierunek prostopadły da kąta patrzenia kamery (quad musi być rozciągany w płaszczyźnie ekranu, żeby był widoczny). Mamy więc dwa wektory i szukamy wektora prostopadłego do nich obu, co już jest zadaniem łatwym. :)

RageX

  • Gość
# Czerwiec 19, 2007, 01:51:32
Krzysiek K. , chyba nie o tym mowa... (patrz rys.1 w pierwszym poście).