troika-three-text
Advanced tools
Comparing version 0.34.0-textoutline.5 to 0.34.0-textoutline.6
{ | ||
"name": "troika-three-text", | ||
"version": "0.34.0-textoutline.5+6830461", | ||
"version": "0.34.0-textoutline.6+ecfee22", | ||
"description": "SDF-based text rendering for Three.js", | ||
@@ -28,3 +28,3 @@ "author": "Jason Johnston <jason.johnston@protectwise.com>", | ||
}, | ||
"gitHead": "68304611684615371f046cd2f7e1053413af263f" | ||
"gitHead": "ecfee226bb6c33b169fddb27ecee13853c8e2a1c" | ||
} |
@@ -85,30 +85,28 @@ import { createDerivedMaterial, voidMainRegExp } from 'troika-three-utils' | ||
if (clampedGlyphUV != vTroikaGlyphUV) { | ||
// Naive extrapolated distance: | ||
float distToUnclamped = length((vTroikaGlyphUV - clampedGlyphUV) * vTroikaGlyphDimensions); | ||
distance += distToUnclamped; | ||
// Extrapolate distance when outside bounds: | ||
distance += clampedGlyphUV == vTroikaGlyphUV ? 0.0 : | ||
length((vTroikaGlyphUV - clampedGlyphUV) * vTroikaGlyphDimensions); | ||
${''/* | ||
// TODO more refined extrapolated distance by adjusting for angle of gradient at edge... | ||
// This has potential but currently gives very jagged extensions, maybe due to precision issues? | ||
float uvStep = 1.0 / uTroikaSDFGlyphSize; | ||
vec2 neighbor1UV = clampedGlyphUV + ( | ||
vTroikaGlyphUV.x != clampedGlyphUV.x ? vec2(0.0, uvStep * sign(0.5 - vTroikaGlyphUV.y)) : | ||
vTroikaGlyphUV.y != clampedGlyphUV.y ? vec2(uvStep * sign(0.5 - vTroikaGlyphUV.x), 0.0) : | ||
vec2(0.0) | ||
); | ||
vec2 neighbor2UV = clampedGlyphUV + ( | ||
vTroikaGlyphUV.x != clampedGlyphUV.x ? vec2(0.0, uvStep * -sign(0.5 - vTroikaGlyphUV.y)) : | ||
vTroikaGlyphUV.y != clampedGlyphUV.y ? vec2(uvStep * -sign(0.5 - vTroikaGlyphUV.x), 0.0) : | ||
vec2(0.0) | ||
); | ||
float neighbor1Distance = troikaGlyphUvToDistance(neighbor1UV); | ||
float neighbor2Distance = troikaGlyphUvToDistance(neighbor2UV); | ||
float distToUnclamped = length((vTroikaGlyphUV - clampedGlyphUV) * vTroikaGlyphDimensions); | ||
float distToNeighbor = length((clampedGlyphUV - neighbor1UV) * vTroikaGlyphDimensions); | ||
float gradientAngle1 = min(asin(abs(neighbor1Distance - distance) / distToNeighbor), PI / 2.0); | ||
float gradientAngle2 = min(asin(abs(neighbor2Distance - distance) / distToNeighbor), PI / 2.0); | ||
distance += (cos(gradientAngle1) + cos(gradientAngle2)) / 2.0 * distToUnclamped; | ||
*/} | ||
} | ||
${''/* | ||
// TODO more refined extrapolated distance by adjusting for angle of gradient at edge... | ||
// This has potential but currently gives very jagged extensions, maybe due to precision issues? | ||
float uvStep = 1.0 / uTroikaSDFGlyphSize; | ||
vec2 neighbor1UV = clampedGlyphUV + ( | ||
vTroikaGlyphUV.x != clampedGlyphUV.x ? vec2(0.0, uvStep * sign(0.5 - vTroikaGlyphUV.y)) : | ||
vTroikaGlyphUV.y != clampedGlyphUV.y ? vec2(uvStep * sign(0.5 - vTroikaGlyphUV.x), 0.0) : | ||
vec2(0.0) | ||
); | ||
vec2 neighbor2UV = clampedGlyphUV + ( | ||
vTroikaGlyphUV.x != clampedGlyphUV.x ? vec2(0.0, uvStep * -sign(0.5 - vTroikaGlyphUV.y)) : | ||
vTroikaGlyphUV.y != clampedGlyphUV.y ? vec2(uvStep * -sign(0.5 - vTroikaGlyphUV.x), 0.0) : | ||
vec2(0.0) | ||
); | ||
float neighbor1Distance = troikaGlyphUvToDistance(neighbor1UV); | ||
float neighbor2Distance = troikaGlyphUvToDistance(neighbor2UV); | ||
float distToUnclamped = length((vTroikaGlyphUV - clampedGlyphUV) * vTroikaGlyphDimensions); | ||
float distToNeighbor = length((clampedGlyphUV - neighbor1UV) * vTroikaGlyphDimensions); | ||
float gradientAngle1 = min(asin(abs(neighbor1Distance - distance) / distToNeighbor), PI / 2.0); | ||
float gradientAngle2 = min(asin(abs(neighbor2Distance - distance) / distToNeighbor), PI / 2.0); | ||
distance += (cos(gradientAngle1) + cos(gradientAngle2)) / 2.0 * distToUnclamped; | ||
*/} | ||
@@ -163,4 +161,3 @@ #if defined(IS_DEPTH_MATERIAL) || defined(IS_DISTANCE_MATERIAL) | ||
extensions: { | ||
derivatives: true, | ||
fragDepth: true | ||
derivatives: true | ||
}, | ||
@@ -167,0 +164,0 @@ uniforms: { |
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Manifest confusion
Supply chain riskThis package has inconsistent metadata. This could be malicious or caused by an error when publishing the package.
Found 1 instance in 1 package
Long strings
Supply chain riskContains long string literals, which may be a sign of obfuscated or packed code.
Found 1 instance in 1 package
Manifest confusion
Supply chain riskThis package has inconsistent metadata. This could be malicious or caused by an error when publishing the package.
Found 1 instance in 1 package
Long strings
Supply chain riskContains long string literals, which may be a sign of obfuscated or packed code.
Found 1 instance in 1 package
1585883
25753