我正在製作一個簡單的像素自上而下的遊戲。我想在那裏添加一些簡單的燈光,但我不知道做到這一點的最佳方式。這張照片是我想要實現的光的一個例子。
http://imgur.com/a/PpYiR
當我搜索到這個任務時,我只看到了這種光的解決方案。
https://www.youtube.com/watch?v=mVlYsGOkkyM
但是當光源靠近時,我需要增加紋理部分的亮度。如果我在不使用UV的情況下對GL_QUADS使用紋理,我該如何做到這一點?openGL簡單的2d光
-3
A
回答
-1
好的,我的回答可能不會完全回答你的問題,但它會引導你走向正確的道路。
看起來您正在使用即時模式,現在已折舊並更改爲VBO(頂點緩衝對象)將使您的工作更輕鬆。
照片中的照明似乎是手繪的。即使是最好的算法,也無法完全實現這種照明風格。
你真的有兩個選擇來解決你的問題,他們都需要紋理座標和着色器。
您可以使用光照貼圖,它使用預先生成的紋理乘以四邊形紋理。這是非常快的,但需要某種工具來生成光照貼圖,這可能在目前有點頭痛。
相反,學習基於着色器的照明。 3D照明存在許多教程,但2D的原理保持不變。 有些Google會爲您提供實現着色器所需的資源。 一個基本距離的基於照明算法將看起來像這樣:
GL_Color = texturecolor * 1.0/distance(light_position,world_position);
它乘以紋理像素的由紋理像素多遠是從光位置的顏色。有一些教程更深入地討論了這一點。
如果您想讓照明效果看起來像第一張圖像中的「復古」,則可以在後處理步驟中對顏色進行縮減採樣。
+0
這不是問題的答案。 – Rabbid76
相關問題
- 1. XNA一個簡單的2D點光源
- 2. Iphone上的OpenGL ES:簡單的2D動畫(插值/補間)
- 3. iPhone - 繪製2D與OpenGL ES的,快速和簡單
- 4. OpenGL-簡單的2D裁剪/遮擋方法?
- 5. OpenGL的:沒有光一個簡單的立方體過剩
- 6. opencv - 簡單的2D <-> 2D變換
- 7. OpenGL:製作陰影和光線卷的最簡單方法?
- 8. 使用VBOs在OpenGL中進行簡單2D剔除
- 9. 簡單的2D運動
- 10. 簡單的2D Java遊戲
- 11. OpenGL簡單的VBO麻煩
- 12. 簡單的OpenGL實現
- 13. Opengl,簡單的動畫
- 14. 簡單的紋理在OpenGL
- 15. 光流的簡單情況
- 16. webGL/openGL中多個2D點光源的最高性能方法? [動態燈光]
- 17. 2d旋轉opengl
- 18. 簡單的2D單元陣列追加
- 19. 尋求幫助創建2D OpenGL-ES 2.0遊戲的基本,簡單的方法
- 20. OpenGL中的全光?
- 21. OpenGL ES強光閃光燈
- 22. OpenGL光照
- 23. OpenGL環境光
- 24. OpenGL多燈光
- 25. 使用OpenGL for 2D
- 26. Android 2D opengl線圈
- 27. 2D例如用OpenGL
- 28. Android OpenGL ES和2D
- 29. OpenGl ES 2D Android redraw
- 30. OpenGL C++ SDL 2D Shadows
您是否想過着色?請閱讀[我如何問一個好問題?](https://stackoverflow.com/help/how-to-ask) – Rabbid76
對於固定管道(無着色器),您可以使用[原生OpenGL燈](https:/ /www.cse.msu.edu/~cse872/tutorial3.html)設置爲點光源。或者對自定義模式使用alpha紋理+混合。 – Spektre