在 DirectX 中,我知道我可以做这样的事情。
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;
}
所以我的片段结果是我试图将openGL着色器转换为类似的信息的集合
但你能做到吗?除了用于“片段颜色”的 vec4 之外,我之前从未返回过任何其他内容,而且我似乎找不到任何可以告诉我可以返回更多信息的信息。