Hirdetés

Új hozzászólás Aktív témák

  • k.t.a.

    senior tag

    Remélem jár erre valaki, aki foglalkozik VC++-al DX9-el.

    Valami miatt nem tudok textúrát generálni. VC++ és DX9 a felület. Egy fx fájlban benne van egy effekt (az nvidia tűz effektje, kicsit átalakítva), ebben van egy procedurális textúra, amit most át akarok rakni a progimba. A fájlt megtalálja mert a ps és avs müxik. Maga a textúra shader program is jó mert FX Composer alatt megy, és a Rendermonkey is megcsinálja.
    Így néz ki a shader (HLSL)

    float GenNoise(float3 Pos : POSITION) : COLOR
    {
    float3 P = Pos*32;
    return abs(noise(P));
    }


    És így a hozzá kapcsolódó C++ kód


    LPDIRECT3DVOLUMETEXTURE9 pNoiseTexture;
    LPD3DXBUFFER pCode;
    LPD3DXTEXTURESHADER pTextureShader;

    D3DXCreateVolumeTexture( g_App.GetDevice(), 32, 32, 32, 0, 0, D3DFMT_A8R8G8B8, D3DPOOL_DEFAULT, &pNoiseTexture);

    D3DXCompileShaderFromFile( ''Flame.fx'', NULL, NULL, ''GenNoise'', ''tx_0'', D3DXSHADER_SKIPOPTIMIZATION, &pCode, NULL, NULL );
    D3DXCreateTextureShader( (DWORD*)pCode->GetBufferPointer(), &pTextureShader );
    D3DXFillVolumeTextureTX( pNoiseTexture, pTextureShader );


    Annál a résznél akad ki, hogy D3DXCreateTextureShader, azért mert a pCode értéke 0. Valami miatt nem tudja lefordítani. Próbáltam tx_1-el is, de az sem ment. Tudom hogy elmenthetném a textúrát fájlba és akkor nem kellene generálni, de így akarom, mert később lesz olyan, hogy nem lehet megkerülni.

Új hozzászólás Aktív témák