我正在開發一個簡單的2D遊戲在OpenGL ES的iPhone的顏色變化的色調。我的問題是我想使用不同的色調渲染紋理。基本上我想改變我渲染的紋理顏色的色調。只需更改glColor就行,因爲它也會影響沒有顏色的圖像部分。有任何想法嗎?的OpenGL ES - 質地
0
A
回答
4
感謝您的澄清,這是遠從我的初步瞭解。請注意,您提供給OpenGL ES的紋理已具有色調,所以您要求的是更改現有色調。
首先,我回答了一個問題,說:
讓我們開始需要採取什麼措施來紋理像素。由於OpenGL紋理存儲爲RGB,要轉換紋理的色調,您需要轉到RGB-> HSL->應用新的色調 - > RGB。 你可以找到實際的數學做RGB-> HSL和迴轉換here。你想如何選擇新的色調,我想你必須填寫。
最大的問題是當應該轉變發生。那麼,OpenGL管道將不會讓你在閱讀紋理時進行復雜的轉換(ES 1.1中不是這樣 - -ES 2.0 fragment shaders
會有幫助,但成本很高)。因此,您必須在GL ES紋理管線之外進行所有轉換。根據您需要更改色調的頻率,我的建議是在將它們加載到OpenGL ES之前按要求離線(並存儲各種主題紋理),或根據需要計算新色調的新紋理。
據我所知,GL ES 1.1沒有任何內置的工具,以幫助直接做到這一點。現在
,退後一步,我不知道什麼是防止你在2個紋理分離出,如果你可以用2個紋理住在運行時適用。我指出的數學無論紋理是如何生成的(從理論上講,色調應該是恆定的,如果我理解你的情況是正確的),它將明度與飽和度分開。在任何輸入紋理上離線執行計算都應該相當容易?
相關問題
- 1. OpenGL ES 2.0的質地夾緊
- 2. 顛倒的質地? | OpenGL-ES 2.0(android)
- 3. OpenGL ES 2.0的質感黑色
- 4. OpenGL ES中質量不好的紋理
- 5. 如何在OpenGL ES 2.0的在像素級的旋轉質地
- 6. 渲染CIImage到OpenGL ES 2.0的質地在iOS
- 7. OpenGL ES 2.0失去圖像質量
- 8. OpenGL的土壤質地
- 9. 錯誤地選擇OpenGL ES
- 10. OpenGL或OpenGL ES
- 11. iOS OpenGL ES與Android OpenGL ES兼容?
- 12. 的OpenGL ES 2.0:在紋理
- 13. 的OpenGL ES glReadPixels
- 14. 與OpenGL ES的
- 15. 的OpenGL ES glPushClientAttrib
- 16. OpenGL到OpenGL-ES - glRectf()
- 17. 在OpenGL ES 2.0的
- 18. 從OpenGL ES 1.1過渡到OpenGL ES 2.0
- 19. 混合OpenGL ES 1和OpenGL ES 2
- 20. iPhone的OpenGL-ES:在OpenGL UISwipeGestureRecognizer
- 21. iPhone OpenGL ES Texture2D Masking
- 22. 在OpenGL ES
- 23. 影響其他紋理的OpenGL-ES中的材質
- 24. OpenGL ES或android.graphics?
- 25. OpenGL ES 2.0紋理
- 26. OPENGL ES glRotatef
- 27. Qt + OpenGL ES + N900
- 28. iPhone:Quartz2d與OpenGL ES
- 29. 的OpenGL不會綁定我的質地
- 30. 渲染在全屏居中質地和與在OpenGL右比ES 2.0
你能澄清爲什麼你認爲glColor不起作用嗎?你是什麼意思,「這也影響了圖像的部分無顏色」 – Bahbar 2009-10-13 15:57:39
我猜有一個應該留白色質地的白色部分,但隨後有質感的紅色部分是被認爲是綠色代替。在這種情況下 - 兩個單獨的透明紋理怎麼樣,一個是不應該改變的部分,一個是,你可以使用不同的glColor設置來渲染? – 2009-10-13 23:32:01
大衛是對的。黑色和灰色的部分也應該保持黑色和灰色。我使用的紋理是預先呈現在3D程序中,漸變從藍色變成白色,這使得難以將它們分成兩個紋理。 – 2009-10-14 09:27:37