很暗紋理我認爲,當你申請一個顏色在OpenGL紋理的對象時,它乘以glColor的顏色和紋理數據的顏色來判斷實際上把什麼顏色。這對於淺色紋理來說很好,但它對於嘗試着色更深的紋理是一個問題,因爲如果你的紋理髮黑並嘗試着色成紅色,它仍然會變成同樣陰暗的黑色。有沒有人知道任何黑客或技術來設置glColor時顯着減輕黑暗紋理的顏色?Colorozing在OpenGL
1
A
回答
0
第一照亮所述紋理,則上色如常。
要亮的質感,兩個基本技術:
- 添加劑增白:添加一個恆定值,每一個紋理像素。
- 乘增亮:由大於1例如大的值乘以每紋素將所有東西都乘以1.1,亮度爲+ 10%。
1
你描述的這種情況是基本的GL_MODULATE行爲,這是一個普通的簡單乘法。
根據什麼平臺,或GL版本上,你可以,你可以考慮:
使用着色器,讓你做你的紋理圖像幾乎任何操作
使用其他更完整的TexEnv模式來替換GL_MODULATE;我不確定哪個適合你,但是有足夠的創造力,也許one of those可能適合你。我想我記得TexEnv有很多擴展,這可能也是有用的。
0
Gamma校正可能在這裏發揮作用。用紅色點亮黑色仍然是黑色的,這是預期的。然而,如果「黑色」(非黑色)的東西仍然出現「大部分黑色」,那麼這表明出現了問題。
圖片,包括紋理,往往保存爲sRGB,因爲大多數人都有自己的顯示器設置了這種方式,無論如何,因此顯示在屏幕上時,這個看起來最適合大多數人。不幸的是,如果你用這些值進行數學運算,那就不再是真的了!
如果支持EXT_texture_sRGB(核心2.1版本),你應該嘗試加載紋理時,使用相應的「S」不變。否則,您也可以手動在着色器中進行數學運算。
=====>useful gamma literature
相關問題
- 1. OpenGL的:在使用OpenGL
- 2. iPhone的OpenGL-ES:在OpenGL UISwipeGestureRecognizer
- 3. 在OpenGL
- 4. 在OpenGL
- 5. 在OpenGL
- 6. 在OpenGL
- 7. 在OpenGL
- 8. 在OpenGL
- 9. 在OpenGL
- 10. OpenGL或OpenGL ES
- 11. OpenGL VBO在Haskell
- 12. 通過在OpenGL
- 13. 用OpenGL在Android
- 14. 字體在OpenGL
- 15. 在OpenGL 3+
- 16. 重疊在OpenGL
- 17. OpenGL或在Android
- 18. 在OpenGL ES
- 19. 呈現在OpenGL
- 20. 在OpenGL ES
- 21. 呈現在OpenGL
- 22. 在opengl- C++
- 23. 旋轉在OpenGL
- 24. 幫助在OpenGL
- 25. glewInit()在OpenGL中
- 26. 模型在OpenGL
- 27. 如何在OpenGL
- 28. 扭捏在OpenGL
- 29. 毛刺在OpenGL
- 30. OpenGL到OpenGL-ES - glRectf()