Multimedia - jak to z nimi jest

0

Chciałem się zapytać o podsunięcie jakiejś pozycji opisującej to o czym piszę poniżej.

Jako crudo klepacz zadałem sobie pytanie:

  • kurde, gram w tego Wiedźmina, ale jak to jest zrobione. Mam wygenerowany jakiś świat, jakieś graficzne przedstawienie. Okej. Ale jak nacisnę strzałkę do przodu to świat się przesunie. I teraz co tam się na prawdę wydarzyło? Wygenerował się nowy widok na podstawie parametrów takich jak obecne położenie postaci? Ciekawi mnie jak to się dzieje na takim popularnonaukowym poziomie, co i jakim cudem tak szybko generuje taki świat i w jednym momencie jest wszystko wyświetlane na monitorze?

  • zastanawiam się skąd dana aplikacja "wie", że ma odtworzyć z danego pliku zdjęcie. Że to nie jest program, jakiś plik wykonywalny, ale właśnie zdjęcie.

  • film, jak to wygląda? Czy film to po prostu pętla

    while (!movie.isLastFrame()) {
      displayNextFrame()
    }
    
  • i ostatnie - skoro wszystko jest zapisane w systemie binarnym, to skąd procesor wie czy dany ciąg to są dane, np. zmienne, a inne to instrukcje sterujące?

Czas się zacząć uświadamiać w tej materii.

Teraz mam taką refleksję, że ludzkość rozwiązała powyższe problemy, a ja w pracy mam poprawić wydajność zapytania SQL, albo zdebugować zbyt duże latency w połączeniu do Redisa xD Albo, że encja ciągnie za dużo niepotrzebnym danych.

1
  1. Nie wiem jak w Wiedźminie, ale grafika 3D tak ogolnie to zwykle po prostu przeliczenia na wektorach i macierzach(i ogolnie na liczbach). I manipulacje buforami. A jest to szybkie, bo karty graficzne są wyspecjalizowane w takich obliczeniach (a to, czego nie umieją szybko policzyć, można zawsze sfejkować - grafika 3D to często oszustwo i tanie tricki)

  2. Po pierwsze rozszerzenie pliku (np. Jpeg). Po drugie pliki binarne zwykle mają swoje nagłówki/magiczne liczby w środku itp. Ze nawet bez rozszerzenia można je rozpoznać. Po trzecie - jak ściągasz plik z netu, to serwer powinien ci ustawić typ MIME w odpowiedzi i wtedy przeglądarka wie, co to jest.

  3. To nie takie proste, bo dochodzi choćby kompresja (a ta niekoniecznie musi być per klatka, bo istnieją sposoby kompresji które do zapisu danej klatki korzystają z informacji z poprzednich klatek…)

0

Myślę że ten filmik oraz blog post nt. reverse engineeringu renderowania w gierkach (tu akurat Cyberpunk), mogą cię zainteresować

https://c0de517e.blogspot.com/2020/12/hallucinations-re-rendering-of.html

screenshot-20220418192104.png

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