-
-
Notifications
You must be signed in to change notification settings - Fork 223
Expand file tree
/
Copy pathChroma3DShader.java
More file actions
38 lines (31 loc) · 1.21 KB
/
Chroma3DShader.java
File metadata and controls
38 lines (31 loc) · 1.21 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
package codes.biscuit.skyblockaddons.shader.chroma;
import codes.biscuit.skyblockaddons.shader.UniformType;
import codes.biscuit.skyblockaddons.utils.Utils;
import lombok.Setter;
import javax.vecmath.Vector3d;
/**
* This shader shows a chroma color on a pixel depending on its position in the world
* <p>
* This shader does:
* - Take in account its position in 3-dimensional space
* <p>
* This shader does not:
* - Preserve the brightness and saturation of the original color
* - Work with textures
*/
public class Chroma3DShader extends ChromaShader {
@Setter private float alpha = 1;
public Chroma3DShader() throws Exception {
super("chroma_3d");
}
@Override
protected void registerUniforms() {
super.registerUniforms();
registerUniform(UniformType.VEC3, "playerWorldPosition", () -> {
Vector3d viewPosition = Utils.getPlayerViewPosition();
return new Float[] {(float) viewPosition.x, (float) viewPosition.y, (float) viewPosition.z};
});
registerUniform(UniformType.FLOAT, "alpha", () -> alpha);
registerUniform(UniformType.FLOAT, "brightness", () -> main.getConfigValues().getChromaBrightness().floatValue());
}
}