Skocz do zawartości

[delphi][opengl] Kilka spraw


wbp

Polecane posty

1. Nie mogę wymyślić jak zrobić dokładną kolizję powiedzmy modeli z 3ds max. Wiadomo że takie modele są zbudowane z trójkątó, ale i tak nie umiem wymyślić.

2. Obrót kamery w jednym z moich programów realizuje myszą. Mysz jedzie w lewo, a kamera obraca sie w lewo. Oczywiście da sie wyjechać poza okno programu i wtedy nie działa.

(Bo współżedne pobieram ze zdarzenie mousemove formy). No. i gdy próbuje ustawić kursor na środku okna (po przesunięciu myszy) procedurką setcursorpos nic mi się nie wyświetla na oknie. Da się w inny sposób ustawić mysz w danym punkcie? (nie wiem, może jakiś trick lub wstawka z asma?)

proszę o pomoc. Jeżeli nie udzieliłem pewnych szczegółów to proszę pisać.

Link do komentarza
Udostępnij na innych stronach

jak będę pobierał pozycję myszy przez getcursorpos to zamiast okno będzie mnie ograniczać ekran. (bo poza niego system nie pozwala wyjechać, chyba że da się to zmienić to co innego). Pozatym w innych strzelankach też tak jest że po każdym przesunięciu kursor wraca na srodek. weźmy tagiego cs 1.6. Dobra masz tam celownik który widzisz, lecz nie względem niego się obracasz tylko kursora który jest ukryty. p.s.

Link do komentarza
Udostępnij na innych stronach

ma jeszcze jedno pytanko.jak mam sobie taki kawałek kodu

var
pFd : TPIXELFORMATDESCRIPTOR;
pF : Integer;
...
pFd.dwFlags := PFD_DRAW_TO_WINDOW or PFD_SUPPORT_OPENGL or PFD_DOUBLEBUFFER or 0;

to tam gdzie są te flagi jest flaga PFD_DRAW_TO_WINDOW. jej nazwa sugeruje mi że oznacza rysowania sceny w oknie. w takim bądź razie pytanko brzmi czy jest taka co daj full screen? ( muszę wam powiedzieć że macie pojęcie o grafice 3d. znalazłem kiedys forum programistyczne. Niby dobre (znali się dosyć na asmie) ale słowo OpenGL chyba pierwszy raz usłyszeli w życiu =) )

Link do komentarza
Udostępnij na innych stronach

Tak. ZMiana rozdzielczości to dobry sposób. Mam równierz pytanienie torchę (jak dla mnie) skomplikowane. Poruszam kamerę po scenie za pomocą GLLookAt. I mam sobie tam poustawiane prymitywy. Jak obracać wybrane przeze mnie prymitywy względem jakiegoś punktu? (Próbowałem glRotatef ale obracało w okół punktu 0,0,0 a jak dodałem do tego jeszcze glTranslatef to "przesuwało ten punkt" w inne spółrzędne);

Link do komentarza
Udostępnij na innych stronach

Force dzięki. Zapomniałem :)

Heh może to głupio zabrzmi, ale ... Czytałem gdzieś o OpenGL no i tam był przykład i były używane glPushMatrix() i glPopMatrix(). Ale ja zrobiłem tak samo bez tych procedurek i tez działało. Co te procedury "robią"?

Link do komentarza
Udostępnij na innych stronach

Dzięki. jest to mój pierwsszy wątek na tym forum, i zaczynam doceniać jego wybór =). Ostatni problem jaki wam przedstawię, to wyświetlanie na ekranie (równocześnie gdy wyświetlamy scene z OpenGl) obiektów 2D. Taki jakby interfejs gry. Wiadmo o co chodzi. Próbowałem zrobić to po prostu za pomocą canvasa, ale marnie to wyszło(obraz tylko w pewnych momętach było widać gdy nie odświerzałem sceny w openGl). No i troche poczytałem, i znalazłem taki oto sobie algorytm:

1. przełącz sposób przekształcania z 3D na GlOrtho2d (glortho2d nie znalazło mi delphi to wrzuciłem glOrtho )

2. rysuj interfejs

3. wróć do 3D ( w moim przypadku glFrustum )

I nic nie wyszło. =( Czytałem że można w SDL, ale nigdy tego w delphi nie używałem. Jestem otwarty na wasze propozycję.

Link do komentarza
Udostępnij na innych stronach

Zarchiwizowany

Ten temat jest archiwizowany i nie można dodawać nowych odpowiedzi.

×
×
  • Utwórz nowe...