This commit is contained in:
Kseninia Mikhaylova 2024-09-26 15:13:21 +03:00
parent 2af002ee2b
commit 5cb7d19f3f
1 changed files with 19 additions and 20 deletions

View File

@ -15,27 +15,26 @@ const set_metaril_func = (scene: any, material: any) => {
const uvAttribute = el.geometry.getAttribute('uv'); const uvAttribute = el.geometry.getAttribute('uv');
const uvs = []; const uvs = [];
for (let i = 0; i < uvAttribute.count; i++) { if (uvAttribute) {
uvs.push(uvAttribute.getX(i), uvAttribute.getY(i)); for (let i = 0; i < uvAttribute.count; i++) {
uvs.push(uvAttribute.getX(i), uvAttribute.getY(i));
}
// Вычисление минимальных и максимальных UV
const minU = Math.min(...uvs.filter((_, index) => index % 2 === 0)); // X координаты
const maxU = Math.max(...uvs.filter((_, index) => index % 2 === 0));
const minV = Math.min(...uvs.filter((_, index) => index % 2 === 1)); // Y координаты
const maxV = Math.max(...uvs.filter((_, index) => index % 2 === 1));
// Определите размеры текстуры на поверхности
const surfaceWidth = maxU - minU;
const surfaceHeight = (maxV - minV) * el.scale.y;
material.normalMap.wrapS = RepeatWrapping;
material.normalMap.wrapT = RepeatWrapping;
material.normalMap.repeat.set(surfaceWidth, surfaceHeight);
material.normalMap.needsUpdate = true
} }
// Вычисление минимальных и максимальных UV
const minU = Math.min(...uvs.filter((_, index) => index % 2 === 0)); // X координаты
const maxU = Math.max(...uvs.filter((_, index) => index % 2 === 0));
const minV = Math.min(...uvs.filter((_, index) => index % 2 === 1)); // Y координаты
const maxV = Math.max(...uvs.filter((_, index) => index % 2 === 1));
// Определите размеры текстуры на поверхности
const surfaceWidth = maxU - minU;
const surfaceHeight = (maxV - minV) * el.scale.y;
material.normalMap.wrapS = RepeatWrapping;
material.normalMap.wrapT = RepeatWrapping;
material.normalMap.repeat.set(surfaceWidth, surfaceHeight);
material.normalMap.needsUpdate = true
console.log(`Ширина текстуры на поверхности: ${surfaceWidth * 128}`);
console.log(`Высота текстуры на поверхности: ${surfaceHeight * 128}`);
} }
if (el.material) el.material = material if (el.material) el.material = material