kamilu Napisano 5 Maj 2017 Napisano 5 Maj 2017 Witam, potrzebuję opracować pewne zagadnienia związane z grafiką 3D i natrafiłem na problem. 1. Mam opisać 3 podstawowe rodzaje cieniowania i tu problem polega na tym że znalazłem dwa typy: 1a) W jednych źródłach znalazłem takie trzy: - cieniowanie wierzchołkowe (vertex shader) - cieniowanie geometryczne (geometry shader) - cieniowanie pikseli (pixel shader) 1b) A w innych źródłach znalazłem takie: -cieniowanie płaskie -cieniowanie Gouraud'a -cieniowanie Phonga I nie wiem które powinienem wybrać.... :P 2. Mam scharakteryzować renderowanie programowe i sprzętowe. Tutaj problem polega na tym, że też znalazłem dwa typy i nie wiem, który jest prawidłowy. 2a) Jedne źródła mówią o tym że programowe = CPU, a sprzętowe = GPU. 2b) Inne źródła mówią, że programowe = obojętnie czy to CPU czy GPU, a sprzętowe = wyświetlanie obiektów z pomocą API karty graficznej (czyli użycie openGL, DirectX) czyli wyświetlanie obiektów w czasie rzeczywistym. I tu też nie wiem gdzie leży prawda. Jeśli jest tu jakiś specjalista to prosił bym uprzejmi o pomoc ;)
keajra Napisano 5 Maj 2017 Napisano 5 Maj 2017 Moze jakis prawdziwy specjalista Ci odpowie, ale z moja powierzchowna wiedza moge tez sprobowac odpowiedziec: 1. Zalezy od perspektywy jak spojrzysz na cieniowanie. Twoje a) to odstrony rodzaju shadera, a twoje b) od strony algorytmu/wlasciwego kodu w dowolnym shaderze. 2. Na moj prosty rozum, sprzetowe renderowanie to takie ktore wrzuca dana do jakiegos hardweru (przewaznie karta graficzna) pozwala jej zrobic wszelkie sprzetowo wspomagane oblicznia, a potem otrzymujsz wynik w postaci przewaznie przeliczonych pozycji verexow czy skompilownych shaderow dla kazdego piksela (na przyklad). Programowe natomiast to takie ktore nie uzywa zadnego hardweru o domenie wspomagajacej renderowanie - wiec posluguje sie jednynie CPU i na nim przelicza pozycje wszystkich wierzcholkow/kompiluje shadery itd itp. Take wiec moze sie zdazyc ze OpenGL czy DirectX nie znajdujac karty graficznej przerzuca wszystkie obliczenia na CPU - wiec twoje 2b) calkowicie nie rozumiem.
kamilu Napisano 5 Maj 2017 Autor Napisano 5 Maj 2017 Dzięki za odpowiedź :) Znajdzie się ktoś jeszcze kto doda coś do tematu ? ;)
Monio Napisano 8 Maj 2017 Napisano 8 Maj 2017 Vertex i Pixel shadery to nie rodzaje cieniowania tylko etapy Rendering pipelineu. Tak więc na pewno chodzi o Phonga, Blinna, Gouraud itp. https://en.wikipedia.org/wiki/Graphics_pipeline W drugim pytaniu 2a to laicko uproszczona wersja odpowiedzi 2b. Poznając temat powinieneś iść w stronę 2b. Tematy do googlania : Fixed function pipeline, Programable pipeline, compute shader, GPGPU
Rekomendowane odpowiedzi
Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto
Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.
Zarejestruj nowe konto
Załóż nowe konto. To bardzo proste!
Zarejestruj sięZaloguj się
Posiadasz już konto? Zaloguj się poniżej.
Zaloguj się