Rozumiem, że glVertexAttribPointer
ustawi wartości dla atrybutu wierzchołka na podstawie wskazanej tablicy. Ale co to jest glVertexAttrib
? Wygląda na to, że po prostu ustawia pojedynczą (prawdopodobnie wektorową) wartość dla atrybutu wierzchołka, a więc co się dzieje, gdy masz wiele wierzchołków? Czy wszystkie wierzchołki kończą się, widząc tę samą wartość atrybutu?Do czego służy glVertexAttrib (versus glVertexAttribPointer)?
Odpowiedz
To było głównie używane ze starym trybem bezpośrednim (glBegin/glEnd
), w którym nie używasz tablic wierzchołków, który jest przestarzały (i usunięty w OpenGL ES 2.0 i rdzeniu OpenGL 3+ pulpitu).
Ale ta funkcja nadal ma zastosowanie w tablicach (dlatego wciąż jest dostępna we współczesnych wersjach). Masz rację, zakładając, że wszystkie wierzchołki następujące po tym wywołaniu mają tę samą wartość dla tego atrybutu (tylko, jeśli nie włączasz oczywiście tablicy tego atrybutu). Lub dokładniej, każdy używany atrybut modułu cieniującego, który nie ma odpowiadającej mu tablicy, pobiera jego wartość z pojedynczej wartości stanu i ta wartość może zostać zmieniona za pomocą glVertexAttrib
.
Jest to przydatne, jeśli masz ogólny moduł cieniujący zawierający np. atrybut koloru i atrybut pozycji i masz obiekt o stałym kolorze. Tak więc za pomocą glVertexAttrib
nie musisz przesyłać koloru dla każdego wierzchołka, ani nie musisz używać specjalnego modułu cieniującego z kolorem zmienionym na jednolity.
- 1. Do czego służy .data.rel.ro?
- 2. Do czego służy os.linesep?
- 3. Do czego służy MemoryCache.AddOrGetExisting?
- 4. Do czego służy global.asax?
- 5. Do czego służy phonestateintentreceiver.notifyPhoneCallState?
- 6. Do czego służy GCC_NO_COMMON_BLOCKS?
- 7. Do czego służy #pragma?
- 8. do czego służy SDKDDKVer.h?
- 9. Do czego służy UnmanagedMemoryStream?
- 10. Do czego służy Control.IsHandleCreated?
- 11. Do czego służy Enum?
- 12. Do czego służy DTMobileIS?
- 13. do czego służy java.lang.reflect.Method.isBridge()?
- 14. Do czego służy app.config?
- 15. Do czego służy dokument.implementation.createHTMLDocument?
- 16. do czego służy self =>?
- 17. Do czego służy funkcja Adapter.getItem()?
- 18. Do czego służy właściwość FormsAuthenticationTicket.Version?
- 19. Do czego służy stos kernela?
- 20. Do czego służy kod JavaScript?
- 21. Do czego służy element iframe?
- 22. Do czego służy właściwość TForm.TipMode?
- 23. Do czego służy nazwa enum?
- 24. Do czego służy adresowanie WS?
- 25. Do czego służy import java.util.UUID?
- 26. Do czego służy cordova/argscheck?
- 27. Do czego służy Python string.find?
- 28. Java - do czego służy "@Override"?
- 29. Do czego służy plik _references.js?
- 30. Do czego służy makro HAVE_PSI_INTERFACE?
Użycie jednego koloru jest dobrym przykładem. Dzięki! –
Niesamowita odpowiedź :-) Zawsze zadawałem sobie pytanie, dlaczego zamiast jednolitego użyto stałego atrybutu; ale twój przykład ma dla mnie sens. – Mecki