Pomiędzy wkurz…. Denerwowaniem się na jeden program z Algorytmów i Struktur Danych a wkurz…. Denerwowaniem się na drugi program z Programowania Niskopoziomowego i sprawozdanie z Podstaw Elektroniki, ujawniła się wiadomość, iż grupa Khronos wydała na świat specyfikację nowej wersji API graficznego OpenGL opatrzoną numerkiem 3.1. Jako że programuję (cóż, ostatnio niezbyt) grafikę właśnie z użyciem tegoż mechanizmu, wypadałoby, abym się tym zainteresował.
Samą informację można znaleźć tutaj (gdzie przy okazji wywiązała się kolejna mała wojna DirectX kontra OpenGL – nie mam zdania, które API jest lepsze, ale skoro nawet ja potrafię stworzyć jakieś efekty w OGL-u, to chyba nie świadczy to o nim źle). Podaję również hiperłączę do informacji na stronie Khronosa oraz do specyfikacji. Tutaj pozwolę sobie jednak wkleić wypunktowane zmiany w nowej wersji.
- Texture Buffer Objects - a new texture type that holds a one-dimensional array of texels of a specified format, enabling extremely large arrays to be accessed by a shader, vital for a wide variety of GPU compute applications;
- Signed Normalized Textures – new integer texture formats that represent a value in the range [-1.0,1.0];
- Uniform Buffer Objects - enables rapid swapping of blocks of uniforms for flexible pipeline control, rapid updating of uniform values and sharing of uniform values across program objects;
- More samplers – now at least 16 texture image units must be accessible to vertex shaders in addition to the 16 already guaranteed to be accessible to fragment shaders;
- Primitive Restart – to easily restart an executing primitive, useful for efficiently drawing a mesh with many triangle strips, for example;
- Instancing - the ability to draw objects multiple times by re-using vertex data to reduce duplicated data and number of API calls;
- CopyBuffer API – accelerated copies from one buffer object to another, useful for many applications including those that share buffers with OpenCL™ 1.0 for advanced visual computing applications.
Prawdę mówiąc, mało mnie tutaj na razie dotyczy – nie używam niesamowicie wyrafinowanych technik, które oferuje biblioteka. Nie chciało mi się też przeglądać dokładnie specyfikacji (szczerze powiedziawszy, chyba nigdy nie czytałem [kuca, zasłania głowę rękoma i czeka na wyrok]), ale uderzył mnie jeden komentarz Voytecha pod tym “newsem”:
CallList mi nie żal, trybu bezpośredniego też, ale widze że glTranslate/Rotate, glPush/PopMatrix a nawet glFrustum i glOrtho też poszło w diabły. No to trzeba będzie sobie to samemu zaimplementować.
Cóż – jak mówię, nie czytałem dokumentacji dokładnie. Jeżeli te funkcje nadal będą istnieć, ale będą opatrzone jako “niezalecane”, to pół biedy – nadal mi są potrzebne. Ale jeżeli od pewnego momentu nie znajdę ich w API – robi się problem. Całe szczęście, że nie są to instrukcje bardzo trudne do napisania – być może pokuszę się nawet o jakąś małą notkę na ten temat. Jedyny problem byłby prawdopodobnie z glFrustum oraz glOrtho, ale na szczęście istnieje również gluPerspective, które całkowicie wystarcza.
Przynajmniej, jeśli chodzi o moją skromną osobę – ale jak już mówiłem, nie stosuję wyrafinowanych technik. I mam nadzieję, że moja Yesta na tym nie ucierpi.
Pozdrawiam – SceNtriC.
0 komentarze:
Prześlij komentarz