tBane Temat założony przez niniejszego użytkownika |
[c++] Simple Engine 3D » 2023-11-18 16:12:05 Witam. Próbowałem stworzyć silnik 3D, lecz po wielu miesiącach zaciętej walki i prób zrozumienia poległem. Próbowałem wielu metod, z pół internetu skopiowałem, nie raz liczyłem na kartach matę i nic. Posiadam model, który składa się z trójkątów. Potrzebuje narysować model w taki sposób, by był trójwymiarowy oraz do tego chciałbym móc go obracać wokół osi Y. Wiem już, że należy wykonać następujące działania w tej właśnie kolejności : rotować trójkąty, posortować trójkąty, wyświetlić trójkąty. Nie mam pojęcia jak rotować oraz jak sortować trójkąty. class trit { public: float v1x, v1y, v1z, v2x, v2y, v2z, v3x, v3y, v3z; float r, g, b, a; trit * next; trit( float, float, float, float, float, float, float, float, float, float, float, float, float ); trit( trit * ); ~trit(); void render2D(); };
class model3D { public: float cx, cy, cz; trit * mesh; model3D(); ~model3D(); void setCenter( float, float, float ); void addTrit( trit * ); void render3D(); };
|
|
pekfos |
» 2023-11-18 18:20:34 https://en.wikipedia.org/wiki/Rotation_matrix#In_three_dimensionsNie mam pojęcia jak sortować trójkąty. Sortowanie nie jest wystarczające by renderować 3d rysując trójkąty w 2d, jeśli taki miałeś pomysł. Musiałbyś sortować po współrzędnej Z po transformacji widoku i perspektywy, tylko trójkąt ma 3 takie współrzędne i zależnie od wyboru możesz mieć zupełnie różne kolejności. |
|
tBane Temat założony przez niniejszego użytkownika |
» 2023-11-18 18:45:50 W takim razie jak sortować takie trójkąty, chodzi mi o zwykle proste nie przenikające się trójkąty ? |
|
pekfos |
» 2023-11-18 20:28:47 std::sort(). Trójkąty nie muszą się przenikać żeby ta metoda dała błędny wynik. |
|
tBane Temat założony przez niniejszego użytkownika |
» 2023-11-19 15:08:50 Sprytnie :D Znalazłem coś takiego jak Z-Buffer. Teraz mogę ominąć macierze, zamknąć ten temat i powrócić do mojego silnika bez macierzy!
temat do usunięcia |
|
« 1 » |