Czym jest Ogre?

edytuj

OGRE (Object-Oriented Graphics Rendering Engine) jest enginem 3D napisanym w C++ na licencji LGPL. Twórcy biblioteki przyjęli za cel ułatwienie programistom tworzenie aplikacji wykorzystujących sprzętowe wspomaganie 3D przez wprowadzenie prostego interfejsu ukrywającego wywołania bibliotek systemowych typu Direct3D czy OpenGL.

Żebyś mogł napisać program wykorzystujący Ogre, będziesz potrzebował karty graficznej wspomagającej akacelerację 3D. Oczywiście niezbędny będzie także kompilator C++. Jak na razie Ogre dobrze współdziała z takimi kompilatorami jak Visual C++ 6/7/7.1/8 i GCC. Natomiast z Bloodshed i Borland Ogre oficjalnie nie współpracuje. Ponadto na pewno przydadzą się różne narzędzia związane z tworzeniem grafiki trójwymiarowej.

Trzeba zaznaczyć, że Ogre jest jedynie silnikiem graficznym. Nie można go traktować jako pełnego silnika gry. Oznacza to, że nie znajdziemy w nim wyspecjalizowanych możliwości związanych z fizyką czy dostępem do sieci a wbudowane biblioteki obsługi peryferiów są ubogie i niekiedy zawierają błędy. Ogre skupia się głównie na tworzeniu grafiki i do tego celu został stworzony. Na szczęście można go powiązać z innymi bibliotekami, które dadzą nam taką możliwość.

Najnowsza wersja produkcyjna z 25 kwietnia 2010 to Ogre 1.7.1 (Cthugha).

Najważniejsze cechy

edytuj

Do najważniejszych cech Ogre można zaliczyć:

  • Prosty w użyciu interfejs stworzony z myślą zminimalizowana wywołań bibliotek systemowych np. Direct3D, OpenGL, Glide.
  • Obsługa Direct3D 7, 9 i OpenGL.
  • Działa pod systemami Windows, Linux i Mac OS X.
  • Obsługuje vertex i fragment programy (shadery), napisane zarówno w niskopoziomowym assemblerze, jak i w wysokopoziomowym Cg, DirectX 9 HLSL lub OpenGL GLSL.
  • Obsługuje tekstury w formacie PNG, JPEG, TGA, BMP i DDS, dołączając także tekstury 1D, wolumetryczne i inne.
  • Istnieje wiele eksporterów np. z Milkshape3D, 3D Studio Max, Maya, Blender, Wings3D, Sketchup.
  • Posiada elastyczne menadżery scen.
  • Wiele specjalnych efektów np. cząsteczki, mapowanie sferyczne, bump maping.