Witam.
Bawiłem się ostatnio komponentem GLScene i w pewnym momencie wpadłem na pomysł generowania terenu na podstawie danych z pliku tekstowego. Dane te to np. wysokość terenu w różnych miejscach (podane jest X i Y oraz wysokość). Ma ktoś pomysł jak to rozwiązać? Próbowałem wykorzystać jakiś przykład, ale mi się nie udało.
Z góry dziękuje za odpowiedź i pozdrawiam
tlaguz.
[Delphi][GlScene] Jak wygenerować teren? (Na podstawie txt)
- Rejestracja: dni
- Ostatnio: dni
- Rejestracja: dni
- Ostatnio: dni
Jest tam komponent do generowania terenu z bitmapy. Jesli nie chcesz go uzywac, to uzyj HeightField. Mozesz jeszcze uzyc tego "czegos" (zapomnialem juz nazwy) do tworzenia dowolnych ksztaltow z trojkatow (reczna metoda) i zrobic za jego pomoca teren.
- Rejestracja: dni
- Ostatnio: dni
Dzięki za odpowiedź. nie pamiętasz może jak nazywa się to coś do trójkątów? Nie wiesz może, czy jest to gdzieś w demach?
Z góry dziękuje za odpowiedź i pozdrawiam
tlaguz.
- Rejestracja: dni
- Ostatnio: dni
- Postów: 21
Bawiłem się ostatnio komponentem GLScene i w pewnym momencie wpadłem na pomysł generowania terenu na podstawie danych z pliku tekstowego. Dane te to np. wysokość terenu w różnych miejscach (podane jest X i Y oraz wysokość). Ma ktoś pomysł jak to rozwiązać? Próbowałem wykorzystać jakiś przykład, ale mi się nie udało.
Plik zawierające wysokości w danych miejscach płaszczyzny zwie się właśnie heightmapą.
Ja to robie tak:
Dajmy na to mamy:
var Map : array[-127...127, -127..127] of byte;
Za pomocą zdarzenia OnGetHeight gdzie mamy:
GetHeight(const x, y: Single; var z: Single;var color: TVector4f; var texPoint: TTexPoint);
zapodaje taki kod:
z:=Map[Round(X), Round(Y)];
Oczywiście w XSamplingScale i Y Sampling Scale ustawiam:
Min: -127
Max: 127
Step: 1
by [0,0] było środkiem mapy (lepiej sie obraca wzgledem srodka) -,-
Odświerzanie powierzchni wywołujesz procką StructureChanged;
El voila! RAW w GLScene -.-

- Rejestracja: dni
- Ostatnio: dni
Dzięki wielkie :-D Jednak jak ktoś pamięta ten od trójkątów, to proszę, żeby napisał ;-P
Z góry dziękuje za odpowiedź i pozdrawiam
tlaguz.
- Rejestracja: dni
- Ostatnio: dni
TGLMesh
- Rejestracja: dni
- Ostatnio: dni
Wielkie Dzięki wszystkim :-D