|
@@ -32,16 +32,20 @@ class LineShader extends hxsl.Shader {
|
|
|
@param var lengthScale : Float;
|
|
|
@param var width : Float;
|
|
|
|
|
|
- function vertex() {
|
|
|
- var dir = input.normal * global.modelView.mat3(); // keep scale
|
|
|
- var pdir = vec4(dir * mat3(camera.view), 1) * camera.proj;
|
|
|
-
|
|
|
- pdir.xy *= 1 / sqrt(pdir.x * pdir.x + pdir.y * pdir.y);
|
|
|
+ var pdir : Vec4;
|
|
|
+
|
|
|
+ function __init__() {
|
|
|
+ {
|
|
|
+ var dir = input.normal * global.modelView.mat3(); // keep scale
|
|
|
+ pdir = vec4(dir * mat3(camera.view), 1) * camera.proj;
|
|
|
+ pdir.xy *= 1 / sqrt(pdir.x * pdir.x + pdir.y * pdir.y);
|
|
|
+ transformedPosition += dir * input.uv.x * lengthScale;
|
|
|
+ transformedNormal = dir.normalize();
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
- transformedPosition += dir * input.uv.x * lengthScale;
|
|
|
- projectedPosition = vec4(transformedPosition, 1) * camera.viewProj;
|
|
|
+ function vertex() {
|
|
|
projectedPosition.xy += (pdir.yx * vec2(1,-1)) * (input.uv.y - 0.5) * projectedPosition.z * global.pixelSize * width;
|
|
|
- transformedNormal = dir.normalize();
|
|
|
}
|
|
|
|
|
|
};
|