【发布时间】:2011-09-28 20:06:30
【问题描述】:
我有一个基于 2d 瓦片的地图和高度图图像,我想用它来使地图看起来不那么平坦。但我是 SFML 中使用的 GLSL 的新手。我正在寻找一些 GLSL 着色器,我可以将平铺纹理和高度图的一部分传递给相同的坐标或其他东西来创建高度错觉。但是我自己做所有事情,我没有时间为我想使用的这个着色器学习 GLSL,所以感谢您的任何回复(最好是如果有人可以发布一些着色器代码并为傻瓜解释它是怎么回事在.cpp文件中使用)
【问题讨论】:
-
“我没有时间为此学习 GLSL”不太可能让你走得更远,因为不太可能有人会为你编写所有代码,包括着色器绑定,基于一个相当模糊的描述。然而,给你一些想法:给高地打火机的阴影会给出一个廉价的 AO 近似值,这种近似值会给人一种深度印象。使用 dFdx/dFdy 您可以估计地形法线指向的位置。确定太阳的光矢量,并取点积。这使得面向“太阳”的山坡更亮,也给人一种深度的错觉。