Napisano 5 Maj 20177 l 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 ;)
Napisano 5 Maj 20177 l 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.
Napisano 5 Maj 20177 l Autor Dzięki za odpowiedź :) Znajdzie się ktoś jeszcze kto doda coś do tematu ? ;)
Napisano 8 Maj 20177 l 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
Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto