Jump to content
  • Advertisement
Sign in to follow this  
Kurt-olsson

Textxures with color

This topic is 2215 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

SOLVED IT AS I POSTED IT!
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

Share this post


Link to post
Share on other sites
Advertisement
Sign in to follow this  

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

We are the game development community.

Whether you are an indie, hobbyist, AAA developer, or just trying to learn, GameDev.net is the place for you to learn, share, and connect with the games industry. Learn more About Us or sign up!

Sign me up!