• Artykuły
  • Forum
  • Ciekawostki
  • Encyklopedia
  • Silnik graficzny

    Przeczytaj także...
    Teksturowanie - technika stosowana w grafice trójwymiarowej, której celem jest przedstawienie szczegółów powierzchni obiektów przestrzennych za pomocą obrazów bitmapowych (tekstur) lub funkcji matematycznych (tekstur proceduralnych). Mapowanie tekstury określa w jaki sposób powiązać piksele (nazywane w tym kontekście tekselami) lub wartości funkcji z powierzchnią obiektu. Tekstury niosą informacje o barwie powierzchni, jak również innych parametrach generowanego obrazu, związanych np. z modelem oświetlenia: barwa światła odbitego, rozproszonego, stopień przezroczystości, współczynnik załamania światła itp.Renderowanie (od ang. rendering) – przedstawienie informacji zawartych w dokumencie elektronicznym w formie najbardziej właściwej dla danego środowiska (np. wizualnie, w tym na ekranie i w druku, czy dźwiękowo). Mechanizm odpowiedzialny w programie komputerowym za renderowanie nazywa się mechanizmem renderującym (ang. rendering engine, czasem silnik renderujący) lub rendererem (z ang.).
    Wizualizacja – ogólna nazwa graficznych metod tworzenia, analizy i przekazywania informacji. Za pomocą środków wizualnych ludzie wymieniają się zarówno ideami abstrakcyjnymi jak i komunikatami mającymi bezpośrednie oparcie w rzeczywistości. W dzisiejszych czasach wizualizacja wpływa na sposób prowadzenia badań naukowych, jest rutynowo wykorzystywana w dyscyplinach technicznych i medycynie, służy celom dydaktycznym, a także bywa pojmowana jako środek wyrazu artystycznego.

    Silnik graficzny – część kodu aplikacji odpowiedzialna za tworzenie grafiki 2D, 2,5D lub 3D, która następnie widoczna będzie na urządzeniu wyświetlającym obraz. Zawiera on elementy konieczne do wykonywania złożonych matematycznych obliczeń i przekształceń elementów grafiki.

    Antyaliasing (ang. anti-aliasing) – zespół technik w informatyce służących zmniejszeniu liczby błędów zniekształceniowych aliasing lub schodkowania obrazu, powstających przy reprezentacji obrazu lub sygnału o wysokiej rozdzielczości w rozdzielczości mniejszej.Rasteryzacja – w grafice komputerowej działanie polegające na jak najwierniejszym przedstawieniu płaskiej figury geometrycznej na urządzeniu rastrowym, dysponującym skończoną rozdzielczością.

    Silnik graficzny zajmuje się renderowaniem programowym bądź sprzętowym obrazu w czasie rzeczywistym na typowym ekranie komputera. W przypadku grafiki trójwymiarowej oznacza to, że każda klatka obrazu musi zostać wygenerowana na tyle szybko, aby możliwe było swobodne „poruszanie się” po trójwymiarowym świecie wirtualnym. Silniki graficzne do generowania obrazu trójwymiarowego są czasami nazywane silnikami 3D. Do przyśpieszenia i wykonywania bardziej złożonych obliczeń mogą wykorzystywać wsparcie sprzętowe specjalizowanych procesorów graficznych oraz obsługujących je bibliotek graficznych, takich jak DirectX, OpenGL czy Vulkan.

    Siatka to w grafice 3D i CAD dwa lub więcej wielokątów połączonych ze sobą krawędziami. Zwykle siatki tworzone są z trójkątów lub czworokątów wypukłych.PC Format – miesięcznik komputerowy wydawany od sierpnia 2000 roku przez wydawnictwo Bauer. Skupia się na testach produktów oraz na poradach na temat korzystania z komputera. Jest czasopismem popularnym, skierowanym do wszystkich osób używających komputera do pracy i rozrywki. Pod względem treści i sposobu prezentacji, w największym stopniu przypomina miesięcznik Komputer Świat i głównie z tym pismem PC Format konkuruje.

    Przykładami silników graficznych są: Genesis3D, Irrlicht, OGRE, Antiryad Gx, Crystal Space. Choć zwykłemu użytkownikowi komputera kojarzą się one przede wszystkim z grami komputerowymi, to są projektowane do wielu innych celów, np. wizualizacji projektowanych budynków lub wnętrz. Nie powinny być utożsamiane z silnikami gier.

    Procesor graficzny, inaczej GPU (ang. Graphics Processing Unit) – jest główną jednostką obliczeniową znajdującą się w nowych kartach graficznych.Irrlicht – silnik graficzny rozpowszechniany na licencji open source. Obsługuje wiele systemów operacyjnych. Obecnie można korzystać z niego na Microsoft Windows, Mac OS X i Linux, a nieoficjalnie są również dostępne porty na platformy: Xbox, PlayStation Portable i SymbianOS. Irrlicht jest znany ze swojej szybkości, możliwości silnika 3D oraz prostoty w nauce.

    Działanie[ | edytuj kod]

    Na samym początku tworzenia obrazu, procesor przesyła do VRAM podstawowe informacje o danej scenie. Na niego składają się wszystkie tekstury, współrzędne wierzchołków elementów sceny, położenie względem siebie, umiejscowienie obserwatora oraz oświetlenie całej sceny.

    Usuwanie niewidocznych powierzchni to w komputerowej grafice 3D jeden z pierwszych etapów poprzedzających wyświetlanie obrazów, w którym określa się, które z obiektów umieszczonych na scenie są w danym rzucie widoczne (w całości lub tylko częściowo).VRAM – jest to dwu-portowa odmiana pamięci DRAM, kiedyś używana do przechowywania danych ramki obrazu w niektórych kartach graficznych.

    Tworzenie siatek wielokątów[ | edytuj kod]

     Osobny artykuł: Siatka (grafika 3D).

    Kolejny krok to operacje związane ze współrzędnymi wierzchołków. Karta graficzna buduje krawędzie trójkątów, z których z kolei powstają siatki wielokątów – definiując powierzchnię wirtualnych obiektów. Procesor graficzny ustawia na wirtualnej scenie kamerę, czyli punkt, z którego wirtualny świat będzie obserwowany. Siatki wielokątów oraz otoczenia są umieszczane na scenie w odpowiednich pozycjach względem kamery lub obserwatora. Ponieważ kamera i obserwator to elementy nieruchome, siatki wielokątów zaczynają się poruszać, obracać i przekształcać względem nieruchomego obserwatora (kamery), by uzyskać wrażenie, że to on się porusza i obraca. Operacje te są na bieżąco synchronizowane z pozycją podglądu.

    DirectX – zestaw funkcji API wspomagających generowanie grafiki (dwu- i trójwymiarowej), dźwięku oraz innych zadań związanych zwykle z grami i innymi aplikacjami multimedialnymi.Crystal Space – biblioteka programistyczna wykorzystywana do tworzenia aplikacji z grafiką trójwymiarową, napisana w języku C++ i rozpowszechniana na licencji GNU Lesser General Public License. Zaprojektowano ją przede wszystkim z myślą o tworzeniu gier komputerowych, dla których może pełnić rolę silnika, ale umożliwia także tworzenie innego rodzaju programów komputerowych.

    Usuwanie niewidocznych powierzchni[ | edytuj kod]

    W całej scenie trójwymiarowej może pojawić się ogromna liczba wierzchołków, dlatego by zminimalizować obciążenie karty graficznej i procesora, stosuje się optymalizacje w postaci usuwania siatek powierzchni niewidocznych dla obserwatora. Wycinane są przede wszystkim obiekty znajdujące się za jego plecami, wszystkie poza kadrem obserwatora oraz elementy znajdujące się z tyłu obserwowanych obiektów. Procesor w obliczeniach nie uwzględnia także tych ścianek obiektów, które są zasłonięte przez inne przedmioty na scenie, chyba że są zdefiniowane jako przezroczyste.

    Grafika 2D - grafika dwuwymiarowa. Termin ten może się odnosić zarówno do działu informatyki zajmującego się grafiką dwuwymiarową i technikami dotyczącymi jej obróbki, jak i do samych obrazów cyfrowych mogących składać się z tekstu, grafiki oraz obiektów 2D.Grafika 2,5D (grafika dwuipółwymiarowa), również pseudo-3D – określenie systemów generujących grafikę, które próbują wywołać złudzenie trójwymiarowości, wykorzystując zasady rzutu izometrycznego (lub innej aksonometrii) i operując dwuwymiarowymi zestawami tzw. duszków.

    Teselacja[ | edytuj kod]

     Osobny artykuł: Teselacja.

    Następny proces to teselacja, wykorzystująca obsługiwane przez biblioteki graficzne shadery, gdzie zachodzi cieniowanie wierzchołków i pikseli. Tworzone są w tym celu krzywe beziera, które trafiają do teselatora tworząc nową powierzchnię obiektu, a następnie dzieli on tę powierzchnię na siatkę geometryczną składającą się z odpowiednio większej liczby trójkątów (krzywe beziera zmieniają istniejące siatki wielokątów w nowe siatki).

    Definicja intuicyjna: Kod źródłowy to zapis programu komputerowego w formie czytelnej dla człowieka umożliwiający jego modyfikację i rozwój.OGRE (ang. Object-Oriented Graphics Rendering Engine) – elastyczny silnik grafiki 3D napisany w C++. Został zaprojektowany tak, aby był prosty, wygodny i intuicyjny dla deweloperów tworzących aplikację ze wspomaganiem sprzętowej akceleracji grafiki 3D. Obsługuje zarówno Direct3D jak i OpenGL.

    Rasteryzacja[ | edytuj kod]

     Osobny artykuł: Rasteryzacja.

    Do tego etapu wszystkie ww. procesy operowały na obiektach wypełnionych jednolitym kolorem z uwzględnieniem oświetlenia sceny. Przy użyciu modułu rasteryzacji grafika 3D jest spłaszczana i przygotowywana do wyświetlania w ustalonej przez użytkownika rozdzielczości ekranu. W międzyczasie część jednostek obliczeniowych procesora graficznego zajmuje się dalszą obróbką grafiki: nadaje obiektom różne kolory, połysk, fakturę i inne detale. W późniejszym etapie moduł rasteryzacji zajmie się wygładzaniem krawędzi w spłaszczonych obiektach.

    OpenGL (ang. Open Graphics Library) – specyfikacja uniwersalnego API do generowania grafiki. Zestaw funkcji składa się z 250 podstawowych wywołań, umożliwiających budowanie złożonych trójwymiarowych scen z podstawowych figur geometrycznych.Triangulacja to technika stosowana w grafice komputerowej polegająca na rozbiciu bardziej złożonych obiektów (każdej figury geometrycznej prócz koła) na trójkąty.

    Bibliografia[ | edytuj kod]

  • Krzysztof Roszak: Moc obrazu PC Format 5/2011
  • Linki zewnętrzne[ | edytuj kod]

  • Free Games Programming Libraries and Source Code – zbiorcze informacje o różnych silnikach




  • Warto wiedzieć że... beta

    Czas rzeczywisty – termin często używany w celu wyróżnienia przypadków zgłoszenia, przedstawienia, raportowania oraz reakcji na zdarzenia w tej samej ilości, a czasami również w tym samym czasie, w jakim mają one miejsce. Dzięki temu podmiot nie musi kompresować opisów tych zdarzeń ani opóźniać wysłania raportu lub reakcji. Termin znajduje zastosowanie w różnych dziedzinach i jest dosyć nienormowanym określeniem. Jeśli istnieje sieć działająca z prędkością 1 kbit/s, a zaprojektowany system daje nam wydajność o prędkości większej niż 1 kbit/s, to w związku z tą siecią będzie to system czasu rzeczywistego.
    Procesor (ang. processor), także CPU (ang. Central Processing Unit) – urządzenie cyfrowe sekwencyjne, które pobiera dane z pamięci, interpretuje je i wykonuje jako rozkazy. Wykonuje on ciąg prostych operacji (rozkazów) wybranych ze zbioru operacji podstawowych określonych zazwyczaj przez producenta procesora jako lista rozkazów procesora.
    Rozdzielczość ekranu – jeden z parametrów trybu wyświetlania, parametr określający liczbę pikseli obrazu wyświetlanych na ekranie w bieżącym trybie pracy monitora komputerowego, telewizora a także każdego innego wyświetlacza, którego obraz budowany jest z pikseli. Rozdzielczość wyraża się w postaci liczby pikseli w poziomie i w pionie. Rozdzielczość w poziomie składa się z pionowych linii, natomiast w pionie z poziomych linii.
    Grafika 3D (grafika trójwymiarowa) – nazwa jednej z dziedzin grafiki komputerowej, zajmującej się głównie wizualizacją obiektów trójwymiarowych. Nazwa pochodzi od angielskiego sformułowania Three-Dimensional Graphics.
    Shader – krótki program komputerowy, często napisany w specjalnym języku (shader language), który w grafice trójwymiarowej opisuje właściwości pikseli oraz wierzchołków. Technologia ta zastąpiła stosowaną wcześniej jednostkę T&L.
    Biblioteka (w informatyce) – zbiór klas, funkcji (i ew. innych konstrukcji programistycznych), z których korzystają różne programy.
    Gra komputerowa (gra wideo, ang. video game) – rodzaj oprogramowania komputerowego przeznaczonego do celów rozrywkowych bądź edukacyjnych (rozrywka interaktywna) i wymagającego od użytkownika (gracza) rozwiązywania zadań logicznych lub zręcznościowych. Gry komputerowe mogą być uruchamiane na komputerach osobistych, specjalnych automatach, konsolach do gry, telewizorach, telefonach komórkowych oraz innych mobilnych urządzeniach, nazywanych łącznie platformami sprzętowymi. Zadania stawiane przed graczem w grach komputerowych różnią się w zależności od gatunku i mogą polegać na przykład na rozwiązaniu zadania logicznego, eliminacji wirtualnych przeciwników czy też rywalizacji ze sztuczną inteligencją bądź innymi graczami (gra wieloosobowa); interaktywna rozrywka w celach zawodowych nosi nazwę sportu elektronicznego.

    Reklama

    Czas generowania strony: 0.024 sek.