Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

error X3000: Illegal character in shader file

Ostatnio zmodyfikowano 2014-10-21 17:43
Autor Wiadomość
Mig
Temat założony przez niniejszego użytkownika
error X3000: Illegal character in shader file
» 2014-10-20 23:33:52
Witam, mam problem mianowicie gdy próbuję skompilować przykładowy kod z książki otrzymuje taki komunikat jak w tytule , pisząc przykładowy mam na myśli to że działają mi wszystkie przykłady w których nie został wykorzystany plik .fx natomiast wszystkie które z niego korzystają powodują taki komunikat podczas kompilacji.Dodam że korzystam z książki "projektowanie gier 3d. wprowadzenie do technologii directx 11" oraz postępowałem zgodnie z instrukcjami w niej zawartej przy konfiguracji projektu oraz opierałem się na http://www.d3dcoder.net/phpBB/viewtopic.php?f=4&t=295 by naprawić błąd z Effects11 (skompilowałem Effects11 pod visual 2013 debug/release).

P-119132
Mig
Temat założony przez niniejszego użytkownika
» 2014-10-21 08:47:07
Mogę dodać jeszcze że przykładowe programy z dokumentacji DirectX działają mimo podobnej budowy do tych z książki , w takim razie błąd chyba znajduję się w kodzie wczytującym efekty co chyba nie powinno się zdarzać ponieważ jest to kod czysto pobrany , dołączony do treści książki.





C/C++
void WavesDemo::BuildFX()
{
    std::ifstream fin( "fx/color.fxo", std::ios::binary );
   
    fin.seekg( 0, std::ios_base::end );
    int size =( int ) fin.tellg();
    fin.seekg( 0, std::ios_base::beg );
    std::vector < char > compiledShader( size );
   
    fin.read( & compiledShader[ 0 ], size );
    fin.close();
   
    HR( D3DX11CreateEffectFromMemory( & compiledShader[ 0 ], size,
    0, md3dDevice, & mFX ) );
   
    mTech = mFX->GetTechniqueByName( "ColorTech" );
    mfxWorldViewProj = mFX->GetVariableByName( "gWorldViewProj" )->AsMatrix();
   
   
}
 


C/C++
cbuffer cbPerObject
{
    float4x4 gWorldViewProj;
};

struct VertexIn
{
    float3 Pos: POSITION;
    float4 Color: COLOR;
};

struct VertexOut
{
    float4 PosH: SV_POSITION;
    float4 Color: COLOR;
};

VertexOut VS( VertexIn vin )
{
    VertexOut vout;
   
    vout.PosH = mul( float4( vin.Pos, 1.0f ), gWorldViewProj );
   
    vout.Color = vin.Color;
   
    return vout;
}

float4 PS( VertexOut pin )
    : SV_Target
{
    return pin.Color;
}

technique11 ColorTech
{
    pass P0
    {
        SetVertexShader( CompileShader( vs_5_0, VS() ) );
        SetGeometryShader( NULL );
        SetPixelShader( CompileShader( ps_5_0, PS() ) );
    }
}
 
P-119143
Monika90
» 2014-10-21 11:47:16
A plik fx/color.fxo skąd wziąłeś? Sprawdź jakiego ten plik używa kodowania, może jest w UTF-16, a DX11 wymaga ASCII, czy coś w tym rodzaju.
P-119149
Mig
Temat założony przez niniejszego użytkownika
» 2014-10-21 17:20:41
Zapisałem na nowo z kodowaniem ASCII oraz ustawiłem:

shader type  = Effect(/fx)
shader model = Shader Model 2 (/2_0)

po tych zabiegach pojawia się następny komunikat:


Error 1 error MSB6006: "fxc.exe" exited with code 1. C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V120\Microsoft.CppCommon.targets 1126 5 DirectX Nauka




P-119161
Mig
Temat założony przez niniejszego użytkownika
» 2014-10-21 17:43:29
Okey , już sobie poradziłem musiałem ustawić Shader Model na 5 (/5_0) i wszystko jest okey.
Dzięki za pomoc.
P-119166
« 1 »
  Strona 1 z 1