lanczosfilter.java

来自「Sunflow是一个照片级的渲染系统」· Java 代码 · 共 26 行

JAVA
26
字号
package org.sunflow.core.filter;

import org.sunflow.core.Filter;

public class LanczosFilter implements Filter {
    public float getSize() {
        return 4.0f;
    }

    public float get(float x, float y) {
        return sinc1d(x * 0.5f) * sinc1d(y * 0.5f);
    }

    private float sinc1d(float x) {
        x = Math.abs(x);
        if (x < 1e-5f)
            return 1;
        if (x > 1.0f)
            return 0;
        x *= Math.PI;
        float sinc = (float) Math.sin(3 * x) / (3 * x);
        float lanczos = (float) Math.sin(x) / x;
        return sinc * lanczos;
    }

}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?