Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Direct3D problem: svaki drugi stupac piksela ne zeli mi prikazati

[es] :: 3D programiranje :: Direct3D problem: svaki drugi stupac piksela ne zeli mi prikazati

[ Pregleda: 2891 | Odgovora: 5 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

mrzli777
Hrvatska

Član broj: 50641
Poruke: 18
*.adsl.net.t-com.hr.



Profil

icon Direct3D problem: svaki drugi stupac piksela ne zeli mi prikazati31.08.2006. u 16:49 - pre 214 meseci
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.
 
Odgovor na temu

Filip Strugar
Filip Strugar
UK

Član broj: 9871
Poruke: 383
213.253.84.*



+1 Profil

icon Re: Direct3D problem: svaki drugi stupac piksela ne zeli mi prikazati04.09.2006. u 17:03 - pre 214 meseci
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 ;)
 
Odgovor na temu

mrzli777
Hrvatska

Član broj: 50641
Poruke: 18
*.sava.sczg.hr.



Profil

icon Re: Direct3D problem: svaki drugi stupac piksela ne zeli mi prikazati02.10.2006. u 13:03 - pre 213 meseci
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.
 
Odgovor na temu

dragansm
Dragan Smiljanic

Član broj: 38170
Poruke: 191
*.funcom.com.



Profil

icon Re: Direct3D problem: svaki drugi stupac piksela ne zeli mi prikazati02.10.2006. u 18:24 - pre 213 meseci
Vrlo interesanta terminologija :)
pizdarija je verovatno sinonim za bug
a ovo zajebao mora da znaci typo
...kuzis stari poentu....? :)
 
Odgovor na temu

mrzli777
Hrvatska

Član broj: 50641
Poruke: 18
*.sava.sczg.hr.



Profil

icon Re: Direct3D problem: svaki drugi stupac piksela ne zeli mi prikazati02.10.2006. u 19:37 - pre 213 meseci
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.
 
Odgovor na temu

dragansm
Dragan Smiljanic

Član broj: 38170
Poruke: 191
*.funcom.com.



Profil

icon Re: Direct3D problem: svaki drugi stupac piksela ne zeli mi prikazati02.10.2006. u 20:03 - pre 213 meseci
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);

 
Odgovor na temu

[es] :: 3D programiranje :: Direct3D problem: svaki drugi stupac piksela ne zeli mi prikazati

[ Pregleda: 2891 | Odgovora: 5 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.