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 - FireBoll8

Strony: [1] 2
1
Witam potrzebuje rady bardziej doświadczonych, uczę się Direct 10 już od tyg. - ciężki jest dla początkujących co nigdy nie mieli styku z programowaniem 3D ;/  I zastanawiam się np. czy nie skorzystać z gotowego silnika i na jego bazie uczyć się programować 3D ... a jeśli tak to jakie to ma konsekwencje w przyszłości, patrząc pod względem np. pracy programisty czy korzystając z gotowych silników 3D i fizyki jakoś ogranicza programistę czy raczej umożliwia mu łatwiejszy kontakt z programowaniem 3D ? I czy pomaga to zrozumieć ogólnie budowę silnika oraz jak go zaprogramować?

2
Aha rozumiem czyli najprawdopodobniej  te dwa fragmenty kodu znajdują się w pliku fx. Dzięki za wytłumaczenie teraz rozumiem do czego jest ta funkcja ładująca shadery ;]

3
Szkółka / Direct3D 11 - Tutorial 2 i 3 - brak pewnych informacji
« dnia: Lipiec 29, 2010, 21:19:26 »
Witam mam pytanie odnośnie tutorialu  z MSDN dotyczącego Direct3D 11. Otóż po przeczytaniu tutoriala 2 i 3 pomyślałem se że zabiorę się za stworzenie aplikacji podchodzącej pod wiedzę tych tutków - czyli narysowanie na ekranie prostego trójkąta ... oczywiście chciałem spojrzeć jak oni to robią .... patrzę i rozumiem wszystko to co zostało opisane w tutkach , interesuje mnie jednak jedna zdefiniowana funkcja której nie rozumiem do końca po co to jest .. nazwa wskazuje że kompiluje shadery z plików ... no ale mi to za wiele nie mówi ;/
HRESULT CompileShaderFromFile( WCHAR* szFileName, LPCSTR szEntryPoint, LPCSTR szShaderModel, ID3DBlob** ppBlobOut )
{
    HRESULT hr = S_OK;

    DWORD dwShaderFlags = D3DCOMPILE_ENABLE_STRICTNESS;
#if defined( DEBUG ) || defined( _DEBUG )
    // Set the D3DCOMPILE_DEBUG flag to embed debug information in the shaders.
    // Setting this flag improves the shader debugging experience, but still allows
    // the shaders to be optimized and to run exactly the way they will run in
    // the release configuration of this program.
    dwShaderFlags |= D3DCOMPILE_DEBUG;
#endif

    ID3DBlob* pErrorBlob;
    hr = D3DX11CompileFromFile( szFileName, NULL, NULL, szEntryPoint, szShaderModel,
        dwShaderFlags, 0, NULL, ppBlobOut, &pErrorBlob, NULL );
    if( FAILED(hr) )
    {
        if( pErrorBlob != NULL )
            OutputDebugStringA( (char*)pErrorBlob->GetBufferPointer() );
        if( pErrorBlob ) pErrorBlob->Release();
        return hr;
    }
    if( pErrorBlob ) pErrorBlob->Release();

    return S_OK;
}


W ich przykładowym kodzie nie ma także tego :

float4 VS( float4 Pos : POSITION ) : SV_POSITION
    {
        return Pos;
    }


float4 PS( float4 Pos : SV_POSITION ) : SV_Target
    {
        return float4( 1.0f, 1.0f, 0.0f, 1.0f );    // Yellow, with Alpha = 1
    }


A opisują to w samouczku ... Zdaję mi się że tworzy to jakieś dane pod vertex shader i pixel shader ale nie jetem właśnie pewien ... , chyba w pierwszym przypadku chodzi o pozycje wierzchołków a w drugim po prostu ustalają kolor czyż nie ?- Ale w takim razie dlaczego tego nie wywołali ? Mogły ktoś bardziej doświadczony pomóc i opisać funkcję powyżej ?

4
Szkółka / Odp: GDI w grach
« dnia: Lipiec 28, 2010, 23:05:16 »
GDI != GUI


Przepraszam za taką wpadkę moja wina, bardzo wielka wina ;/


Interfejs w SC2 to są modele pokryte normalnie teksturami, gra jest 3D więc nie da rady inaczej. W sumie to są "bitmapy" bo to zwykłe czworokąty pokryte teksturą

To jest właśnie to co mnie najbardziej interesowało :D Dziękuje bardzo, mam jeszcze pytanie odnośnie GUI, wie ktoś z was jak oni to robią że na tych oteksturowanych boxach wyświetlają odpowiednie tekstury które ukazują właśnie mapę, czym kierujemy itp ? - Przypuszczam iż będą to różne tekstury i uzależnione w sposób jakiś warunków ?

5
Szkółka / GDI w grach
« dnia: Lipiec 28, 2010, 21:00:07 »
Witam jako początkujący cały czas zastanawiam się nad jednym pytaniem na które nie potrafię odpowiedzieć, a mianowicie :

Jak zaprogramować proste GDI, przykładowo w takim Starcraft mamy parę okien na samy dole które informują gracza o parametrach jednostki bądź budynku, pokazują mapę itd ... :

http://i26.tinypic.com/99e0j7.jpg

i teraz zastanawia mnie jak to wygląda w praktyce ? Czy te okna to kilka bitmap które pod odpowiednich działaniach na współrzędnych i zdarzeniach odbierają komunikat i np. pokazują parametry jednostki, portret itp.. ? Czy może to okna podrzędne względem okna gry posiadające odpowiednie przyciski określone przez bitmapy ?

6
Szkółka / Odp: Direct3D - sposób nauki
« dnia: Lipiec 28, 2010, 17:53:45 »
Ale tu się porobiło xD Myślałem że na 13 poście ten temat się skończy ;p
W każdym razie powiem wam tak :

- Ja wybrałem sposób nauki "Krzyśka.k" bo jest on dosyć logiczny i przynosi, moim zdaniem najlepsze efekty, ale i tak każdy ma prawo do własnego stylu nauki ;]
Mi akurat pasuje właśnie ten.

Dziękuje za wszelką pomoc i rady właśnie teraz staram się wyświetlić trójkąt na ekranie, już prawię skończyłem więc, satysfakcji mam pełno :D Ale roboty przede mną jeszcze dużo ;]

7
Szkółka / Odp: Direct3D - sposób nauki
« dnia: Lipiec 27, 2010, 19:09:00 »
xD
No to jest racja niektóre struktury typu : DXGI_SWAP_CHAIN_DESC  czy funkcje D3D11CreateDeviceAndSwapChain da się zapamiętać za pierwszym razem gdyż robią to co mają :D

Mam jeszcze takie pytanie Czy warto było by teraz np. pouczyć się Direct3D 9 porobić w nim parę programów a następnie przenieść się na 11 ? - moim zdaniem znacznie by to mi ułatwiło zrozumienie ogólnego procesu tworzenia grafiki na ekranie z wykorzystaniem Direct3D, chciałbym usłyszeć  jednak wasze zdanie na ten temat ..

8
Szkółka / Odp: Direct3D - sposób nauki
« dnia: Lipiec 27, 2010, 18:29:09 »
Chciałbym się jeszcze dowiedzieć czy konieczne jest pamiętanie tych wszystkich nazw funkcji i struktur .. czy np. wy robicie tak że kopiujecie  to czego nie pamiętacie i uzupełniacie to na własne potrzeby?

9
Szkółka / Odp: Direct3D - sposób nauki
« dnia: Lipiec 27, 2010, 17:23:34 »
Tak to przyznaje sample są napisane dosyć chaotycznie, najgorsze jest to iż właśnie w tutorialach nie ma wszystkiego opisanego,  jest tam dożo poufnych informacji  no ale ... wciąż to jest nie do końca dobrze zrobione .. chciałbym się spytać od czego należy zacząć? Czy od Tutorials  a może od Programming Guide for Direct3D 11 ?

Mnie szczerze powiedziawszy najbardziej przerażają te wszystkie funkcje, struktury - zapamiętanie ich nazw jest może i łatwe ale coraz więcej tego przychodzi i  zaczyna ci się mieszać w głowie ...

10
Szkółka / Direct3D - sposób nauki
« dnia: Lipiec 27, 2010, 17:04:38 »
Nie wiem czy taki temat już istnieje ale ... no po prostu muszę się spytać bardziej doświadczonych :

Jak u was wyglądały początki Direct3D ? - czy też przeglądaliście najprostsze kody, dokładnie analizowaliście , a następnie próbowaliście coś samemu wyskrobać choć nie do końca
było to udane ...

Chciałem się  także spytać czy istnieje jakiś inny sposób na naukę owej biblioteki, gdyż ten jest bardzo ciężki mam na myśli to iż łatwo pogubić się we wszystkich strukturach, funkcjach, typach wyliczeniowych ....

Chciałbym jeszcze spytać się czy skoro zacząłem naukę w Direct3D 11.0 - czy to był to dobry ruch z mojej strony? czy może jednak  powonieniem przesiąść się na Direct3D 9.0, który wydaje mi się prostszy patrząc na przykładowe kody programu.

11
DirectX / Odp: Direct3D 11.0 "Okno pojawia się i zaraz znika"
« dnia: Lipiec 26, 2010, 23:58:05 »
Bardzo dziękuje za pomoc!! Pomogła zmiana stałej :
D3D_FEATURE_LEVEL FeatureLevelRequested = D3D_FEATURE_LEVEL_11_0;
na:
D3D_FEATURE_LEVEL FeatureLevelRequested = D3D_FEATURE_LEVEL_10_1;

Czyli oznacza to że jednak nie obsługuje FEATURE_LEVEL 11.0
Chciał bym się jeszcze spytać czym jest debug RunTime ?

EDIT DOWN

Dzieki Jeszcze raz za taką dawkę zawsze przydatnej wiedzy :D

12
DirectX / Direct3D 11.0 "Okno pojawia się i zaraz znika"
« dnia: Lipiec 26, 2010, 23:42:46 »
Wątpię by komuś chciało się ściągać i sprawdzać kod no ale ;p
Witam tak jak w temacie mam problem z oknem w podstawowej aplikacji Direct3D 11.0

Wspierając się dokumentacją SDK(June 2010) postanowiłem pouczyć się Direct3D 11.0, na początku wychodziło mi całkiem nieźle, fakt że odpowiedzi na wszystkie pytania początkującego tam nie znajdę ale jak na początek to dobre samouczki ;] No więc dzięki dokumentacjom i przykładowemu kodowi z pierwszego samouczka o podstawach Direct3D 11 postanowiłem napisać własną aplikacje która na początek wyświetlała by okienko o określonym kolorze tła ...

Podłączyłem wszystkie lib i pliki header, ustaliłem ścieżki w VC++Directories, napisałem kod i wreszcie dumny tego iż kompilator nie wskazuje żadnych błędów odpaliłem ów program.

Niestety okno pokazał się ledwo na sekundę i znikło z mych oczu. Podejrzewam iż spartaczyłem gdzieś sprawę z funkcją Inicjującą zasoby Direct i wywołującą metody działające na buforach, nie jestem jednak do końca pewny ...

Proszę także o łagodną ocenę, to mój pierwszy program w Direct.

Na wszelki wypadek podam tutaj kod funkcji inicjującej :
HRESULT DeviceInit()
{
HRESULT hr = S_OK;
UINT width = 640;
UINT height = 480;
DXGI_SWAP_CHAIN_DESC sd;
ZeroMemory(&sd,sizeof(sd));
sd.BufferCount = 1;
sd.BufferDesc.Height = height;
sd.BufferDesc.Width = width;
sd.BufferDesc.RefreshRate.Numerator = 60;
sd.BufferDesc.RefreshRate.Denominator = 1;
sd.BufferDesc.Format = DXGI_FORMAT_R8G8B8A8_UNORM;
sd.BufferUsage = DXGI_USAGE_RENDER_TARGET_OUTPUT;
sd.SampleDesc.Count = 1;
sd.SampleDesc.Quality = 0;
sd.OutputWindow = g_hWnd;
sd.Windowed = TRUE;

D3D_FEATURE_LEVEL FeatureLevelRequested = D3D_FEATURE_LEVEL_11_0;
UINT numberLevelsRequested = 1;
    D3D_FEATURE_LEVEL  FeatureLevelsSupported;
       if(FAILED(hr = D3D11CreateDeviceAndSwapChain(NULL,D3D_DRIVER_TYPE_HARDWARE,NULL,0,&FeatureLevelRequested,numberLevelsRequested,D3D11_SDK_VERSION,
&sd,&g_pSwapChain,&g_pDevice,&FeatureLevelsSupported,&g_pImmediateDevice )))
   {
   return hr;
   }

ID3D11Texture2D* pBackBuffer;

hr = g_pSwapChain->GetBuffer(0,__uuidof( ID3D11Texture2D),
( LPVOID* )&pBackBuffer );

hr = g_pDevice->CreateRenderTargetView(pBackBuffer,NULL,&g_pRenderTargetView);

g_pImmediateDevice->OMSetRenderTargets(1,&g_pRenderTargetView,NULL);



D3D11_VIEWPORT vp;
vp.Height =(FLOAT) height;
vp.Width =(FLOAT) width;
vp.MaxDepth = 1.0f;
vp.MinDepth = 0.0f;
vp.TopLeftX = 0;
vp.TopLeftY = 0;
g_pImmediateDevice->RSSetViewports(1,&vp);
return S_OK;
}

13
Witam przejdę odrazu do problemu :

otóż mam zdeklarowaną przykładową klasę Potwora :

class cMonster
{
public:
int HP;
const static int HP_MAX = 60;
int damage;
int armor;
int Sila;
// konstruktory
cMonster(){damage = 10, armor = 20, Sila = 15;}
// destruktor
virtual ~cMonster(){};
// metody
int Random();
};
// jej implementacja zawarta jest w main.cpp

Stworzyłem do niej także klase pochodną :

class cWolf: public cMonster
{
public:
int Ryk();
cWolf(){damage = 20,armor=22,Sila=20;}
};
I teraz chcąc odwołać się do klasy pochodnej stworzyłem wskaźnik na obiekt klasy bazowej cMonster i przypisałem do niego obiekt cWolf.
W ten sposób:
// wskaźnik na obiekt  klasy cMonster
cMonster *monster = new cWolf;
Gdy sprawdzam wartość zmiennych w programie np. armor, damage itp .. to zgadzają się , jednak gdy chcę odwołać się do metody przykładowej w tym wypadku Ryk(); Nie mogę tego uczynić z nieznanych mi powodów ...

Czy ktoś mógł by uświadomić mi moje błędy?

// Odpowiedź do poniżej żeby nie zaśmiecać - dzięki nie przerobiłem jeszcze rzutowania z klasami ale się za nie właśnie zabieram;]
Dziękuję za pomoc

14
Allegro / Niszczenie bitmapy poprzedniego poprzedniego poziomu planszy
« dnia: Lipiec 30, 2009, 22:01:04 »
Witam tak jak w temacie chciał bym się  dowiedzieć czy aby usunąć bitmape rysująca jakiś poziom planszy, zawartą w tablicy  należy  usunąć ją tak jak zwykłą bitmapę i utworzyć nowe bitmapy zawierające w większość ta samą grafikę  pod kolejny poziom planszy.

Czy istnieje jakiś inny sposób by wykorzystać te same bitmapy po raz "n" z możliwością ich usunięcia i utworzenia nowej planszy opierającej się na nowych i starych bitmapach. 

15
Szkółka / Odp: [C++ i ALLEGRO 5] Problem z wyświetleniem mapy
« dnia: Lipiec 29, 2009, 18:21:11 »
Hmmm jeśli obrazki się nie wyświetlają to  oznacza że masz je umiejscowione w zły miejscu.
Też miałem taki problem spróbuj tak :

Powiedzmy że mam projekt o nazwie bitmap

znajduje się on na dysku c w folderze Programy.

W folderze programy mam dane projekty, wybieram interesujący mnie folder projektu w moim przypadku będzie to bitmap, i dwa obrazki  wrzucam do folderu z nazwą projektu w moim przypadku bitmap. To powinno poskutkować  miałem chyba taki sam problem jak ty , kiedy zrobiłem tak jak powyżej wszystko było ok.

pozdrawiam życzę rozwiązania problemu.

Strony: [1] 2