Pokaż wiadomości

Ta sekcja pozwala Ci zobaczyć wszystkie wiadomości wysłane przez tego użytkownika. Zwróć uwagę, że możesz widzieć tylko wiadomości wysłane w działach do których masz aktualnie dostęp.


Wiadomości - Borowik

Strony: [1]
1
Ok. Oto jak teraz ładuję obrazy do Picture Control:


                   // utworzenie nowego kontekstu urzadzenia

HDC ImageDC = CreateCompatibleDC(NULL);

// pobranie obrazu

unsigned char *image = FreeImage_GetBits(dib);


// zonglerka bitami

unsigned char helper;

for(int bit = 0; bit < FreeImage_GetWidth(dib) * FreeImage_GetHeight(dib) * 3; bit += 3)
{
helper = image[bit];

image[ bit ]   = image[ bit+2 ];
image[ bit+2 ] = helper;
}


// ustawienie bitmapy

                      HBITMAP ImageBitmap = CreateDIBSection(ImageDC, FreeImage_GetInfo(dib), DIB_RGB_COLORS, (void**)&image, NULL, 0);


// ustawienie typu obrobki bitow

SetStretchBltMode(ImageDC, COLORONCOLOR);


// pobranie handlera do Picture Control

HWND hPicture = GetDlgItem(textures, IDC_TERRAIN);


// ustawienie obrazu

StretchDIBits( GetDC(hPicture), 0, 0, 128, 128,
0,
0,
FreeImage_GetWidth(dib),
FreeImage_GetHeight(dib),
FreeImage_GetBits(dib),
FreeImage_GetInfo(dib),
DIB_RGB_COLORS,
SRCCOPY);



Jedynie pliki PNG nie ładują się poprawnie... Dodatkowym mankamentem jest to, że rysując w ten sposób po Picture Control, nie powstaje takie ładne wgłębienie na brzegach kontrolki (jak to normalnie ma miejsce).

Nie dałoby się jakoś przerobić obraz załadowany przez FreeImage na HBITMAP, a potem wysłać go poprzez SendMessage() do Picture Control (zamiast ręcznie rysować po kontrolce)?

2
Windows / Odp: Ustawienie czegoś innego niż bitmapy w Picture Control.
« dnia: Czerwiec 24, 2010, 19:07:17 »
Właśnie nabawiłem się lekkiego wstrętu do WinApi (chociaż jak się człowiek naczyta msdn, to takie trudne nie jest).

Do wczytywania tekstur używam FreeImage. Tylko właśnie teraz kombinuje, jak wysłać to do Picture Control...

3
Witam.

Natknąłem się ostatnio na pewien drobny, irytujący problem. Posiadam w swoim okienku kontrolkę Picture Control. Normalnie do niej wysyłałem bitmapę, ale ostatnio mam potrzebę, żeby wyświetlała np. pliki JPG, PNG, TGA.

Bitmapy ładowalem tak:

HBITMAP hBitmap;
hBitmap = (HBITMAP)LoadImage(NULL, szFileName, IMAGE_BITMAP, 128, 128,
LR_LOADFROMFILE | LR_CREATEDIBSECTION | LR_DEFAULTSIZE);

HWND hPicture = GetDlgItem(textures, IDC_TERRAIN);
SendMessage(hPicture, STM_SETIMAGE, IMAGE_BITMAP, (LPARAM)hBitmap);

Szukałem cały dzień, w jaki sposób należy ustawiać w tej kontrolce pliki inne niż bitmapy, ale wszelkie rozwiązania, które były zamieszczone, zakładały korzystanie z MFC (z którego nie korzystam).

Poratowałby ktoś solucją do tego problemu bądź jakimiś keywordami, które ułatwiłyby mi walkę z google? :)

4
Aktualny wyglad tafli wody:

http://img168.imageshack.us/img168/8339/19464265.jpg

Okrutnie widać "kafelki", ale jak znajdę lepszą teksturę, efekt pewnie będzie lepszy.

5
Zamiast zastosować glGenerateMipmap(), użyłem glBuild2dMipmaps(). Nie wiem, czy robi to większą różnicę, ale podziałało! Woda wygląda o wiele bardziej gładko i ładniej. :)

Dziękuję za szybką odpowiedź.

6
Witam.

Skrobię sobie ostatnio przy pewnym prostym edytorze terenu i zauważyłem, że w trakcie teksturowania dużych połaci terenu, np. tafli wody, im dalej od danego fragmentu, tym jakość teksturowania jest gorsza. Rozmywa się etc. I vice versa.

Oto fragmenty kodu:

ładowanie tekstury:


glGenTextures(1, &liquidBrush);
glBindTexture(GL_TEXTURE_2D, liquidBrush);

glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER, GL_LINEAR);
glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER, GL_LINEAR);

glTexParameterf( GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT );
glTexParameterf( GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT );


glTexImage2D( GL_TEXTURE_2D, 0, GL_RGB, textureInfo.biWidth, textureInfo.biHeight, 0,
                          GL_RGB, GL_UNSIGNED_BYTE, texture );


Funkcja rysująca obiekty "wody" (tj. tafle wody):

               glEnable(GL_TEXTURE_2D);

glEnable(GL_BLEND);
glDisable(GL_DEPTH_TEST);

glDepthMask(GL_FALSE);

glBlendFunc (GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);

glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);

glDisable(GL_CULL_FACE);



for(int i = 0; i < liquidVector.size(); i++)
liquidVector[i].Draw();




glDisable(GL_TEXTURE_2D);

glDisable(GL_BLEND);
glEnable(GL_DEPTH_TEST);

glDepthMask(GL_TRUE);

glEnable(GL_CULL_FACE);


Fragment funkcji Draw() z klasy liquidObject:

                                   glPushMatrix();

glColor4f( 1.f, 1.f, 1.f, alpha);
glBindTexture(GL_TEXTURE_2D, textureID);


// powierzchnia wody
glBegin(GL_QUADS);

for(int x = 0; x < MAP_X*MAP_SCALE; x += MAP_SCALE)
for(int z = 0; z < MAP_Z*MAP_SCALE; z += MAP_SCALE)
{

glTexCoord2f(0.f, 0.f);
glVertex3f( x,  currentLevel, -z);

glTexCoord2f(1.f, 0.f);
glVertex3f(x + MAP_SCALE, currentLevel, -z);

glTexCoord2f(1.f, 1.f);
glVertex3f(x + MAP_SCALE, currentLevel, -z -MAP_SCALE);

glTexCoord2f(0.f, 1.f);
glVertex3f(x, currentLevel, -z - MAP_SCALE);

}

glEnd();

glPopMatrix();


Tak wyglada nieruchoma tafla wody:

http://img189.imageshack.us/img189/2984/asdfaddasd.png


Czy jest jakaś możliwość, np. pogarszania jakości teksturowania, w zależności od dystansu? Ponieważ, z tego co widzę, to powodem takiego kiełbaszenia się grafiki, jest przesyt pikselków, na tych dalszych fragmentach.

Byłbym wdzięczny za wskazanie mi, co robię źle. :(
Z góry dziękuję.

7
Matematyka i fizyka / Obliczanie koordynatow punktu 3d.
« dnia: Maj 10, 2010, 03:22:39 »
Witam.

Ostatnio natknąłem się na pewien problem, który irytuje mnie od paru dni (tym bardziej, że jego rozwiązanie nie jest pewnie takie trudne...). Po wielokrotnych płonnych próbach rozwiązania problemu oraz przedzieraniu się przez chaszcze Google, zdecydowałem, że nadszedł czas zwrócić się po pomoc społeczności gamedev'u. ;)

Problem brzmi następująco:

Posiadam płaszczyznę 3D, posiadającą cztery wierzchołki, a na niej leży pewien punkt. Koordynaty wierzchołków płaszczyzny są mi znane, natomiast przy punkcie leżącym na owej płaszczyźnie, znam tylko jego X i Z (wysokość Y nie jest mi znana).

Czy znalazłby się ktoś na tyle miły, by zdołał mi wytłumaczyć, jak mogę otrzymać wartość Y owego punktu? Albo chociaż podał hasła, które ułatwiłyby mi tułaczkę po Google, w pouszkiwaniu odpowiedzi na owy problem. :)

Z góry dziękuję.

8
Ciekawa stronka, Liosan. Aż dodałem sobie ją do ulubionych. :)

Nie spodziewałem się aż tylu linków od pojedynczego postującego, L1p3q. Wielkie dzieki. :D

9
Sztuczna inteligencja / Video sample sztucznej inteligencji w grach.
« dnia: Marzec 10, 2010, 12:59:39 »
Witam.

Jestem w trakcie opracowywania seminarium pt. "Sztuczna inteligencja w grach komputerowych". W obecnej chwili, posiadam całkiem sporą liczbę ciekawych artykułów oraz wykładów na ten temat. Natomiast kiedy trzeba znaleźć przykład, ilustrujący działanie ai w jakiejkolwiek grze, 95% wyników, wyszukiwanych w google bądź na youtube, są to klipy wideo przedstawiające śmieszne bugi lub absurdalne zachowanie AI.

A więc przechodzę do mej prośby, tj. ktokolwiek kto pamięta, bądź ma zapisane w ulubionych, różne ciekawe klipy przedstawiające działanie sztucznej inteligencji w grach komputerowych (bądź konsolowych), byłbym wdzięczny, jeśli zamieściliby linki bądź tytuły w tym temacie. Jestem pewien, że może to być przydatne nie tylko dla mnie. :)

Na rozruch, dwa linki ode mnie (żeby nie było, że tylko żule, bez żadnego wkładu ;p):

- krótki pokaz systemu poddawania się, przez wrogich NPCów (ArmA II)
   http://www.youtube.com/watch?v=WQ5KEUG41EA&NR=1
- prezentacja poruszania się i zachowań NPCów w otoczeniu miejskim (również ArmA II)
   http://www.youtube.com/watch?v=yvj20lwzCuM



10
Platformy mobilne / Odp: Aplikacja korzystajaca z OpenGL na Symbiana
« dnia: Listopad 11, 2009, 01:05:39 »
To nie jest żaden "klon". :) Dzięki kot za radę.

11
Platformy mobilne / Odp: Aplikacja korzystajaca z OpenGL na Symbiana
« dnia: Listopad 10, 2009, 20:32:03 »
A mógłbys podać jakiś prosty szablon z wykorzystaniem kontrolki, która obsługuje OpenGL'a?

12
Platformy mobilne / Aplikacja korzystajaca z OpenGL na Symbiana
« dnia: Listopad 10, 2009, 20:19:44 »
Witam.

Jestem zupełnie "zielony" jeśli chodzi o Symbiana i mam problem z wyborem narzędzia, jakiego miałbym użyc do napisania pewnej aplikacji na zaliczenie. Mam za zadanie napisać prostą gre 2D na komórke.

Moje pytanie brzmi:
Jakie narzędzie umożliwi mi napisanie aplikacji pod Symbiana z wykorzystaniem biblioteki OpenGL oraz WinApi? I czy w ogóle jest to możliwe?

Strony: [1]