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

Strony: [1] 2 3 4 5 ... 7
1
DirectX / Odp: [DirectX11]Problem przy ustawianiu rasterizera
« dnia: Luty 15, 2013, 23:54:45 »
To chyba nie jest kwestia ustawienia rasteryzera, tylko raczej złe wykorzystanie wskaźników.

2
Projekty rozpoczęte / Odp: [WIP] Voxelowy silnik
« dnia: Luty 14, 2013, 20:30:33 »
Ja tak jak kolega wyżej, tylko zieleń oraz błędy:

Cytuj
OpenGL version: 4.2.12002 Compatibility Profile Context 9.12.0.0
Achtung! uniform not found: gEyeDir in dsChunkStatic
Achtung! uniform not found: gSSAOMap in dsDirLight
display resolution: 656 x 685
display resolution: 1440 x 837

Karta Radeon 5770 HD. Stery aktualizowałem jakiś miesiąc temu może mniej.
Forward działa dobrze,chociaż zauważyłem, że kliknięcie button 2 i 3 wywołuje błąd "Access Violation".

3
DirectX / [DX11]Problem z SM dla świateł punktowych
« dnia: Grudzień 02, 2012, 10:31:11 »
Witam. Mam problem polegający na tym,że z jakiegoś powodu nie mogę wyliczyć poprawnego cienia dla shadow mapy. Wydaje mi się,że wszystkie shadery mam dobre. Tutaj wrzucę shadery.

VS do generowania shadow map
cbuffer cbCameraInfo : register(b0)
{
matrix view;
matrix projection;
matrix world;
float4 eyePosition;
matrix viewPointLight[6];
};

float4 VS(float4 position : POSITION0) : SV_Position
{
float4 pos;
pos = mul(position,world);
return pos;
}

GS do generowania shadow map

cbuffer cbCameraInfo : register(b0)
{
matrix view;
matrix projection;
matrix world;
float4 eyePosition;
matrix viewPointLight[6];
};

cbuffer cbLightInfo : register(b1)
{
float4 lightDir;
float4 lightColor;
float4 lightPosition;
float4 lightAttenuation;
matrix viewLight;
matrix projectionLight;
matrix viewPointLightTranslate;
}

struct GS_INPUT
{
float4 position : SV_position;
};

struct GS_OUTPUT
{
float4 position : SV_position;
float4 vecLight : TEXCOORD0;
uint RTIndex : SV_RenderTargetArrayIndex;
};

[maxvertexcount(18)]
void GS(triangle GS_INPUT input[3],inout TriangleStream<GS_OUTPUT> CubeMapStream)
{
for(int f = 0; f < 6;++f)
{
GS_OUTPUT output;
output.RTIndex = f;
for(int v = 0;v < 3 ; v++)
{
float4 viewPos = mul(input[v].position,viewPointLight[f]);
output.position = mul(viewPos,projection);
output.vecLight  = lightPosition - input[v].position;
CubeMapStream.Append(output);
}
CubeMapStream.RestartStrip();
}
}

PS do generowania shadow map

cbuffer cbCameraInfo : register(b0)
{
matrix view;
matrix projection;
matrix world;
float4 eyePosition;
matrix viewPointLight[6];
};

struct PS_INPUT
{
float4 position : SV_position;
float4 vecLight : TEXCOORD0;
uint RTIndex : SV_RenderTargetArrayIndex;
};

float4 PS(PS_INPUT input) : SV_TARGET
{
float dist = length(input.vecLight);
return float4(dist,dist,dist,dist);
}

Funkcja obliczająca czy punkt jest w cieniu
float calculateShadowPointLight(TextureCube shadowMap,float3 samVector,SamplerState samLinear)
{
float shadowMapValue = shadowMap.Sample(samLinear,-samVector).r;
float shadowDepth = length(samVector);
return shadowMapValue < shadowDepth ? 0.3f : 1.0f;
}

Problem polega na tym,że ostatnia funkcja zawsze zwraca 0.3f. Męcze się już z tym około tygodnia i nie mogę sobie poradzić. Z góry dzięki za pomoc.

Teraz odkryłem,że shadow mapa nie ma tej wartości jaką powinna. Napisałem sobie mały shader sprawdzający i wychodzi na to,że gdy pixel shader odpowiadający za kolor w shadow mapie zwraca 1.0f,to ten wynik tak jakby jest czyszczony spowrotem do 0.0f. Nie wiem jak to wytłumaczyć. Sorry,że tak nie jasno, ale po prostu nie wiem jak to opisać.

4
Konfigurator / Odp: Komputer za 2500zł once again
« dnia: Listopad 04, 2012, 10:28:21 »
Ramu nigdy za wiele,ale moim zdaniem 16 to lekka przesada,ja mam 2GB i za tydzień dokupię jeszcze 2GB,ale na tych 2 wszystkie najnowsze produkcje,czy chociażby kompilator chodzi szybko.

5
DirectX / Odp: Gdzie sie podział D3DX?
« dnia: Listopad 03, 2012, 18:48:27 »
No właśnie ja też wolałem stare D3DXMath i pewnie teraz zrobie tak,że przekopiuje ten stary d3dx10.h z funkcjami matematycznymi do mojego projektu.

6
DirectX / Odp: Gdzie sie podział D3DX?
« dnia: Listopad 03, 2012, 17:58:20 »
Aha czyli mnie czeka conajmniej 2h żmudnego poprawiania aplikacji. Dzięki za pomoc. Swoją drogą wolałem stary system. Ale i tak dzięki.

7
DirectX / Gdzie sie podział D3DX?
« dnia: Listopad 03, 2012, 16:19:48 »
Witam. Mam pytanie,czy mógłby mi ktoś powiedzieć,gdzie jest plik D3DX11.h w najnowszym Windows SDK? Sprawdzałem i nie ma go w folderze include. Czy wie ktoś gdzie on jest?

8
Visual Studio / Odp: Dziwny błąd
« dnia: Październik 19, 2012, 21:10:56 »
Dobra problem rozwiązany,źle liczyłem wielkość stringu jaki podawałem do funkcji D3DXCompileFromMemory, a teraz jeśli ktoś byłby tak miły to mógłby mi powiedzieć czy kod tego shadera jest poprawny,tzn. ma on renderować normal mapping. Dam tutaj tylko kod główny shadera. Nie chce zaśmiecać forum i tworzyć nowego wątku,chodzi mi tylko o to czy shader jest poprawny,a jeśli nie to dlaczego.

VertexShader
OUTPUT VS(INPUT input)
{
float4 t = float4(mul(input.tangent.xyz,(float3x3)world),0);
float4 n = float4(mul(input.normal.xyz,(float3x3)world),0);
float4 b = float4(cross(t.xyz,n.xyz),0);

t = normalize(t);
b = normalize(b);
n = normalize(n);
float3x3 tbn = transpose(float3x3(t.xyz,b.xyz,n.xyz));

OUTPUT output;
output.position = mul(input.position,world);
output.position = mul(output.position,view);
output.position = mul(output.position,projection);
output.texcoord = input.texcoord;
output.normal = n;
output.texcoord2 = mul(input.position,world);
output.texcoord3 = eyePosition - output.texcoord2;
output.texcoord3 = float4(mul(output.texcoord3.xyz,(float3x3)tbn),0);
if(lightColor.w == 0.25f)
{
output.texcoord4 = mul(lightDir,world);
}
else if(lightColor.w == 0.5f)
{
output.texcoord4 = lightPosition - output.texcoord2;
output.texcoord4 = float4(mul(output.texcoord4.xyz,(float3x3)tbn),0);
}
output.texcoord5 = t;
output.texcoord6 = b;
output.texcoord7 = float4(0.0f,0.0f,0.0f,0.0f);
output.texcoord8 = float4(0.0f,0.0f,0.0f,0.0f);
return output;
}
end

PixelShader
float4 PS(INPUT input) : SV_Target
{
float4 tex = diffuseMap.Sample(samLinear,input.texcoord);
float4 bumpNormal = normalMap.Sample(samLinear,input.texcoord);
float3x3 tbn = float3x3(input.texcoord5.xyz,input.texcoord6.xyz,input.normal.xyz);
bumpNormal = (bumpNormal * 2.0f) - 1.0f;
bumpNormal = float4(mul(bumpNormal.xyz,(float3x3)tbn),0);
bumpNormal = normalize(bumpNormal);
float4 L;
if(lightColor.w == 0.25f)
{
L = input.texcoord4;
}
else if(lightColor.w == 0.5f)
{
L = input.texcoord4;
}
float4 light = calculateLightAndAttenuation(lightColor.w,bumpNormal,L,normalize(input.texcoord3),lightAttenuation,shinessis);
return ((tex * light.x) + (light.y * float4(1.0f,1.0f,1.0f,1.0f))) * float4(lightColor.xyz,1.0f) * light.z;
}
end

9
Visual Studio / Odp: Dziwny błąd
« dnia: Październik 16, 2012, 20:08:30 »
Debuguje tą bibliotekę,już coś znalazłem,ale muszę to jeszcze sprawdzić,tylko,że teraz zauważyłem tak,jakby ten błąd występował losowo,tzn. nawet jak nie zmienię nic w programie,to błąd przy jednym debugowaniu jest,a przy drugim go nie ma.

10
Visual Studio / Odp: Dziwny błąd
« dnia: Październik 15, 2012, 19:27:47 »
Libów x64 nie linkuje do 32 bitowego, to pojawia się jak ustawię materiał na normal mapping,nie wiem, może coś w ładowaniu shaderów do pamięci mam źle, bo tam tak jakby wywala mnie debugger.

EDIT:
Sprawdziłem teraz,i sam odpalony exe bez visuala uruchamia się,co prawda efekt graficzny jest zły,ale sam program się uruchamia. I tutaj właśnie już nie wiem czy to wina debuggera i coś jest źle ustawiona czy kodu samego.

11
Visual Studio / Dziwny błąd
« dnia: Październik 14, 2012, 23:00:54 »
Witam. Od jakiegoś czasu w moich mini programach pojawia się dziwny błąd. Wywala okienko jak przy Access Violation i kiedy dam break to pokazuje mi się tekst:
Cytuj
No symbols are loaded for any call stack frame. the source code cannot be displayed
I tam mogę zdeassemblować tylko. Nie wiem co robić w takiej sytuacji. Czytałem na internecie,ale są tam tylko odpowiedzi po angielsku a mój angielski zbyt dobry nie jest. Czy ktoś ma pomysł co z tym zrobić? Mam Visual Studio C++ Express Edition 2010. Te mini programy mają zlinkowaną napisaną przeze mnie bibliotekę statyczną.

12
Konfigurator / Odp: PC w okolicach 3000 zł
« dnia: Wrzesień 29, 2012, 13:40:12 »
Napisz na jakim monitorze i na jakiej rozdziałce zamierzasz grać, bo np. ja mam Radeona 5770 i 19 calowy monitor 1440x900 i wszystkie gry,może za wyjątkiem BF3 i Crysis 2 DX11 High Resolution Textures,chodzą mi na full detalach,a np. na monitorze 24 cale już bym nie wyciągnął dobrej wydajności.

13
DirectX / Odp: Packoffset a typ bool
« dnia: Wrzesień 26, 2012, 16:50:30 »
O dzięki wielkie właśnie o to mi chodziło.

14
DirectX / Packoffset a typ bool
« dnia: Wrzesień 24, 2012, 23:08:33 »
Witam. Mam pytanie,jak można przedstawić typ bool w ConstantBufferze przekazywanym do shadera w DX11. Tzn. mam zmienne boolowskie i np typu float. I typ float muszę przedstawić jako np. wektory z packoffsetem, ponieważ wielkość constant buffera musi być wielokrotnością 16. I tak np 4 floaty przedstawiam jako jeden wektor,tylko w shaderze piszę:
float xxx : packoffset(c0.x)Itp.
I teraz mam pytanie,ponieważ teraz dostałem error,że nie można łączyć w constant bufferze zmiennych z instruckją packoffset i bez niej tzn. zapis taki:
float4 xxx;float yyy : packoffset(c1.x)Spowoduje błąd. I właśnie teraz to  pytanie,jak mogę przedstawić zmienne typu bool z instruckją packoffset?

Wiem,że to dość niezrozumiale napisane,ale po prostu nie mogę tego problemu jakoś schludniej opisać.

15
To tak,jeśli chodzi o device to ja to rozwiązałem za pomocą externów,tzn. jak mam zamiar użyć devica np. tak jak ty napisałeś w klasie Sprite,to piszę w pliku nagłówkowym np.
extern ID3D11Device* device;
I mogę używać.
Pewnie jest milion innych sposobów,ale ten wydał mi się najprzyjemniejszy.

Strony: [1] 2 3 4 5 ... 7