Giter Club home page Giter Club logo

swengine's People

Contributors

lukaszpochrzest avatar nieznanysprawiciel avatar

Watchers

 avatar  avatar  avatar

swengine's Issues

Warning 4005 z DirectXa został usunięty

Warningi były efektem tego, że używamy DirectX June SDK, które Microsoft uważa za depracated. Najnowsze nagłówki znajdują się w Windows SDK. Być może kiedyś będzie trzeba przejść na nowszą wersję, ale na razie nie jestem pewien jakie to ma konsekwencję, bo trzeba szukać zastępstwa dla biblioteki d3dx11.

Poprawiony bug z niepoprawnym renderowaniem krawędzi

Wielkość render targetu była taka sama jak rozdzielczość okna. Przez to obraz przed trafieniem do okna był skalowany i to powodowało artefakty.
Przed stworzeniem okna jego wymiary trzeba przeliczyć, żeby dodać tam obramowanie i belkę tytułową.

Poprawiona struktura katalogowa w EngineCore

Struktura katalogowa w EngineCore odpowiada strukturze filtrów w projekcie VisualStudio.
Niektóre pliki zmieniły miejsce pobytu, żeby lepiej dopasować do nowego podziału na moduły.

Wydzielenie kodu do obsługi natywnego GUI

  • To jest powiązane z podziałem na biblioteki - wystarczy zlinkować się z swGUI
  • Trzeba poprawić kod, żeby za obsługę okienka i pętli głównej odpowiadało tylko swGUI
  • Wymyśleć jakieś rozwiązanie, które pozawalało by z Edytora wywoływać tylko poszczególne fazy pętli głównej (swGUI implementuje pętlę i z niej nie wychodzi w ogóle)

Podział na biblioteki

  • Wydzielenie bibliotek do GUI, inputu, renderowania i COmmonLib
  • Dodanie bibliotek jako subtree

Dodana możliwość badania wydajności

Dodana klasa PerformanceCheck. Jeżeli chcesz zbadać wydajność jakiejś części swojego kodu sprawdź opis klasy bądź dokumentację.
Funkcje do badania wydajności zostały także dodane do pętli renderingu.

Nowa struktura renderowania

  • stworzenie klas odpowiedzialnych za różne przebiegi renderowania (deferred shading, shadow mapping, postprocessing itp)
  • funkcje renderujące dla poszczególnych passów
  • nowy interfejs renderera - kolejka podstawowych komend
  • dodatkowe komendy do sterowania np. compute shaderami (opcjonalne)

DX11_interface_container - nowa wersja

Nowa wersja zawiera lepszy interfejs do inicjowania obiektów directXa i ustawiania parametrów.
W tej chwili do inicjacji wystarczy jedna funkcja, jeżeli parametry domyślne są wystarczające. W innych przypadkach ustawienie potrzebnych parametrów jest bardzo łatwe.

Implement OpenGL api library

Redesign a little bit graphic api initialization interfaces. OpenGL needs different window initialization code for different platforms.

Niebezpośrednie kasowanie obiektów

Obiekty ModelsManager i ResourceContainer używają klasy pomocniczej do usuwania obiektów, którymi zarządzają. Dzięki temu zmniejszona została ilość przyjaźni miedzy klasami, a uprawnienia do usuwania assetów mają tylko wybrane klasy.

Dostosowanie mechanizmów do obsługi wielowątkowości

  • Nowy system dodawanie i usuwania aktorów
  • Tworzenie wątków i ich numerowanie, pobieranie informacji, w którym wątku w danej chwili jesteśmy
  • Dodanie mutexów i innych mechanizmów synchronizacji tam gdzie to potrzebne
  • Wydzielenie funkcjonalności silnika, które mają być wykonywane tylko w jednym wątku jednocześnie

Dodane interfejsy XGUI

Dodano następujące interfejsy:

  • Control
  • Renderer
  • AbstractText
  • AbstractTexturedRegion
  • AbstractTextInput
  • AbstractButton
  • AbstractMenu
  • AbstractItem

Rozszerzenie możliwość resource'ów

  • aktualizowanie zawartości
  • stworzenie deskryptorów przechowywanych w w zasobach na stałe
  • podział na zasoby niskopoziomowe (tekstury, bufory) i wysokopoziomowe (meshe, animacje, materiały)
  • informacje debugowe (opcjonalnie)

Wydzielenie renderera do osobnej biblioteki

Renderer jest obecnie linkowany statycznie. Nowe API graficzne można dodać tworząc projekt w katalogu GraphicAPI.

  • Wszystkie obiekty zasobów są obsługiwane przez interfejsy w pliku GraphicAPI/MeshResources.h.
  • Zasoby są tworzone przez ResourcesFactory.
  • Klasa głowna silnika inicjuje API graficzne przez interfejs IGprahicAPIInitializer.
  • Strutkura katalogowa została poprawiona. Kod oddzielony od plików projektu.
  • Projekt ma wydzielone pliki .props do obsługi ustawień.

Prototype of DLL interface

  • DLLs can be changed in runtime
  • Editor can load and create objects defined in DLLs
  • Game logic creation in DLLs
  • Signals/Events mechanisms working with DLLs

Obsługa resourców w edytorze

  • Edytowanie zawartości Model3DFromFile przez edytor
  • Podmienianie textur
  • Stworzenie własnego formatu plików do przechowywania

Ulepszona interpolacja i opóźniony rendering

Static_object przechowuje pozycję i orientację w dwóch egzemplarzach. Rezultaty przeliczania klatek są
generowane na zmienę do tych zmiennych. DisplayEngine interpoluje zawsze wartości między tymi klatkami (czyli renderowanie jest mniej więcej 1 klatkę do tyłu względem przeliczania pozycji)

Poprawione ustawienia projektu

W wersji 64-bitowej były linkowane biblioteki DirectX 9. Ponadto zamieniłem kilka definów na stałe i zrobiłem jeszcze trochę małych zmian.

Ulepszona obsługa kamer

Przypisywanie kamer do przebiegów, rozszerzone informacje w obiektach kamer (macierz projekcji, near, far, width, height, angle)

Tylko FIXED_MOVE_UPDATE_INTERVAL

Nie ma już możliwości ustawienia zmiennego czasu trwania jednej ramki animacji (chodzi o przeliczanie fizyki i zachowania obiektów). Została zlikwidowana odpowiednia makrodefinicja i możliwość kompilacji warunkowej.

Managing engine versions

  • Posibility to create project for specific engine version
  • Rethink editor and engine dll design. It should be posible to add new features to editor and engine without breaking compatibility with older versions and without need to have multiple version of editor for each game project.

Obsługa myszki

Dodanie obsługi myszki do controlera i poziomu abstrakcji

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.