Skocz do zawartości

Featured Replies

Napisano

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 ;)

  • Odpowiedzi 5
  • Wyświetleń 2,3k
  • Created
  • Ostatniej odpowiedzi

Top Posters In This Topic

Napisano

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
  • Autor

Dzięki za odpowiedź :)

 

Znajdzie się ktoś jeszcze kto doda coś do tematu ? ;)

Napisano

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

Powiadomienie o plikach cookie

Wykorzystujemy cookies. Przeczytaj więcej Polityka prywatności