From 0f32b7c1eff8af7ff5cfa627472760b8e4817098 Mon Sep 17 00:00:00 2001 From: dwelle Date: Sun, 9 Apr 2023 19:52:18 +0200 Subject: [PATCH] wip: adaptive roughness --- src/renderer/renderElement.ts | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/src/renderer/renderElement.ts b/src/renderer/renderElement.ts index e6f99e90d..0226b2f4a 100644 --- a/src/renderer/renderElement.ts +++ b/src/renderer/renderElement.ts @@ -389,6 +389,16 @@ export const setShapeForElement = ( export const invalidateShapeForElement = (element: ExcalidrawElement) => shapeCache.delete(element); +function adjustRoughness(size: number, roughness: number): number { + if (size >= 50) { + return roughness; + } + const factor = 2 + (50 - size) / 10; + + // console.log({ ret: roughness / factor, roughness, factor, size }); + return roughness / factor; +} + export const generateRoughOptions = ( element: ExcalidrawElement, continuousPath = false, @@ -415,7 +425,10 @@ export const generateRoughOptions = ( // calculate them (and we don't want the fills to be modified) fillWeight: element.strokeWidth / 2, hachureGap: element.strokeWidth * 4, - roughness: element.roughness, + roughness: adjustRoughness( + Math.min(element.width, element.height), + element.roughness, + ), stroke: element.strokeColor, preserveVertices: continuousPath, };