我通過使用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. 將表面着色器轉換爲片段着色器
- 2. GLSL:頂點着色器無片段着色片段着色器
- 3. three.js - 片段着色器基礎知識 - 通過它的位置爲片段着色
- 4. 無法通過統一的浮動數組片段着色器
- 5. 片段着色器處理紋理數據並通過
- 6. 通行證自定義屬性自定義片段着色器
- 7. 着色器和opengl轉換
- 8. 頂點着色器和片段着色器
- 9. 着色器程序到節點+片段着色器
- 10. 從幾何着色器的片段着色器
- 11. 我是否需要通過幾何着色器將顏色傳遞給片段着色器?
- 12. 如何交換當前片段着色器顏色與鄰居?
- 13. 通過片段/像素着色器改變特定的像素顏色?(opengl)
- 14. 通過計算着色器在OpenGL中進行光線追蹤
- 15. glLight在片段着色器(屏幕pos)
- 16. Android OPEN GL ES 2片段着色器
- 17. 紋理中的OpenGL片段着色器
- 18. 紋理上的片段着色器
- 19. 具有片段着色器的OpenGL SetPixel
- 20. GLFW - 無法編譯片段着色器
- 21. GLSL片段着色器語法錯誤
- 22. QGraphicsScene&OpenGL片段着色器不工作
- 23. 結合多個opengl片段着色器
- 24. 提高Opengl的2.0片段着色器
- 25. Opengles片段着色器達到效果
- 26. WebGL片段着色器有多大?
- 27. 片段着色器順利不透明
- 28. 片段着色器輸出值
- 29. 帶片段着色器的GL_REPLACE?
- 30. 片段着色器:從紋理
你有沒有在任何地方發佈過?我正在努力:a)學習YUV-RGB轉換和b)同時學習Cg。我希望能夠看看你做了什麼。 – moswald 2009-06-17 19:39:09