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

[Art/Tut]Fundamenty Grafiki 3D Directx, Wprowadzenie.


Rekomendowane odpowiedzi

Opublikowano

Małe faq.

 

-Co muszę umieć by przystąpić do lekcji?

-Język c++, trygonometrię.

 

-Kto jest autorem tego tekstu?

-Ja.

 

-Będziemy używać OpenGL czy DirectX?

-DirectX

 

Gry, które używają grafiki 3D zazwyczaj maja kilka modułów kodu źródłowego do "uniesienia" takich zadań jak:

 


  1.  
  2. dane wprowadzone przez użytkownika
  3. zarządzanie zasobami
  4. wczytywaniem i renderowaniem grafiki
  5. Interpretowaniem i uruchamianiem skryptów

 

Te moduły kodów źródłowych wraz z innymi, wspólnie formują to co jest zwane silnikiem gry. Jednym z kluczowych modułów każdego silnika gry jest silnik renderowania, to właśnie na nim skupimy się w dalszych lekcjach(jak mi się będzie chciało). Zadaniem silnika renderowania jest wziąć na siebie reprezentację trójwymiarowego wirtualnego świata i przekształcenie go w dwuwymiarowy obraz na ekranie.

 

Niefortunnie, początkujący deweloperzy gier mają tendencję do przejścia od razu do 3D API bez żadnej podstawowej wiedzy o tym co tak naprawdę robi to API. Nic zaskakującego, że to często prowadzi do niespodziewanych rezultatów i męczącego debuggingu. Programowanie grafiki 3D obejmuje dużo matematyki. Bez dobrej wiedzy matematyki nigdy nie będziesz w stanie w pełni zdobyć umiejętności do odkrycia pełnego potencjału popularnych API.

 

To jest znaczącą przeszkodą dla uczniów, którzy dopiero co zaczęli naukę programowania 3D. Więc przestudiujemy trochę podstawowych koncepcji programowania 3D jak również kluczową matematykę by pomóc stworzyć fundamenty dla późniejszych lekcji(jak mi się będzie chciało ;)). Zbudujemy prymitywną aplikację renderującą byście mogli zobaczyć podstawową matematykę grafiki 3D.

 

Wy, którzy już to umiecie możecie nie czytać dalej i czekać na dalszy ciąg bardziej zaawansowanych rzeczy( czekać albo się nie doczekać).

 

 

 

Sześcian jest skonstruowany z sześciu odrębnych poligonów. Ma górną ścianę, dolną, lewą, prawą, przednią i tylną. Przednia oczywiście jest determinowana przez punkt z którego patrzymy na nasz sześcian. Ponieważ mesh jest trójwymiarowy, możemy widzieć maksymalnie 3 ściany jednocześnie.

 

 

Trójwymiarowy układ współrzędnych jest wzbogacony o oś głębi( reprezentowaną przez oś Z), dodaną do układu 2D i wszystkie osie są prostopadłe do każdej innej. By stworzyć obiekt w układzie 3D musimy użyć punktów nie tylko na osiach X i Y ale także na osi Z.

 

Są dwie wersje trójwymiarowego układu Kartezjańskiego, leworęczna i praworęczna. Różnicą pomiędzy nimi jest kierunek osi Z. W układzie leworęcznym, oś Z zwiększa się gdy patrzymy wgłąb sceny natomiast maleje z tyłu. Praworęczny system odwraca oś Z . Niektóre API 3D takie jak OpenGl używają praworęcznego systemu. DirectX używa leworęcznego systemu.

 

System współrzędnych ma nieograniczoną ziarnistość, jest ograniczony tylko przez rodzaj zmiennej użytej do reprezentowania współrzędnych w kodzie źródłowym. W większości silników renderowania są używana zmienne typu float do składowania lokacji punktów w trójwymiarowej przestrzeni. Typową strukturą do trzymania pozycji 3D wygląda tak:

 

struct 3DPunkt
{
        float x;
        float y;
        float z;
};

 

Koniec.

 

Jeżeli są jakieś błędy to sorry ale pisałem to o 3 w nocy a dzisiaj dokończyłem.

 

Jestem autorem tego tekstu, chcesz go umieścić na swojej stronie? Napisz do mnie to się dogadamy.

RAsfepN.png
Opublikowano

to wszystko ?

 

 

To po chuj

 

 

 

dałeś jedna strukturę...

 

 

Zmiennie ten post jak dasz coś więcej

 

Pan głupi czy czytać nie umie? A zresztą, na to samo wychodzi.

Wiem, że dałem jedną strukturę. Pzdro dla twoich nauczycieli z przedszkola, widzę, że nauczyli cię liczyć.

Napisałem, że to jest tylko wstęp.

RAsfepN.png
Opublikowano

ale ty jesteś głupi i nie umiesz czytać... sam udowadniasz to

 

Zmiennie ten post jak dasz coś więcej

 

Osz ty dałeś mi "-" totalnie mnie zgasiłeś niem

Opublikowano

To wszystko jest niepotrzebne, jeśli ktoś umie c++ to na pewno zna to wszystko.

To są podstawy grafiki trójwymiarowej.

@down

Mowię sam za siebie. Przynajmniej dla mnie to jest łatwe i to umiem.

iphone-ma_eqxxwq.png

iphone.jpg

Uwielbiam Justina Biebera, oglądam Telewizję Trwam, żebrzę o plusy i mam parcie na moda.

Opublikowano

Jeżeli jest to dla ciebie nie potrzebne to nie udzielaj się, nie pisz, nie komentuj, nie czytaj.

 

To wszystko jest niepotrzebne

12 lat?

To wszystko jest niepotrzebne, jeśli ktoś umie c++ to napewno zna to wszystko.

Nie no, max 10, zgadłem?

To są podstawy grafiki trójwymiarowej.

No shit Sherlock

RAsfepN.png
  • 6 miesięcy temu...

Zarchiwizowany

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

×
×
  • Dodaj nową pozycję...