TinkoprofPlus
Silver Üye
- Katılım
- 30 Eki 2025
- Mesajlar
- 60
- Beğeniler
- 19
Minecraft'da motionblur, shader, glow gibi efektler ve bunu gerektiren modüller için gauissan kernel hesabı gerekir. Bende bunu Minecraft için Util haline getirip forumda paylaşma kararı aldım.
package dev.astera.allreqs.utility;
public class GaussianKernel {
private final int size;
private final float[] kernel;
public GaussianKernel(final int size) {
this.size = size;
this.kernel = new float[size];
}
public void compute() {
final float sigma = this.size / 2.0F;
float kernelSum = 0.0F;
for (int i = 0; i < this.size; ++i) {
final float multiplier = i / sigma;
this.kernel = 1.0F / (Math.abs(sigma) * 2.50662827463F) * (float) Math.exp(-0.5 * multiplier * multiplier);
kernelSum += i > 0 ? this.kernel * 2 : this.kernel[0];
}
for (int i = 0; i < size; ++i) {
this.kernel /= kernelSum;
}
}
public int getSize() {
return size;
}
public float[] getKernel() {
return kernel;
}
}
package dev.astera.allreqs.utility;
public class GaussianKernel {
private final int size;
private final float[] kernel;
public GaussianKernel(final int size) {
this.size = size;
this.kernel = new float[size];
}
public void compute() {
final float sigma = this.size / 2.0F;
float kernelSum = 0.0F;
for (int i = 0; i < this.size; ++i) {
final float multiplier = i / sigma;
this.kernel = 1.0F / (Math.abs(sigma) * 2.50662827463F) * (float) Math.exp(-0.5 * multiplier * multiplier);
kernelSum += i > 0 ? this.kernel * 2 : this.kernel[0];
}
for (int i = 0; i < size; ++i) {
this.kernel /= kernelSum;
}
}
public int getSize() {
return size;
}
public float[] getKernel() {
return kernel;
}
}