Próbuję opracować zrozumienie potoku grafiki na wysokim poziomie. Jedną z rzeczy, która nie ma dla mnie większego sensu, jest to, dlaczego istnieje moduł cieniujący Geometry. Zarówno shadery Tesselacja, jak i geometria wydają się robić to samo. Czy ktoś może mi wytłumaczyć, co robi moduł cieniujący Geometry inaczej niż shader teselacji, który usprawiedliwia jego istnienie?Różnica między programami cieniującymi tesselacją a modułami cieniowania Geometry
Odpowiedz
Moduł cieniujący Tesselacja służy do zmiennej podziału na części. Ważną częścią jest informacja o sąsiedztwie, dzięki czemu można zrobić wygładzenie prawidłowo i nie likwidować luk. Możesz wykonać ograniczoną dzielność za pomocą shadera geometrii, ale to nie jest to, na co ją stać.
Szczypce do geometrii działają jako prymitywne. Na przykład, jeśli chcesz zrobić coś dla każdego trójkąta (takiego jak this), zrób to w module cieniującym geometrii. Słyszałem o wytłaczaniu objętości cienia. Istnieje również "konserwatywna rasteryzacja", w której można rozszerzyć granice trójkątów, aby każdy przecięty piksel uzyskał fragment. Przykłady są dość specyficzne dla aplikacji.
Tak, mogą również generować więcej geometrii niż dane wejściowe, ale mają też dobrą skalą , a nie. Działają świetnie, jeśli chcesz narysować cząstki i zmienić punkty w bardzo prostą geometrię. Wiele razy zaimplementowałem maszerujące kostki za pomocą shaderów geometrii. Działa wspaniale ze sprzężeniem zwrotnym transformacji, aby zapisać wynikową siatkę.
Informacje zwrotne dotyczące transformacji zostały również użyte w module cieniującym geometrii do wykonywania kolejnych operacji obliczeniowych. Jednym szczególnie użytecznym mechanizmem jest to, że kompresuje strumień dla ciebie (pakuje swoją zmienną moc wyjściową tak, że nie ma żadnych przerw w wynikowej tablicy).
Inną bardzo ważną rzeczą, którą zapewnia moduł cieniujący geometrii, jest kierowanie do warstwowych obiektów renderujących (tablic tekstur, powierzchni sześcianu, wielu rzutni), co musi zostać wykonane jako prymitywne. Na przykład możesz renderować mapy cienia dla świateł punktowych w jednym przejściu, duplikując i rzutując geometrię 6 razy na każdą z powierzchni sześcianu.
Niezupełnie pełna odpowiedź, ale miejmy nadzieję, że zawiera istotę różnic.
Zobacz także:
- 1. Gładka, teksturowana linia z modułami cieniującymi OpenGL ES 2.0
- 2. Różnica między INCLUDE i modułami w Fortranie
- 3. Różnica między modułami i rozszerzeniem w Yii
- 4. Różnica między dataksem datetime a modułem czasu
- 5. Różnica między obiektem a *?
- 6. Różnica między jquery a $
- 7. Udostępnianie pamięci między modułami
- 8. Jaka jest różnica między podejrzanym DOM-a w stosunku do cieniowania Polymer?
- 9. Czy jest jakaś różnica między modułami najwyższego poziomu i modułami lokalnymi?
- 10. Jaka jest różnica między modułami Unittest i unittest2 w Pythonie?
- 11. Jaka jest różnica między modułami Perl autodie i Fatal?
- 12. Różnica między String [] a i String ... a
- 13. Zależności między nagłówkami plików między modułami C++
- 14. Różnica między bip pid a $$
- 15. Różnica między kodowaniem a sortowaniem?
- 16. Różnica między onbeforeunload a onunload
- 17. Różnica między OpenCV a OpenCL
- 18. Różnica między wysokością a tłumaczeniemZ
- 19. Różnica między ApplicationInfo a PackageInfo?
- 20. Różnica między CMAKE_PROJECT_NAME a PROJECT_NAME?
- 21. Różnica między autoconf a autoreconf
- 22. Różnica między transakcją a transakcjąScope
- 23. Różnica między File.Copy a File.Move
- 24. Różnica między _declspec a __declspec?
- 25. Różnica między repozytorium a usługą?
- 26. Różnica między CCNode a CCLayer?
- 27. różnica między * y ++ a ++ * y?
- 28. Różnica między IPFS a Filecoin?
- 29. Różnica między systemem a shell_exec
- 30. Różnica między Redis a kafka
To na pewno pomaga. Jestem też pewna, że kiedy będę coraz częściej zagłębiać się w grafikę, ta odpowiedź będzie coraz bardziej sensowna, więc odniosę się do niej ponownie. Dzięki! –