Farci

Members
  • Content count

    7
  • Joined

  • Last visited

Community Reputation

126 Neutral

About Farci

  • Rank
    Newbie
  1. Thank you, btw i used the wrong descriptorname too and now it works
  2. Radikalizm, could you maybe tell me how?^^ ahh I knew that was the problem... but I wasnt sure, I'll try that, thx guys
  3. Hi, I don't know why but dx10 always give me back a false result when I try to create buffer, in this case a constantbuffer. [source lang="cpp"]struct SPSSSAOPerFrameBuffer { float m_sample_rad; float m_scale; float m_intensity; float m_bias; float m_screen_size_x; float m_screen_size_y; float m_random_size; }; ID3D10Buffer* g_pPSSSAOPerFrameBuffer = 0; D3D10_BUFFER_DESC PSSSAOPerFrameBufferDesciptor; PSPerFrameBufferDesciptor.ByteWidth = sizeof(SPSSSAOPerFrameBuffer); PSPerFrameBufferDesciptor.Usage = D3D10_USAGE_DYNAMIC; PSPerFrameBufferDesciptor.BindFlags = D3D10_BIND_CONSTANT_BUFFER; PSPerFrameBufferDesciptor.CPUAccessFlags = D3D10_CPU_ACCESS_WRITE; PSPerFrameBufferDesciptor.MiscFlags = 0; Result = g_pDevice->CreateBuffer(&PSSSAOPerFrameBufferDesciptor, 0, &g_pPSSSAOPerFrameBuffer); if (Result != S_OK) { return false; }[/source] I'm getting back, in Result, the value E_INVALIDARG. And thats the constantbuffer in hlsl. [source lang="cpp"]cbuffer CBPSSSAOPerFrameBuffer { float1 m_sample_rad; float1 m_scale; float1 m_intensity; float1 m_bias; float1 m_screen_size_x; float1 m_screen_size_y; float1 m_random_size; }; [/source] Before you think I'm just too lazy to find a solution, I've already read the part for constantbuffers in the msdn (http://msdn.microsoft.com/en-us/library/windows/desktop/bb205130(v=vs.85).aspx#Create_a_Constant_Buffer) . And they are doing exactly the same. I really don't know what I'm doing wrong I hope somebody can help me, thx so far.
  4. ahh ok then this way, thought there might be an more classy way thx for help
  5. Hello, just a short question, a normal can point in any direction so it can cotain negativ values. So whats the best way to handle negativ values for an normalbuffer which will be used for ssao. (I'm writing the normals on rendertarget with 4 floats) Or are these values saved as they are, even if they are negativ?
  6. Yeah you are right, but I made another mistake in my cpp-code and I think this can only happen to me. I wondered why my Quad isnt drawn all the time (I tried that earlier), it happend because I set the w part of the Position to 0 instead of 1. Most guys wont have that problem because they are just using a float3 Position for vertex-shader-input. And i'm using an orthographical view instead of the perspective view now and it seems to work. thx for help
  7. Hi, so as you could see I'm trying to use a rendertarget in the next shader. So I'm postprocessing some data and want to use it as a fullscreentexture in the next shader. So far so good, no problem with shaderresourceviews and setting and so on. But I have the following problem: I want to use the previously generated texture on the whole screenspace and not only on an object in the screen, atm I can see in the center of the screen with a part of texture with a big border around it which has the color of the clearing color. I'm trying to implement a SSAO algorithm, just so you know, but I'm still pretty new to HLSL and DX10. In the first shader I write out normals and depth for each pixel on seperate rendertargets and afterwards I set them as shaderressources for use in SSAO shader. [source lang="cpp"]Texture2D g_SSAODepthMap : register(t0); Texture2D g_SSAONormalMap : register(t1); struct VSInput {     float4 m_Position : POSITION       float4 m_Color : COLOR;       float4 m_Normal : NORMAL }; struct PSInput {      float4 m_Position : SV_POSITION;     float4 m_Color : COLOR0;     float3 m_Normal : NORMAL;      float2 m_Tex : TEXCOORD; }; // SSAO Vertex Shader PSInput VSSSAOShader(VSInput _Input) {     PSInput Output = (PSInput) 0; Output.m_Position = _Input.m_Position; Output.m_Tex.x = 0.5 * (1 + _Input.m_Position.x); Output.m_Tex.y = 0.5 * (1 - _Input.m_Position.y); return Output; } // SSAO Pixel Shader float4 PSSSAOShader(PSInput _Input) : SV_Target0 { float4 result = g_SSAODepthMap.Sample(samplerLinear, _Input.m_Tex); result += g_SSAONormalMap.Sample(samplerLinear, _Input.m_Tex); return result; }[/source] I have to say I didnt implement SSAO, this is just for testing and I'm using DirectX 10 and ps_4_0 and vs_4_0. Maybe I didnt understand how to get the right coordinates in the textures. I read something about a Fullscreenquad and also tried that, but it doesnt really worked, it would be pretty nice if somebody would be able to describe how I can use a texture as, i would say, layer. I would appreciate any help, because I'm really stuck here.