我想为我的游戏创建一个雾效果,但我找不到任何有关如何使用OpenGL ES 2.0的教程。如果任何人有链接教程,可以提供解释或源代码,我将不胜感激。如何使用Open GL ES 2.0或WebGL创建雾?
3
A
回答
4
在OpenGL ES 2.0编程指南(第202页)中,有一节介绍使用着色器复制固定功能雾。源代码可在谷歌代码项目(MIT许可证)上找到。这是一个巨大的rendermonkey XML文件,但是the shader source embedded in it is pretty straightforward(我会直接在这里复制它,但不知道是否可以)。
这个想法是使用特定像素的距离作为雾函数的输入。在这个例子中,他们计算顶点着色器中的眼到顶点的距离,然后通过将其作为变量传递给每个片段来提供插值的距离。
然后他们做一个简单的线性雾功能。有一些最小距离,即零雾色和最大距离,其中输出全部是雾色。您可以通过像素距离落在最大值和最小值之间的位置混合(线性内插)雾颜色和碎片颜色。如书中提到的,一旦你有了这个工作,就没有理由限制自己的线性雾。您可以很容易地使其成为指数,取决于其他变量(例如到地面的距离,由于纹理查找或噪声函数而导致的变量),通过它使上帝的光线等。
从您的问题中不清楚你究竟是什么因为如果你想要真正充满活力,那就是另一场球赛(并不总是值得你获得效果的开发工作和性能成本)。对于现有的WebGL代码,您可能会尝试类似Three Dreams of Black的加载屏幕,您可以在source code中找到某处,或者您可以更多地使用基于模拟的实际modeling the fog as a 3d fluid。
相关问题
- 1. 如何将Open GL ES 2.0转换为WebGL和/或Open GL?
- 2. Webgl GLSL/Open GL ES 2.0
- 3. Open GL ES 2.0 Android底纹
- 4. Open GL ES 2.0广告牌
- 5. Open GL ES 2.0协调系统
- 6. OPEN GL ES 2.0 - glGetAttribLocation返回-1
- 7. 问题glTexGen中的Open GL ES 2.0
- 8. GL ES 2.0无法创建opengl对象
- 9. 如何测试基于Open GL ES 2.0的应用程序?
- 10. Sketch Up and Open GL ES
- 11. 在iPhone上使用open gl es 2.0显示图像
- 12. Open GL ES内存管理
- 13. Open GL ES 2.0:如何查询着色器中的值?
- 14. Android Canvas或Open GL ES for 2D游戏?
- 15. 在Open GL ES 3.0中使用GL_PRIMITIVE_RESTART_FIXED_INDEX
- 16. 没有OPEN GL 2.0
- 17. 使用Open Gl的Iphone 3D游戏Es
- 18. Android open gl es 2.0高度图(实用程序员)book
- 19. 带Open GL ES的UIKit粒子系统?
- 20. 的Open GL ES 1.1和iPhone游戏
- 21. 如何使用Open GL ES裁剪图像?
- 22. Android - open gl es 1.1 - 绘制效率
- 23. 标准化顶点和法线坐标Open GL ES 2.0
- 24. 在Open GL ES 2.0中从深度缓冲区获取黑色
- 25. 的Open GL - ES 2.0:动态更改颜色
- 26. Open GL - ES 2.0:画一条简单的线
- 27. Open GL ES 2.0多重绘制元素和绘制顺序
- 28. 在Open GL ES 2.0中绘制一条线
- 29. 上的Open GL ES渲染到风景模式默认为2.0
- 30. 在纹理中画一条线Open GL ES 2.0 Android
“一雾效果”雾效果有什么样*种* – 2012-07-27 23:24:17
[使用着色器在opengl中绘制深度值]的可能重复(http://stackoverflow.com/questions/6408851/draw-the-depth-value-in-opengl-using-shaders) – bobobobo 2013-07-12 18:46:48