Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

[SFML 2.0] Tekstury wektorowe + obliczanie wektora normalnego do powierzchni

Ostatnio zmodyfikowano 2012-10-14 17:22
Autor Wiadomość
Houston
Temat założony przez niniejszego użytkownika
[SFML 2.0] Tekstury wektorowe + obliczanie wektora normalnego do powierzchni
» 2012-10-12 21:38:27
Witam,

problem dosyć prosty do opisania - pocisk uderzający pod pewnym kątem odbija się od celu i nie dochodzi do wybuchu. Cel jest nieregularny i modyfikowany w trakcie programu więc raczej musi to być tekstura.

Pytanie czy sfml obsługuje w jakiś sposób pliki wektorowe ( chociażby do obliczenia wektora normalnego do powierzchni )?

Do głowy wpadł mi też pomysł, żeby kształt celu wyrenderować jako normalmapę i odczytywać kolory pikseli. Ma to sens?
P-66701
DejaVu
» 2012-10-12 22:08:17
Uhm... niezłe pytanie :P Obsługa wektorowa tekstur jest raczej mało prawdopodobna. Myślę, że powinieneś wówczas zbudować model składający się np. z 50 wierzchołków, i do każdego wierzchołka podczepić teksturę, która będzie się rozciągała i kurczyła. Co do mechanizmu obliczania normalnej do powierzchni to:
Frazy, które należy wpisać w wyszukiwarkę google:
Result:
http://www.sfml-dev.org/documentation/1.3/Shape_8hpp_source.php
a potem po nitce do kłębka:
Frazy, które należy wpisać w wyszukiwarkę google:
czyli:
http://coderzilla.com/libraries/SFML-2/api/Shape_8hpp_source.htm
P-66705
Houston
Temat założony przez niniejszego użytkownika
» 2012-10-13 11:19:28
O proszę, nie pomyślałbym, że takie rzeczy są już w sfml. Wstyd, że sam nie znalazłem...
Szkoda, że nie ma obsługi tekstur wektorowych, w moim przypadku 50 wierzchołków to zdecydowanie za mało a przy większej ilości kolizji komp by chyba nie wyrobił, muszę to sprawdzić.
Dzięki za pomoc DejaVu.
P-66739
Houston
Temat założony przez niniejszego użytkownika
» 2012-10-14 17:22:52
Rozwiązałem to w ten sposób, że dany kształt renderujemy w jakimś programie jako normalmapkę i odczytujemy kolor danego piksela ( interesują nas tylko kanały R dla osi x oraz G dla y ).

[url]http://i49.tinypic.com/4tpvl4.png[/url]
(nie czepiajcie się wartości 128 ;) )

Od wartości każdego kanału odejmujemy 255/2 (otrzymujemy w ten sposób tę przesuniętą na rysunku oś R' i G') i do szczęścia przybliża nas wzór atan(G'/R').
A później już tylko cieszyć się możliwością rysowania po teksturach w nowym sfml :)
Ameryki nie odkryłem, ale może się komuś przydać więc wrzucam :)
P-66828
« 1 »
  Strona 1 z 1