From 67851820a9bb4098dcd6277c02314d02059a9aaa Mon Sep 17 00:00:00 2001 From: min Date: Mon, 8 Jun 2026 17:03:17 +0300 Subject: [PATCH] =?UTF-8?q?fix(import):=20ambient=20=3D=2040%=20=D0=BE?= =?UTF-8?q?=D1=82=20=D1=86=D0=B2=D0=B5=D1=82=D0=B0=20(=D0=B1=D0=B5=D0=B7?= =?UTF-8?q?=20=D0=BF=D0=B5=D1=80=D0=B5=D1=81=D0=B2=D0=B5=D1=82=D0=B0)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ambient=diffuse (100%) суммировался с прямым светом и давал пересвет (особенно на дорогах/полу с #cccccc). 40% — баланс: тень окрашена (видна как цвет, не чёрная), прямой свет = чистый diffuse без пересвета. --- src/editor/engine/PrimitiveManager.js | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/editor/engine/PrimitiveManager.js b/src/editor/engine/PrimitiveManager.js index b1094fc..d0471ad 100644 --- a/src/editor/engine/PrimitiveManager.js +++ b/src/editor/engine/PrimitiveManager.js @@ -508,10 +508,9 @@ export class PrimitiveManager { const mat = new StandardMaterial(matName, this.scene); const dc = Color3.FromHexString(color || '#888888'); mat.diffuseColor = dc; - // ambient = СОБСТВЕННЫЙ цвет (умеренный). Это даёт цвет в тени - // равный ~30% от собственного, а не белый (как делал ambient=(1,1,1)). - // На светлом полу: белые цвета остаются белыми, тёмные грани не чёрные. - mat.ambientColor = dc; + // ambient = 40% от цвета. Roblox-look: тень окрашена, но не + // суммируется с прямым светом в пересвет. Белые остаются белыми. + mat.ambientColor = new Color3(dc.r * 0.4, dc.g * 0.4, dc.b * 0.4); // Если задан textureUrl — подгружаем PNG как diffuseTexture. Это // используется для GD-скинов куба (например /gd/skins/cube_smile.png).