Próbuję zaimplementować schemat przechodzenia oktree za pomocą OpenGL i GLSL i chciałbym zachować dane w teksturach. Chociaż istnieje duży wybór formatów danych tekstur (zmiennoprzecinkowych i liczb całkowitych o różnych rozmiarach), mam pewne problemy z ustaleniem, czy istnieje sposób na bardziej precyzyjną kontrolę nad bitami, a tym samym na osiągnięcie większej wydajności i kompaktowego przechowywania. Może to być ogólny problem, nie tylko w przypadku OpenGL i GLSL.Precyzyjna kontrola bitów tekstur w GLSL
Jako prosty przykład zabawki, załóżmy, że mam texel zawierający 16-bitową liczbę całkowitą. Chcę zakodować dwa bajty 1-bitowe, jedną 10-bitową liczbę całkowitą, a następnie 4-bitową wartość całkowitą w tym texelu. Czy istnieje technika do kodowania tego podczas tworzenia tekstury, a następnie dekodowania tych komponentów podczas próbkowania tekstury przy użyciu modułu cieniującego GLSL?
Edytuj: Wygląda na to, że w rzeczywistości szukam technik manipulacji bitem. Ponieważ wydają się być wspierani, powinienem czuć się dobrze po dalszych badaniach.
Pytasz, jak manipulować bitem? –
Manipulacja bitami jest możliwa w GLSL 1.3 (OpenGL 3.0), nie wiem jak odczytać surowe int z tekstury w GLSL jednak ... Texture2D zwraca float vec4 –
@NicolBolas: Po dalszych poszukiwaniach wygląda to tak Jestem. Nie zrobiłem tego zbyt często, więc nie byłem pewien. Jeśli GLSL go wesprze, powinienem być w stanie dowiedzieć się, gdzie zacząć się uczyć! –