Dans DirectX, je sais que je peux faire quelque chose comme ça.OpenGL Fragment Shader VS DirectX Fragment Shader
struct GBufferVertexOut
{
float4 position : POSITION0;
float4 normal : TEXCOORD0;
float2 texCoord : TEXCOORD1;
};
GBufferFragOut GBuffersFS(GBufferVertexOut inVert)
{
GBufferFragOut buffOut;
buffOut.normal = normalize(inVert.normal);
buffOut.normal = (buffOut.normal + 1) * .5;
buffOut.diffuse = tex2D(diffuseSampler, inVert.texCoord);
buffOut.diffuse.a = tex2D(ambientSampler, inVert.texCoord).r;
buffOut.specular = float4(1, 1, 1, 1);
return buffOut;
}
donc mon résultat fragment est une collection d'informations Je suis en train de convertir un shader openGL pour faire quelque chose de similaire
mais pouvez-vous même pas faire cela ?. Je n'ai jamais rien retourné auparavant, même si un fragment de fragment OpenGL en plus d'un vec4 pour "Fragment Color" et je n'arrive pas à trouver des informations qui me disent que je peux retourner plus.
Oh désolé. Oui, j'ai ces variables dans mon vertex shader. est-ce que vous dites que je devrais manipuler l'information là-bas? parce que j'essayais d'obtenir des données "normales" par pixel ou de suivre la position des pixels. –
parce que je garde une trace de l'image. Je lie mon tampon de trame. et j'écris dessus. Mais dans directX votre fragment shader produit toutes les informations que vous lui dites de jeter. –
désolé édité la réponse, n'a pas lu correctement la question – Slicedpan