Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

Silnik gry MMO 3D


Jaca777

Rekomendowane odpowiedzi

Opublikowano

Naprawde ładnie :).
Pewnie masz już tak rozplanowane renderowanie, ale może coś ci się przyda.
W moim silniku zaplanowałem tak proces renderowania:
​Jest abstrakcyjna klasa GameObject, która zawiera informacje do renderowania, typu:
 * wskaźnik na Vertex i Indices buffer.
 * sposób łączenia trójkątów czyli PrimitiveType, domyślnie TriangleList
 * Macierz świata (Matrix World)
 * virutalną procedure Update()
 * wskaźnik do klasy Effect, która zawiera wskaźniki na Shadery VS, DS, HS, GS, PS, CS.
 * wskaźnik na DepthStencil, Rasterizer i RenderTarget.
* Procedure Begin() która ustawia do potoku to co się nie zmieni w tym obiekcie. Np. Kazdy grzyb ma wspólny effect(shadery) to nie ma potrzeby przy każdym DrawPrimitives ustawiac tego shadera. Begin() używa się przed funkcją Render(). 
* Procedura Render(), zawiera DrawPrimitives i np warunek dla zmiennej bool isVisible. Po co renderowac to co jest ukryte. :)
* Procedura End(), przywraca domyślne ustawienia potoku.


Renderowanie jednego obiektu:

void RenderScene()
{
  Grzyb.Begin();
  Grzyb.Render();
  Grzyb.End();
}


Dla kilku obiektów na mapie.

list<Grzyb> Grzybki;

void RenderScene()
{
   if (Grzybki.Count > 0)
   {
      Grzybki.Begin();
      for (unsigned int i = 0; i < Grzybki.Count; ++i)
      {
          Grzybki[i].Render();
      }
      Grzybki.End();
   }
}

Główna optymalizacja opiera się na jak najmniejszej ilości wykonywania operacji, tych które można zrobić jednorazowo i wykorzystywać je. np. Po co tworzyć vertex buffer przy każdym renderowaniu, skoro można raz go załadować i korzystać z niego. + No i referencji. Po co kopiować całe vertex buffery, skoro można dać wskaźnik do nich.

Mam nadzieje ze coś się przyda.
ps: VSync wpływa tez na FPS.

Opublikowano

Spoko, ale to wszystko to przecież jest podstawa budowy i optymalizacji każdego silnika. No i mam to trochę bardziej podzielone, generalnie z racji wielowątkowego ładowania i usuwania.

708121422388637873334.png

  • 5 tygodni później...
  • 2 miesiące temu...
Opublikowano

Napiszę tu posta, bo chcę mieć temat w 'Moja zawartość'.

 

Czy podoba się logotyp? Zachęciłby was do sprawdzenia gry/silnika? ;)

tumblr_inline_nt05diSJ3v1r02w2j_500.gif

  • 4 tygodnie później...
Opublikowano

Kilka miesięcy temu spowolniłem pracę nad silnikiem, ale teraz mam więcej czasu. No więc napisałem na nowo część jego kodu i na poważnie zająłem się serwerem - na ten moment jest całkiem dobrym serwerem chatu. Wkrótce zabieram się za pisanie edytora. W planie mam też, po naprawie kilku błędów, wrzucenie tego na yt. (Ile razy to już pisałem? :s)
 
Jak to teraz wygląda? (Ofc. jest to uproszczenie)
Nie, nie ma w tym grafie żadnej zasady. Coś w stylu "co robi co". Ma być tylko czytelny.


TPErZWk.jpg
Ktoś dostrzega podobieństwo do czegoś?

 

708121422388637873334.png

Opublikowano

Robię rzeczy, które efektów wizualnych nie dają. Tj. naprawiam wiele rzeczy, piszę serwer, tworzę scenę. Jak pisałem - wkrótce zabieram się za robienie edytora.

708121422388637873334.png

  • 2 tygodnie później...
Opublikowano

Cienie są super a całokształt wygląda bardzo realistycznie więc na pewno projekt wyjdzie ostatecznie świetnie :D

jw19e8.png

  • 4 tygodnie później...
  • 1 rok później...
Opublikowano

No nie powiem. Gratulacje, ale przyda ci się ktoś dobry od grafiki, rzeby nie wygladało to jak metin.

210119.gif

Opublikowano

No nie powiem. Gratulacje, ale przyda ci się ktoś dobry od grafiki, rzeby nie wygladało to jak metin.

rzeby.. Czekaj, co ku*wa? 

 

Silnik jest genialny i autor nie potrzebuje do niego grafika ponieważ powiedział że to jest ,, projekt '' którego raczej nie będzie sprzedawał lecz trafi do ,, szufladki '', a modele można znaleźć na necie za darmo ;) [Wiem że słabej jakości ale zawsze coś]

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...