-
Data: 2012-12-01 19:53:27
Temat: Re: 3d -> 2d
Od: firr kenobi <p...@g...com> szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]W dniu sobota, 1 grudnia 2012 18:25:41 UTC+1 użytkownik bartekltg napisał:
> W dniu 2012-12-01 11:39, firr kenobi pisze:
>
> > Ostatnio naszła mnie idea by podzialac troche w
>
> > softwarowym rasteryzerze, tj zrobic sobie prosty,
>
> > (prosty framework do 2d mam juz zrobiony, o tyle
>
> > prosty rasteryzer z kulkami czy trojkatami to
>
> > nie jest juz tak duzo roboty
>
>
>
>
>
> Parser mi się wyłożył. Nie zamknąłeś nawiasu, nie
>
> kontynuowałeś myśli sprzed nawiasu. Wdałeś się
>
> w dygresję i zapomniałeś napisać, o co chodzi.
>
> ...zrobić sobie prosty _co_?
>
>
>
> Czytaj posty przed wysłaniem.
>
>
>
> > potrzebuje jednakze wzorku na rrzutowanie
>
> > wspolrzednych 3d na ekran 2d dla danego
>
> > ustawienia kamery
>
> >
>
> > kamera jest u mnie opisana przez:
>
>
>
> > float3 cameraPos = {0,0,0};
>
> > float3 cameraDir = {0,0,-1};
>
> > float3 cameraUp = {0,1,0};
>
> > float3 cameraLeft = {1,0,0};
>
>
>
>
>
> A co znaczą te punkty?
>
> Rozumiem, że pos to położenie środka (wyróżnionego
>
> punktu), dir to kierunek patrzenia, up i left to
>
> ścianki kamery.
>
>
>
> {dir, up, left} są wzajemnie prostopadłe.
>
> > jak zrzutowac
>
> >
>
> > float3 wierzcholek = {-20, -10, 200};
>
> >
>
> > na ekran dla danych ustawien kamery?
>
>
>
>
>
> No to nic prostszego.
>
> Zakładam, że wektory są stojące. ' to transpozycja, * mnożenie.
>
>
>
> {dir, up, left} są prostopadłe i odpowiednio wyskalowane.
>
>
>
> X - punkt do obróbki.
>
>
>
> X2 = X - Pos.
>
>
>
> Cle = (Left')*X2 (czyli po ludzku, dostajemy liczbę w wyniku
>
> dodania przemnożonych współrzędnych
>
> left.x * X2.x + left.y * X2.y +left.z * X2.z)
>
>
>
> Cup = (Up')*X2
>
>
>
> Dodatkowo, jeśli chcesz wiedzieć, czy punkt nie jest czasem
>
> za kamerą, liczysz Cdi = (Dir')*X2. Jeśli jest dodatni, jest
>
> przed kamerą, jeśli ujemny, za. Jeśli ==0, to punkt jest na
>
> powierzchni kamery.
>
>
>
> Można to zapisać macierzowo
>
>
>
> [Cle;Cup; Cdi] = [left'; up'; dir] * (X-Pos)
>
>
>
> Macierz ze środka składa się z wektorów leżących (obróconych)
>
> jeden na drugim.
>
>
>
> Jeśli zamiast wektorów w 3D użyjesz sztuczki z dodatkowym wymiarem,
>
> zawsze równym 1, czyli
>
> X = {x; y; z; 1}
>
>
>
> to możesz stworzyć jedną macierz rzutowania na kamerę:
>
> M = [left', 0; up', 0; dir, 0; 0,0,0,1] *
>
> * [ 1,0,0,-pos_x; 0,1,0,-pos_y; 0,0,1,-pos_z; 0,0,0,1 ]
>
>
>
> A taka operacja ma najprawdopodobniej wsparcie sprzętowe.
>
> Chociaż pierwsza wersja nie wykonuje niepotrzebnych obliczeń,
>
> nie wiem, którą się obecnie używa.
>
prosty softwarowy rasteryzer, Co do wzorkow to nie zatsanowilem sie ze wystarcza
iloczyny skalarne, szybko sie wyjasnilo. Ciagle troche dziwi mnie ze to uciga az
100tys kulek (moze raczej kropek) na ramke
https://dl.dropbox.com/u/42887985/soft.zip
https://dl.dropbox.com/u/42887985/100kKulekSoftRast.
jpg
Jestem zadowolony, zobacze pozniej jak
by szlo z trojkatami - softwarowe srodowisko
jest wygodne, lubie opengla, ale co pixele to pixele
Następne wpisy z tego wątku
- 02.12.12 20:23 firr kenobi
- 03.12.12 00:32 bartekltg
- 03.12.12 01:00 firr kenobi
- 03.12.12 08:42 Sławomir Szczyrba
- 03.12.12 09:29 M.M.
- 03.12.12 10:02 firr kenobi
- 03.12.12 14:28 firr kenobi
- 03.12.12 14:49 firr kenobi
- 03.12.12 15:14 Michoo
- 04.12.12 13:29 Sławomir Szczyrba
- 05.12.12 14:31 firr kenobi
- 05.12.12 20:55 Sławomir Szczyrba
- 06.12.12 07:39 firr kenobi
- 06.12.12 10:08 Sławomir Szczyrba
- 07.12.12 18:16 firr kenobi
Najnowsze wątki z tej grupy
- Popr. 14. Nauka i Praca Programisty C++ w III Rzeczy (pospolitej)
- Arch. Prog. Nieuprzywilejowanych w pełnej wer. na nowej s. WWW energokod.pl
- 7. Raport Totaliztyczny: Sprawa Qt Group wer. 424
- TCL - problem z escape ostatniego \ w nawiasach {}
- Nauka i Praca Programisty C++ w III Rzeczy (pospolitej)
- testy-wyd-sort - Podsumowanie
- Tworzenie Programów Nieuprzywilejowanych Opartych Na Wtyczkach
- Do czego nadaje się QDockWidget z bibl. Qt?
- Bibl. Qt jest sztucznie ograniczona - jest nieprzydatna do celów komercyjnych
- Co sciaga kretynow
- AEiC 2024 - Ada-Europe conference - Deadlines Approaching
- Jakie są dobre zasady programowania programów opartych na wtyczkach?
- sprawdzanie słów kluczowych dot. zła
- Re: W czym sie teraz pisze programy??
- Re: (PDF) Surgical Pathology of Non-neoplastic Gastrointestinal Diseases by Lizhi Zhang
Najnowsze wątki
- 2025-02-04 ranking wyciszenia, głośność, hałas przy 130 km/h, na postoju, przy przyspieszaniu
- 2025-02-05 Warszawa => IT Recruiter <=
- 2025-02-05 Ostrów Wielkopolski => Area Sales Manager OZE <=
- 2025-02-05 Rzeszów => Spedytor Międzynarodowy <=
- 2025-02-05 Warszawa => IT Business Analyst <=
- 2025-02-05 Warszawa => Specjalista DevOps <=
- 2025-02-05 Łódź => NodeJS Developer <=
- 2025-02-05 Warszawa => QA Engineer (Quality Assurance) <=
- 2025-02-05 Gdańsk => Specjalista ds. Sprzedaży <=
- 2025-02-05 Warszawa => QA Engineer <=
- 2025-02-05 Warszawa => Programista Full Stack .Net <=
- 2025-02-05 Re: UK: Michał K. dalej czeka na rozprawę ekstradycyjną w areszcie [bo nie (jeszcze?) zebrał kaucji]
- 2025-02-04 podpisywanie umów z datą wsteczną
- 2025-02-04 Radio internetowe do starego Androida
- 2025-02-04 "ogrodowa linia napowietrzna"