3d 帮助我使用WebGL和具有许多纹理飞溅/混合的高度贴图

3d 帮助我使用WebGL和具有许多纹理飞溅/混合的高度贴图,3d,webgl,heightmap,3d,Webgl,Heightmap,我想开始一个新的爱好项目,这是一个在WebGL上的实时战略游戏。我过去的RTS游戏很简单,是用XNA/C制作的。现在我想把它放到网上,我想要一个合适的地形。我发现地形飞溅很难理解/实现,是否已经有一个好的实现,我可以在我的下一个游戏中烘焙 或者,是否有支持此功能的库/框架 我正在寻找资源/文章/教程/库/框架,这些资源/文章/教程/库/框架可以帮助我使用多个纹理巧妙地混合在一起的高度地图地形。我将把我的答案一分为二,这样你就有了你要问的内容和你“应该”问的内容:-) 你最好的办法就是好好掌握GL

我想开始一个新的爱好项目,这是一个在WebGL上的实时战略游戏。我过去的RTS游戏很简单,是用XNA/C制作的。现在我想把它放到网上,我想要一个合适的地形。我发现地形飞溅很难理解/实现,是否已经有一个好的实现,我可以在我的下一个游戏中烘焙

或者,是否有支持此功能的库/框架


我正在寻找资源/文章/教程/库/框架,这些资源/文章/教程/库/框架可以帮助我使用多个纹理巧妙地混合在一起的高度地图地形。

我将把我的答案一分为二,这样你就有了你要问的内容和你“应该”问的内容:-)


你最好的办法就是好好掌握GLSL。如果你正在做这件事或为此感到高兴,你应该从像这样的教程中学习。使用着色器实现地形引擎非常简单(您可以基于任意纹理轻松地“splat”纹理,这些纹理传达了应该在何处绘制纹理),并且使用当前gen视频卡中的马力,您几乎不需要进行地形优化,因为在视频卡中所有操作都是并行完成的。请记住,WebGL更像OpenGL 2.0+而不是1.0,并且没有即时功能,所有功能都在VBOs的保留模式下工作

但是,除了地形渲染之外,您的项目还会遇到某些问题

目前,浏览器中的鼠标锁定存在某些问题,在没有用户干预的情况下,大多数浏览器中普遍存在音频处理和全屏显示问题。我(曾经)在基于WebGL编写游戏,但在遇到重大障碍之前,你可以做很多事情,相信我,在这些问题得到解决之前,你将无法取得很大进展:


我没有包括其他浏览器,因为如果您的目标是WebGL Chrome/Chrome,那么Firefox就是您现在所拥有的一切。

“WebGL更像OpenGL 2.0+”->“WebGL更像OpenGL ES 2.0”(OpenGL ES是OpenGL规范的精简版本,主要针对移动GPU)非常好的信息,但这并不是我想要的。。。您能否详细介绍一下“使用着色器的地形引擎非常简单”?你能考虑写一篇关于这篇文章的博客吗?当然,我会详细解释我的答案,其中包括一个“理论”着色器的片段。