我目前正在编写一个程序来渲染我的 Minecraft 世界。它渲染可爱!问题是下一点涉及的数学:我想给我的函数一个平均高度和一个当前高度。
如果高度低于平均高度,我将用黑色覆盖这部分,它的透明度将取决于数量,但也会被钳制以免使其变黑。
这是我目前拥有的:
public Color getHeightColor(float averageHeight, float height) {
if (averageHeight > height) {
return new Color(0, 0, 0, clamp(height / averageHeight, 0f, 0.8f));
} else {
return new Color(1, 1, 1, clamp(averageHeight / height, 0f, 0.8f));
}
}
不幸的是,这并没有做任何我想做的事情,我只是想不出一个好的方法来做这件事,因为我的数学非常糟糕。
编辑:经过一番思考,我将取消亮化,而是将其变暗以赋予其深度感。
你们中的任何人都可以指出我正确的方向吗?