CORRECT ANSWER IS:
dev->CreateInputLayout(ied, 4, VS->GetBufferPointer(), VS->GetBufferSize(), &pLayout);
I forgot to add upp to 4 instead of 3.
I don´t like all manual counting to get stuff to work! =(
I must be missing something big as i don´t understand how to add color on my textures???
I try to add "COLOR" in my layout
i also add D3DXCOLOR in my Vertex
But i cant access these color values in my shader?
i can add an extra float in the end and access it by textcoord[2], but everything else failes.
T
[source lang="cpp"][/source]
Here is my shader, i comment the code so you can see what i am trying to do
[source lang="cpp"]cbuffer ConstantBuffer{ float4x4 final; float4x4 rotation; // the rotation matrix float4 lightvec; // the light's vector float4 lightcol; // the light's color float4 ambientcol; // the ambient light's color}Texture2D Texture;SamplerState ss;struct VOut{ float4 color : COLOR; float2 texcoord : TEXCOORD; // texture coordinates float4 position : SV_POSITION;};VOut VShader(float4 position : POSITION, float4 normal : NORMAL, float2 texcoord : TEXCOORD, //I WANT THIS ONE ALSO float4 color : COLOR) //BUT AS SOON AS I ADD THIS, THE RENDERING IS BLANK{ VOut output; output.position = mul(final, position); //COLOR IS SET BY BUFFER, NOT MY VERTEX, I WANT TO HAVE BOTH. // set the ambient light output.color = ambientcol; // calculate the diffuse light and add it to the ambient light float4 norm = normalize(mul(rotation, normal)); float diffusebrightness = saturate(dot(norm, lightvec)); output.color += lightcol * diffusebrightness; output.texcoord = texcoord; // set the texture coordinates, unmodified return output;}float4 PShader(float4 color : COLOR, float2 texcoord : TEXCOORD) : SV_TARGET{//HERE THE color value allready should be added? float4 newcolor = color * Texture.Sample(ss, texcoord); newcolor.a = 0.5f; return newcolor;}[/source]
Edited by KurtO, 27 September 2012 - 12:58 PM.






