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

Strony: 1 2 [3] 4
31
Matematyka i fizyka / Odp: Glupi problem z matrycami.
« dnia: Sierpień 18, 2009, 16:12:50 »
haha, ja tak mam z tymi 'matrycami' :) Staram sie poprawiac, ale to jest silniejsze.

Dzieki za cierpliwosc !

Wlasnie o to mi chodzilo, bo funkcje mnożące macierze w directx domagają się typu D3DXMATRIX.

dzięki.

32
Matematyka i fizyka / Glupi problem z matrycami.
« dnia: Sierpień 18, 2009, 16:03:33 »
Skonczylem wlasnie pierwsza klase liceum i jedyne moje informacje na temat matryc pochodza z paru ebookow i nie za bardzo potrafie sobie poradzic z tym problemem:) Problem nie wiaze sie tylko z matematyka, ale tez z API directxa.

Mam grupe wierzcholkow ktore tworza quad(kwadrat1x1). Teraz musze dane o wierzcholkach przemnozyc przez jedna z matryc transformujacych (np. D3DXMatrixTranslation), zeby uzyskac ich pozycje po uzyciu transformacji. Zeby to latwo przemnozyc dane wierzcholkow (X,Y,Z) musza sie znajdowac w danych typu D3DXMATRIX.

Teraz pytanie jak wlozyc dane wspolrzedne X,Y,Z do matrycy 4x4 (D3DXMatrix dziala tylko w takim typie) aby po przemnozeniu byly prawdziwe. Może to dziecinne proste, ale jak mówię, nie mam podstaw, wiem po prostu mniej więcej jak to działa.

Albo, jak to inaczej ugryźć ?

33
Szkółka / Odp: [C++, Directx]Typ D3DXMATRIX
« dnia: Sierpień 18, 2009, 15:09:36 »
Super. Dzieki za pomoc.
Zalezalo mi na tym zeby macierz byla z biblioteki Directxa bo chcialem ja potem latwo przemnozyc przez macierz translacji

34
Szkółka / [C++, Directx]Typ D3DXMATRIX
« dnia: Sierpień 18, 2009, 14:56:49 »
A wiec... niby to takie latwe, ale rwe sobie na tym wlosy.
Tworze sobie macierz

D3DXMATRIX x;

i jak teraz ta strukture wypelnic danymi ? Zalozmy ze chce miec jednowymiarowa matryce...


definicja typu w directx API:
(czarna magia jak dla mnie)

#ifdef __cplusplus
typedef struct D3DXMATRIX : public D3DMATRIX
{
public:
    D3DXMATRIX() {};
    D3DXMATRIX( CONST FLOAT * );
    D3DXMATRIX( CONST D3DMATRIX& );
    D3DXMATRIX( CONST D3DXFLOAT16 * );
    D3DXMATRIX( FLOAT _11, FLOAT _12, FLOAT _13, FLOAT _14,
                FLOAT _21, FLOAT _22, FLOAT _23, FLOAT _24,
                FLOAT _31, FLOAT _32, FLOAT _33, FLOAT _34,
                FLOAT _41, FLOAT _42, FLOAT _43, FLOAT _44 );


    // access grants
    FLOAT& operator () ( UINT Row, UINT Col );
    FLOAT  operator () ( UINT Row, UINT Col ) const;

    // casting operators
    operator FLOAT* ();
    operator CONST FLOAT* () const;

    // assignment operators
    D3DXMATRIX& operator *= ( CONST D3DXMATRIX& );
    D3DXMATRIX& operator += ( CONST D3DXMATRIX& );
    D3DXMATRIX& operator -= ( CONST D3DXMATRIX& );
    D3DXMATRIX& operator *= ( FLOAT );
    D3DXMATRIX& operator /= ( FLOAT );

    // unary operators
    D3DXMATRIX operator + () const;
    D3DXMATRIX operator - () const;

    // binary operators
    D3DXMATRIX operator * ( CONST D3DXMATRIX& ) const;
    D3DXMATRIX operator + ( CONST D3DXMATRIX& ) const;
    D3DXMATRIX operator - ( CONST D3DXMATRIX& ) const;
    D3DXMATRIX operator * ( FLOAT ) const;
    D3DXMATRIX operator / ( FLOAT ) const;

    friend D3DXMATRIX operator * ( FLOAT, CONST D3DXMATRIX& );

    BOOL operator == ( CONST D3DXMATRIX& ) const;
    BOOL operator != ( CONST D3DXMATRIX& ) const;

} D3DXMATRIX, *LPD3DXMATRIX;

#else //!__cplusplus
typedef struct _D3DMATRIX D3DXMATRIX, *LPD3DXMATRIX;
#endif //!__cplusplus



#ifdef __cplusplus
typedef struct _D3DXMATRIXA16 : public D3DXMATRIX
{
    _D3DXMATRIXA16() {}
    _D3DXMATRIXA16( CONST FLOAT * );
    _D3DXMATRIXA16( CONST D3DMATRIX& );
    _D3DXMATRIXA16( CONST D3DXFLOAT16 * );
    _D3DXMATRIXA16( FLOAT _11, FLOAT _12, FLOAT _13, FLOAT _14,
                    FLOAT _21, FLOAT _22, FLOAT _23, FLOAT _24,
                    FLOAT _31, FLOAT _32, FLOAT _33, FLOAT _34,
                    FLOAT _41, FLOAT _42, FLOAT _43, FLOAT _44 );

    // new operators
    void* operator new   ( size_t );
    void* operator new[] ( size_t );

    // delete operators
    void operator delete   ( void* );   // These are NOT virtual; Do not
    void operator delete[] ( void* );   // cast to D3DXMATRIX and delete.
   
    // assignment operators
    _D3DXMATRIXA16& operator = ( CONST D3DXMATRIX& );

} _D3DXMATRIXA16;

#else //!__cplusplus
typedef D3DXMATRIX  _D3DXMATRIXA16;
#endif //!__cplusplus

35
Szkółka / Odp: [Directx] Kontrola wierzcholkow.
« dnia: Sierpień 06, 2009, 12:31:39 »
ok, dzieki wielkie, sprobuje to przetrawic :)

36
Szkółka / Odp: [Directx] Kontrola wierzcholkow.
« dnia: Sierpień 06, 2009, 12:15:53 »
haha

no jak, nie ?
Dzieki za cierpliwosc, ale bede musial cie jeszcze troche o nia poprosic.

Mam strukture z wierzcholkami.

xyz 1
xyz 2
xyz 3
xyz 4

one tworza kwadrat.
Skaluje kwadrat powiedzmy x*2 y*2 z*1

no i teraz zeby odczytac wierzcholki tego kwadrata, musze wrzucic moje wierzcholki ze struktury w macierz i pomnozyc je w taki sam sposob ?


edit:

dobra, tutaj ukazuja sie braki mojej wiedzy z zakresu matematyki (macierz) i podstawowego dzialania directx :)
jak wrzucic grupe wierzcholkow do jednej macierzy ?  :o


37
Szkółka / Odp: [Directx] Kontrola wierzcholkow.
« dnia: Sierpień 06, 2009, 12:04:57 »
Hmm... Logiczne.

Dobra, teraz rozumiem.
Mam wspolrzedne oryginalnej pozycji, i sukcesywnie, przy kazdej transformacji, mnoze je razem ze swiatem :)
tylko to znaczy ze do kazdego wierzcholka bede musial zastosowac osobna macierz ?

dzieki

38
Szkółka / Odp: [Directx] Kontrola wierzcholkow.
« dnia: Sierpień 06, 2009, 11:56:09 »
??

Nie mam pojecia o czym mowisz :))

To nie bylo moje pytanie. Moje pytanie polega na tym, jak dostac wspolrzedne tego wierzcholka, zeby MOC sprawdzic czy koliduje czy nie.

39
Szkółka / Odp: [Directx] Kontrola wierzcholkow.
« dnia: Sierpień 06, 2009, 11:47:14 »
Jak to zrobic ? :)

edit:

Tworze strukture dla CreateVertexBuffer, w strukturze mam 4 wierzcholki ktore tworza dwa trojkaty ktore tworza kwadrat.

Loaduje ja do pamieci przy pomocy mempcy

Pzywoluje kwadrat na scene przy pomocy DrawPrimitive

I zalozmy ze go skaluje zeby byl 2 razy wiekszy.


Jak wyznaczyc teraz wierzcholki przy pomocy macierzy ?



40
Szkółka / [Directx] Kontrola wierzcholkow.
« dnia: Sierpień 05, 2009, 21:53:48 »
A wiec. Tworze sobie prosta platformowke.
Kazda platformowka potrzebuje platform, yes ?

A wiec tworze bufor wierzcholkow z ktorego tworze prosty kwadrat.

Problem jest taki ze z samych kwadratow 1x1 tej platformowki nie stworze, a wiec nastaje pytanie:
 - Jakie sa popularne sposoby na kontrole wspolrzednych wierzcholkow jezeli potraktuje prymitywa matrixem ? :)
= zalozmy ze mam kwadrat x,y,z i zrobie mu skalowanie. Jak odczytac jego wierzcholki (potrzebuje tych danych zeby odkryc najlatwiejsze kolizje).

moglbym uzyc logiki co platforma, to nowe dane do bufora, ale to nie wygodne i z pewnoscia rozpieprzylo by mi caly kod. Watpie zeby tak sie robilo.

prosze wybaczyc za brak polskich znakow  :o


edit:
przychodzi mi pare pomyslow, ale chce wiedziec jak popularnie sie to robi, jak Wy to robicie :)


41
Szkółka / Odp: [dx9] color keying
« dnia: Maj 16, 2009, 16:49:58 »
mówiłem tutaj o teksturze tła która ma być widoczna 100%

42
Szkółka / [dx9] color keying
« dnia: Maj 16, 2009, 14:38:00 »
Robię grę 2d w środowisku 3d - oryginalniejsze efekty.

Mam oteksturowanego poly - mój główny bohater.

Mam drugiego poly, jako tło.

Muszę jakoś usunąć czarne tło z bohatera żeby nie pokazywało się na różnokolorowym tle z tyłu.

odpowiedź jest oczywista, color keying. Ale to nie działa ...

użyłem tego kodu:

http://directxtutorial.com/Tutorial9/B-Direct3DBasics/dx9B12.aspx

dodałem mojego poly z teksturą tła między kółkami

na testy. i wychodzi tak że tło kółek przenika tylko dla siebie nawzajem, a moje tło kryje się z tyłu.

http://img35.imageshack.us/img35/6787/poly.jpg     - obrazek poglądowy :))

nie ważne czym wywołam tą teksturę CreateFromFileEX czy zwyklym CreateFromFile, textura kryje się za keyami.

Jakieś pomysły ?

43
Inne / Odp: [Directx9] Biblioteki pomocnicze.
« dnia: Maj 14, 2009, 02:13:29 »
nie wiem, ja mam Dxuta od meshów i od kamery :)

ale i tak nie będe tego używał. pofatyguje się i wpisze te głupie inicjacje, lepiej to niż uczyć się tej biblioteczki.

44
Inne / Odp: [Directx9] Biblioteki pomocnicze.
« dnia: Maj 13, 2009, 21:15:34 »
Silnik to jeszcze nie, bo chcę się trochę pobawić tym nisko-poziomowym directx`em.

oo, znalazłem jakiś framework i to nawet oryginalny.

http://msdn.microsoft.com/en-us/library/bb318701(VS.85).aspx

tylko trochę mają tych bibliotek do dodania.

Cytuj
# Add the following classes to your project:

    * dxmut.cs
    * dxmutdata.cs
    * dxmutenum.cs
    * dxmutexception.cs
    * dxmutgui.cs
    * dxmutmesh.cs
    * dxmutmisc.cs
    * dxmutSettingsDlg.cs

# Add references to the following dynamic-link libraries (DLLs) to your project:

    * Microsoft.DirectX.dll
    * Microsoft.DirectX.Direct3D.dll
    * Microsoft.DirectX.Direct3DX.dll

edit;
dobra, znalazłem takie cudeńko jak DXUT - framework prosto ze stajni microsoftu ;)
teraz muszę tylko nauczyć się korzystać z tego bad boya.

edit 2 ;

z tego co widzę to tam jest też C++

45
Inne / Odp: [Directx9] Biblioteki pomocnicze.
« dnia: Maj 13, 2009, 21:07:08 »
Przeglądałem kody OpenGLu i szczerze mówiąc nie różni się 'na oko' od directxa.

Jak nie ma nic takiego, to postaram się pobić lenia i napiszę sobie samemu.

Strony: 1 2 [3] 4