MBHaxe/src/shaders/DirLight.hx
2022-12-08 19:03:16 +05:30

44 lines
836 B
Haxe

package shaders;
import h3d.scene.fwd.Light;
class DirLight extends Light {
var dshader:DirLightShader;
public var direction:h3d.Vector;
public function new(?dir:h3d.Vector, ?parent) {
dshader = new DirLightShader();
super(dshader, parent);
priority = 100;
direction = dir;
if (dir != null)
setDirection(dir);
}
override function get_color() {
return dshader.color;
}
override function set_color(v) {
return dshader.color = v;
}
override function get_enableSpecular() {
return dshader.enableSpecular;
}
override function set_enableSpecular(b) {
return dshader.enableSpecular = b;
}
override function getShadowDirection():h3d.Vector {
return absPos.front();
}
override function emit(ctx) {
dshader.direction.load(absPos.front());
dshader.direction.normalize();
super.emit(ctx);
}
}