Podgląd sceny 3D w czasie rzeczywistym w OpenGL

0

Witam, ostatnio, jakoś 2 tygodnie temu zacząłem pisać silnik 3D w c++, otóż pierwszym problemem na jaki natrafiłem był podgląd sceny 3D w czasie rzeczywistym (dla tych którzy nie rozumieja to tam gdzie się wyświetlają modele 3D) i nadal nie wiem jak go rozwiązać. Wiem ze takie coś da się zrobić bo inne silniki takie jak unity3d czy inne takie coś mają.:-P Nie piszcie tylko, że Mam nie pisac silnika tylko gry itp. ;-)

1

Ale czego nie wiesz jak zrobić? Przeciez podgląd sceny to de facto renderowanie właściwej sceny.

0

Ale jak ja przenieść do programu?
Poruszać się po niej?(tylko w programie):-P

0

Chodzi Ci o edytor poziomów/sceny?

Np. dodajesz sobie do pokoju fotel, usuwasz krzesło itd.? Musisz sobie zrobić jakiś dynamiczny kontener (mapa, vector) i do niego dodajesz i usuwasz elementy sceny. Dla oświetlenia/kamery możesz również utworzyć jakieś symboliczne obiekty 3D, tak jak to jest w Blenderze. Do każdego obiektu robisz listę edytowalnych parametrów, dla modeli 3D będzie to materiał, dla oświetlenia wartość RGB koloru itd.

To jest naprawdę ogrom pracy. Mozolne projektowanie i programowanie takiego silnika, żeby to miało ręce i nogi oraz żeby nadawało się do użycia przez innych programistów.

0

A jest jakiś szablon takiego edytora sceny? A jak nie to jak się zabrać za pisanie takiego edytora?:D

1

Po pierwsze, bez ":D". To jest poważna sprawa, uśmieszek nie pasuje. Chyba, że nie traktujesz poważnie tego tematu.

Zobacz sobie jak wygląda i działa inny edytor, postaraj się zaprogramować coś podobnego. Jeśli nie potrafisz nawet naśladować istniejących rozwiązań (przecież masz wzór - Unity3d), to jeszcze jest za wcześnie dla Ciebie abyś pisał silnik tego typu. Najlepiej naucz się dobrze Blendera i napisz do niego w Pythonie skrypt eksportujący scenę do Twojego własnego formatu. A w silniku zaimplementujesz obsługę tego formatu. Jak chcesz, żeby edytor idealnie odwzorowywał wygląd i działanie gry, to musisz dedykowany edytor napisać samemu.

Ty wiesz jak ten edytor ma działać, więc po co mam Ci to tłumaczyć? Cóż Ci dadzą zalecenia:

  • edytor ma wczytać wszystkie dostępne obiekty z katalogu - biblioteki obiektów - gdzieś w menu ma wyświetlać miniatury tych obiektów;
  • po kliknięciu na miniaturę można ustawić obiekt na scenie;
  • po wstawieniu obiektu na scenę, możesz go przesuwać, skalować, obracać;
  • można zaimplementować obiekty specjalne, światło, kamera;
    ?

Żadnego szablonu przecież nie zastosujesz do swojego silnika. Zacznij od projektowania, od ogółu (dostępne funkcjonalności) do szczegółu (zawiłości implementacyjne).

0

Co do edytora to myślę ze tablica 3d była by dobra + jakiś skrypt oglądania i poruszania się po projekcie, ale nie wiem jak się pisze format modeli 3d.A nie lepszy był by jakiś gotowy format np.collada?

1 użytkowników online, w tym zalogowanych: 0, gości: 1