Bojkar\'s dev blog
kwi 27
Curves
icon1 admin | icon2 projekty | icon4 04 27th, 2009| icon3No Comments »

Niech Was temat posta nie zgubi :) Chodzi oczywiÅ›cie o krzywe, a dokÅ‚adniej o animacje kamery, którÄ… “ostatnio” dodaje do mojego edytora. W ostatnim newsie pokazywaÅ‚em, jak dziaÅ‚a interpolacja liniowa kamery, a od tamtej pory udaÅ‚o mi siÄ™ zaimplementować animacje na krzywych. DokÅ‚adnie zaimplementowaÅ‚em krzywe Hermite’a, bardzo popularne w wielu programach graficznych (np. Lighwave czy 3dsmax). Wbrew pozorom nie sÄ… takie trudne do “napisania”. Ja piszÄ…c wÅ‚asna implementacje korzystaÅ‚em w sumie z dwóch linków: http://www.cubic.org/docs/hermite.htm oraz polskiego: http://www.dathox.unit1.pl/files/spider/DTX_Site/articles/interpolacje.htm Drugi link przedstawia trochÄ™ bardziej zooptymalizowany wzór, który stosuje również u siebie. Teraz za cel mam napisać jakiÅ› porÄ™czny moduÅ‚ do edycji tych krzywych ( Wynik dziaÅ‚ania możecie zobaczyć na kolejnym filmie:

kwi 15
Nowy feature
icon1 admin | icon2 projekty | icon4 04 15th, 2009| icon31 Comment »

Witam po krótkiej przerwie. Ostatnio postanowiÅ‚em dodać do edytora dość ciekawy feature a mianowicie animacje kamery. Dość przydatna rzecz np. do robienie cutscenek w grach czy do efektów w demach scenowych. WczeÅ›niej w starszych wersjach silnika animacjÄ™ kamery tworzyÅ‚em w zewnÄ™trznym programie 3D np. Lightwave i nastÄ™pnie zapisywaÅ‚em w jakimÅ› formacie i wczytywaÅ‚em już wczeÅ›niej zapisane key-e i tylko je “odgrywaÅ‚em”. Teraz postanowiÅ‚em zrobić obsÅ‚ugÄ™ animacji kamery we wÅ‚asnym edytorze. Narazie udaÅ‚o mi siÄ™ tylko zrobić prostÄ… kontrolkę  “timeline”, oraz interpolacje liniowÄ… key-ów (czyli tÄ… najprostszÄ… :) ). OczywiÅ›cie na tym nie pozostanÄ™. Już powoli pracuje nad interpolacja na krzywych, dokÅ‚adnie Hermite’a, ale o tym już innym razem. Dodatkowo umieszczam filmik, na którym można zobaczyć jak to teraz dziaÅ‚a. Czekam na opinie.

mar 17

Teraz jak już mam obsÅ‚ugÄ™ shaderów to grzechem by byÅ‚o nie wykorzystać ich do post processingu. Ale do tego brakowaÅ‚o mi jeszcze jednej rzeczy: szybkiego renderowania do tekstury. WczeÅ›niej już to robiÅ‚em ale za pomocÄ… wolnych sposobów takich jak np. glCopyPixels. Na szczęście OpenGL wprowadziÅ‚ coÅ› o wiele szybszego, mianowicie: Frame Buffer Object. Rozszerzenie te daje nam możliwość “off screen” ‘owego renderowania sceny do tekstury ale nie tylko. Możliwy jest również zapis bufora głębokoÅ›ci czy stencil’a. UdaÅ‚o mi siÄ™ to zaimplementować do mojego renderera, a przy okazji napisaÅ‚em do testów, trzy proste efekty post processing’owe: bloom, grayscale i sephia. Poniżej zamieszczam screeny prezentujÄ…ce ten efekt (w lewym dolnym rogu jest renderowania scena przy pomocy FBO do maÅ‚ego kwadracika, w którym te efekty widać, a w tle scena renderowana “normalnie”)

mar 1

Wczoraj udało mi się podpiąć shadery. Do ich pisania będę używał języka GLSL, podpięcie obługi glsl-a okazało się bajecznie proste. Teraz w końcu będzie można dodać jakieś ciekawe efekty do renderera. Poniżej przykładowy screen z przykładowym shaderem.

Wczoraj dostałem od kolegi fajne porównanie na temat Javy:

“Mówienie, że Java jest dobra, bo dziaÅ‚a na wszystkich systemach jest jak mówienie, że seks analny jest dobry, bo dziaÅ‚a u obu pÅ‚ci.”

lut 27
Chwila przerwy…
icon1 admin | icon2 projekty | icon4 02 27th, 2009| icon35 Comments »

Witam wszystkich. Pewnie część z Was myślała, że już nie będę robił wiecej wpisów ze względu na przerwę w postach, niestety była ona spowodowana pracą, uczelnią, sesją, lenistwem i kilkoma innymi rzeczami. Jako, że miałem wieczór mogłem również się zająć moim drugim hobby czyli motocyklem. Jeszcze tylko czeka mnie wymiana opon oraz czekanie na wiosne, już nie mogę się doczekac.

Przez czas w którym nie pisaÅ‚em, popracowaÅ‚em chwilkÄ™ nad edytorem, dodaÅ‚em prosty lecz fajny efekt jakim jest flara oraz dodaÅ‚em kilka ulepszeÅ„. Dodatkowo PaweÅ‚ zrobiÅ‚ mi scene, na której powstanie swego rodzaju techdemo silnika. Tu co na screenie możecie zobaczycz to “zajawka” mapy, oraz edytora. Oprócz tego do portolio w dziale web-developing dodaÅ‚em 2 nowe pozycje.

Dzisiaj w pracy znalazÅ‚em bardzo ciekawego linka o jeszcze ciekawszym tytule: “Microsoft Excel: Revolutionary 3D Game Engine?”. MyÅ›le, że tytuÅ‚ mówi sam za siebie, link do strony: http://www.gamasutra.com/view/feature/3563/microsoft_excel_revolutionary_3d_.php?page=1

lut 7
Szycie techa…
icon1 admin | icon2 projekty | icon4 02 7th, 2009| icon3No Comments »

Bardzo maÅ‚o czasu niestety mogÄ™ poÅ›wiecić na “szycie techa” do silnika, a co bÄ™dzie jak przyjdzie wiosna i bedÄ™ mógÅ‚ w koÅ„cu SV-ke wyprowadzić z garażu? Nic może dziewczyna zrozumie jak bÄ™dÄ™ do niej później przyjeżdzaÅ‚ ;) UdaÅ‚o mi siÄ™ na szczęści napisanie podstawowych rzeczy takich jak serializacja, RTTI (to jeszcze muszÄ™ dopracować) oraz ostatnio properties’ow. C++ jest dobrym jÄ™zykiem, jednak trochÄ™ starym i (nie)stety nie ma wbudowanych tych mechanizmów (no dobra RTTI jako takie ma). Teraz całą mapÄ™ zapisujÄ™ w kilku linijkach a nie jak wczeÅ›niej gdy zapisywaÅ‚em mape do wÅ‚asnego tekstowego formatu i zajmowaÅ‚o to trochÄ™ wiÄ™cej niż kilka linijek :)

void bMap::Save(string path)
{

bArchive arch;
arch.CreateArchive(path, bArchive::M_WRITE);


Write<bActor>(&arch, m_actors);

arch.CloseArchive();
}

A uzupełnienie property grida w edytorze wygląda w ten sposób (oczywiście wcześniej zmienne musze zarejestować):

void bMainWindow::UpdatePropertyGrid()
{
bActor *selectedActor = m_opengl->m_map.GetSelectedActor();if(selectedActor != NULL)
{
PropertiesMap properties = selectedActor->m_properties.GetProperties();

PropertiesMap::iterator it;

for (it = properties.begin(); it != properties.end(); it++ )
{
string name = (*it).first;
string value = (*it).second->GetValue();
m_propertyGridManager1->SetPropertyValue(name, value);
}

}
}

Jak widać teraz wygląda to o wiele bardziej elegancko, a co najważniejsze wiele dodatkowych rzeczy mogę zrobić o wiele szybciej.

P.S. Coś wordpress źle formatuje kod.. Na szczęście nie długo bę™dą™ mógł kod prezentować w owiele lepszej formie, ale o tym w następnym poście.

lut 2
Projekt 1.
icon1 admin | icon2 projekty | icon4 02 2nd, 2009| icon3No Comments »

Witam ponownie. Jako każdy szanujÄ…cy sie programista grafiki tak i ja tworze wÅ‚asny “silnik” do gier. Jest to mój gÅ‚owny projekt i w zasadzie jedyny. Aktualnie to już chyba 4 czy 5 jego wersja. Silnik pisany jest w C++, do renderowania używam OpenGL (oczywiÅ›cie jest możliwość bezproblemowego rozszerzenia renderera o DirectX), jako silnik fizyczny doskonaÅ‚ego PhysX, do dźwiÄ™ku OpenAL a GUI do edytorów tworze w wxWidgets. Jako “przedsmak” wrzucam Wam screena z edytora. W kolejnych notkach postaram siÄ™ coÅ› wiecej o tym napisać.

Editor