0
我正在創建Windows Phone 8應用程序,並且正在使用相機。當我不使用任何着色器,我的C#代碼工作完美:使用SharpDX和DirectX工具包輸出純紅色的像素着色器
void photoDevice_PreviewFrameAvailable(ICameraCaptureDevice sender, object args)
{
sender.GetPreviewBufferArgb(captureData);
previewTexture.SetData<int>(captureData);
}
...
spriteBatch.Begin();
spriteBatch.Draw(previewTexture, new Vector2(backBufferXCenter, backBufferYCenter), null, Color.White, (float)Math.PI/2.0f,
new Vector2(textureXCenter, textureYCenter), new Vector2(xScale, yScale), SpriteEffects.None, 0.0f);
spriteBatch.End();
我越來越攝像頭輸入實時。不過,我(只是想直通輸入)嘗試使用像素着色器:
Texture2D MyTexture : register(t0);
sampler textureSampler = sampler_state{
Texture = (MyTexture);
Filter = MIN_MAG_MIP_LINEAR;
};
...
float4 pixelShader(float4 color : COLOR0,
float2 texCoord : TEXCOORD0) : SV_Target0
{
float4 textureColor = tex2D(textureSampler, texCoord);
return textureColor;
}
着色器運行正常,沒有例外等(在精靈批處理開始分配的話),但所有我紅色變成紅色。整個輸出是純紅的。可能是什麼原因?我對着色器不熟悉,我試圖瞭解它們是如何工作的,特別是對於採樣器。謝謝。
我其實下面是文章:)反正,我從頭開始編寫代碼的某些部分後解決了這個問題,並沒有找到真正的原因,它可能是我當時再也看不到的一個錯誤。 –