Chciałbym zająć się tworzeniem silników 3d w asemblerze - moje pytanie są do tego jakieś fachowe pozycje książkowe? Szukam w internecie, ale nic nie znajduję...
Nie ma i na pewno nikt nie napisze. Przyczyna jest prosta, od kilkunastu lat nie stosuje się nawet wstawek w assemblerze, ostatnie normalne pure-asm silniki powstały w czasach DOSa, kiedy procesory były ubogie a kompilatory tragiczne. Obecnie główny ciężar obliczeń spoczywa na GPU, z CPU jeżeli już wykorzystuje się bardziej zaawansowane technologie to zwala się ich użycie na kompilator. Najnowsze rozwiązania, jak AVX, są zbyt skomplikowane dla człowieka, ogarnięcie bardziej skomplikowanego algorytmu jest niesamowicie trudne. Obecne kompilatory C/C++ są już dojrzałe i pracują na mocnych maszynach, mogąc bardzo skomplikowane optymalizacje przeprowadzać, poparte profilowaniem. Możliwe "zyski" z assemblera sprowadzają się do kilkunastokrotnego wydłużenia czasu tworzenia i testowania silnika, możliwości pochwalenia się przed kumplami i kupienia nowego HDD, bo na starym brakło miejsca na kolejną rewizję w repo.
Poza tym obecnie enginy 3D opierają się na wykorzystaniu DirectX/OpenGL.Więc co najwyżej pod asemblerem robiłbyś wywołania odpowiednich funkcji bibliotecznych,co mija się z celem.
Jedyna działka gdzie TEORETYCZNIE mógłbyć asemblera użyć to napisanie własnego sterownika do karty graficznej.
Znacie jakieś dobre pozycje książkowe albo coś gdzie można nauczyć się tworzenia engine 3d?
MSM ma rację, ale mimo tego potrzebuję podstaw do nauki (literatura, tutoriale...) beż tego nie napisze silnika.
Gógluj.Poza tym naucz się dobrze używania DirectX/OpenGL,bo z tego będziesz korzystał.
Mam książkę do OpenGL i zaczęłem ją czytać. Tylko nie bardzo wiem jak zacząć w ogóle pisanie silników 3d, googluje ale nic nie znajduję co by mi pomogło znaleźć jakąś dobre info. Nie wierze, że nie ma żadnych podręczników które wprowadzją tego tych zagadnień dla początkujących którzy nie mieli z tym styczności.
ass napisał(a)
Nie wierze, że nie ma żadnych podręczników które wprowadzją tego tych zagadnień dla początkujących którzy nie mieli z tym styczności.
A ja wierzę. Początkujący nie piszą silników 3D.
Obecnie kompilatory niestety nie radzą sobie w 100 % z wykorzystywaniem najnowszych rozszerzeń typu SSEx, AVX, itp Owszem, czasem zysk jest z tego, ale daleki od tego co można by uzyskać ręcznie. Odchodzi się jednak od pisania w czystym asemblerze, na rzecz wykorzystywania: http://en.wikipedia.org/wiki/Intrinsic_function
Zarejestruj się i dołącz do największej społeczności programistów w Polsce.
Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.