[ mrzli777 @ 31.08.2006. 16:49 ] @
Ne znam u cemu je fora, nikad nisam imao takav problem. Dobivam kao nekakvu interlaced sliku, ali ne po recima nego po stupcima.

Koristim DirectX 9.0c february 2006, ovako izgleda funkcija koja postavlja direct3d

Code:

// inicijalizacija direct3d-a //////////////////////////////////////////////////
HRESULT Scene::InitializeD3D (HWND hwnd)
{
    // kreiraj direct3d objekt
    if (NULL == (m_pD3DObject = Direct3DCreate9(D3D_SDK_VERSION)))
        return E_FAIL;

    // podesavanje direct3d parametara
    D3DPRESENT_PARAMETERS d3dpp;
    ZeroMemory(&d3dpp, sizeof (d3dpp));                                // ocisti strukturu
    d3dpp.Windowed         = TRUE;                                    // aplikacija u windowed modu
    d3dpp.SwapEffect       = D3DSWAPEFFECT_COPY;                    // nacin izmjene buffera
    d3dpp.BackBufferFormat = D3DFMT_A8R8G8B8;                        // format back buffera
    d3dpp.BackBufferCount  = 1;                                        // broj back buffera
    d3dpp.BackBufferWidth  = CLIENT_WIDTH;                            // sirina back buffera
    d3dpp.BackBufferHeight = CLIENT_HEIGHT;                            // visina back buffera

    d3dpp.EnableAutoDepthStencil = TRUE;                            // za koristenje ZBuffera
    d3dpp.AutoDepthStencilFormat = D3DFMT_D16;                        // Format boje
    
    // stvori direct3d device
    if (FAILED(m_pD3DObject->CreateDevice(
        D3DADAPTER_DEFAULT,
        D3DDEVTYPE_HAL,
        hwnd,
        D3DCREATE_SOFTWARE_VERTEXPROCESSING,
        &d3dpp,
        &m_pD3DDevice)))
    {
        return E_FAIL;
    }

    // render stanja
    m_pD3DDevice->SetRenderState(D3DRS_CULLMODE, D3DCULL_CCW);
    m_pD3DDevice->SetRenderState(D3DRS_FILLMODE, D3DFILL_SOLID);
    m_pD3DDevice->SetRenderState(D3DRS_LIGHTING, FALSE);
    //m_pD3DDevice->SetRenderState(D3DRS_SHADEMODE, D3DSHADE_FLAT);
    m_pD3DDevice->SetRenderState(D3DRS_ZENABLE, TRUE);

    return S_OK;
}


Hvala unaprijed.
[ Filip Strugar @ 04.09.2006. 17:03 ] @
Pa nisi bas dao mnogo detalja o problemu, iz ovoga se ne moze ama bas nista zakljuciti.

Brute force solution: uzmi neki directx sample koji radi, pa prebacuj svoj kod u njega dok se ne pojavi bug ;)
[ mrzli777 @ 02.10.2006. 13:03 ] @
Hmm, problem je bio u depth bufferu. Tocnije u ovoj liniji koda.

Code:

// ocisti back buffer
    m_pD3DDevice->Clear(0, NULL, D3DCLEAR_TARGET|D3DCLEAR_ZBUFFER, D3DCOLOR_XRGB(0, 0, 0), 1000.0f, 0);


Straznja ravnina perspektive mi je na 1000.0f pa sam mislio da na tolko trebam postaviti back buffer, a onda sam skuzil da je to kao normalizirano na 0.0f do 1.0f, i kad postavim na 1.0f radi normalno.

Citat:
Filip Strugar: Pa nisi bas dao mnogo detalja o problemu, iz ovoga se ne moze ama bas nista zakljuciti.

Brute force solution: uzmi neki directx sample koji radi, pa prebacuj svoj kod u njega dok se ne pojavi bug ;)


Tu imas pravo, ali nisam imao pojma sto bi tocno moglo bit, nekako sam se nadao da ce se pojavit netko kome se takva pizdarija dogodila pa ce znat. Inace, vec sam koristio neciji kod i nadogradjivao, ali ocito sam se i zajebao na mjestu gdje sam mislio da nema problema.
[ dragansm @ 02.10.2006. 18:24 ] @
Vrlo interesanta terminologija :)
pizdarija je verovatno sinonim za bug
a ovo zajebao mora da znaci typo
...kuzis stari poentu....? :)
[ mrzli777 @ 02.10.2006. 19:37 ] @
Citat:
dragansm: Vrlo interesanta terminologija :)
pizdarija je verovatno sinonim za bug
a ovo zajebao mora da znaci typo
...kuzis stari poentu....? :)


Za ovo prvo si u pravu. Sto je typo, to ne znam (jel pogreska u pisanju), pa ti ne mogu rec da li si tu u pravu.
Ako ima nekih nejanoca u mom opisu, pokusat cu to 'slikovitije' opisati.
Ako je problem u rijecniku, ispricavam se, nije mi bila namjera nista uvredljivo napisati, to je samo nacin na koji se neki puta izrazavam, i ubuduce cu pripaziti na odabir svojih rijeci.
[ dragansm @ 02.10.2006. 20:03 ] @
Nema mesta (citaj: razloga) isprikama....
nego kad vec brises z buffer stavi ga na jedan, bice sasvim dovoljno :)
Dakle:
Code:

m_pD3DDevice->Clear(0, NULL, D3DCLEAR_TARGET | D3DCLEAR_ZBUFFER, D3DCOLOR_XRGB(0, 0, 0), 1.0f, 0);