我通過使用Nvidia着色器語言編寫的片段着色器實現了YUV到RGB的轉換。 (Y,U和V存儲在單獨的紋理中,通過片段着色器中的多重紋理進行組合)。它在OpenGL下工作良好,但在Direct3D下,我無法使輸出圖像看起來正確。我開始懷疑,在我有機會做YUV轉換之前,Direct3D以某種方式修改了Y,U和V採樣。有誰知道在片段着色器運行之前Direct3D是否對存儲在紋理中的值進行了修改,以及如何禁用它們?通過片段着色器進行YUV轉換
2
A
回答
2
我們知道了。 :)基本上問題是,雖然我們的YUV到RGB方程是正確的,但是我們沒有正確地採樣V數據!所以沒有任何方法可以幫助!
最後,我建議以下策略,任何人試圖做到這一點:
1)將R,G和B的值從Y.你應該得到的灰度圖像(如Y包含只是亮度)。 2)接下來,將R,G和B設置爲U.您應該看到有趣的顏色! 3)最後設置R,G和B爲V.再次,你應該得到有趣的顏色。
另外,對這些值進行正確歸一化至關重要。請查看我們的fourcc.org,瞭解適當YUV標準化的討論。
1
想到的唯一建議是紋理格式不正確(低精度或壓縮)。
您能描述輸出看起來錯誤的方式嗎?任何機會的正確與錯誤的截圖?
相關問題
- 1. 通過片段着色器進行YUV到RGB轉換
- 2. 通過着色器在iPhone上對YUV進行RGB處理
- 3. 將表面着色器轉換爲片段着色器
- 4. 通行證到片段着色器
- 5. GLSL:頂點着色器無片段着色片段着色器
- 6. OpenGL片段着色器VS DirectX片段着色器
- 7. AS3 Stage3D片段着色器?
- 8. three.js - 片段着色器基礎知識 - 通過它的位置爲片段着色
- 9. 無法通過統一的浮動數組片段着色器
- 10. 片段着色器處理紋理數據並通過
- 11. 如何通過片段着色器透明WebGL對象?
- 12. 使用着色器RGB到YUV
- 13. 通行證自定義屬性自定義片段着色器
- 14. 着色器和opengl轉換
- 15. 着色器程序到節點+片段着色器
- 16. 從幾何着色器的片段着色器
- 17. 頂點着色器和片段着色器
- 18. 片段着色器:在着色器中沒有統一名稱
- 19. 我是否需要通過幾何着色器將顏色傳遞給片段着色器?
- 20. 如何交換當前片段着色器顏色與鄰居?
- 21. 通過片段/像素着色器改變特定的像素顏色?(opengl)
- 22. 統一計算着色器,通過SV_DispatchThreadID進行數組索引
- 23. 通過計算着色器在OpenGL中進行光線追蹤
- 24. 使用片段着色器的塊過濾器
- 25. OpenGL片段着色器不寫入SSBO
- 26. 紋理中的OpenGL片段着色器
- 27. GLSL片段着色器語法錯誤
- 28. QGraphicsScene&OpenGL片段着色器不工作
- 29. 具有片段着色器的OpenGL SetPixel
- 30. 片段着色器 - 繪製線條?
你有沒有在任何地方發佈過?我正在努力:a)學習YUV-RGB轉換和b)同時學習Cg。我希望能夠看看你做了什麼。 – moswald 2009-06-17 19:39:09