dev #84

Merged
ksenia_mikhailova merged 141 commits from dev into main 2024-10-03 15:30:24 +03:00
2 changed files with 32 additions and 11 deletions
Showing only changes of commit 3420b488fc - Show all commits

View File

@ -154,7 +154,7 @@ watch([instanced_lamelle, lamelle_color], setLamellesColor)
<template v-for="item in pillar"> <template v-for="item in pillar">
<TresMesh v-bind="item.clone()" /> <TresMesh v-bind="item.clone()" />
</template> </template>
<template v-for="i in (lamelles_count % 6)"> <template v-for="i in (lamelles_count % 4)">
<TresMesh v-bind="brace.clone()" :position-y="brace_h * (i - 1)" /> <TresMesh v-bind="brace.clone()" :position-y="brace_h * (i - 1)" />
</template> </template>
</TresGroup> </TresGroup>
@ -163,7 +163,7 @@ watch([instanced_lamelle, lamelle_color], setLamellesColor)
<template v-for="item in pillar"> <template v-for="item in pillar">
<TresObject3D v-bind="item.clone()" /> <TresObject3D v-bind="item.clone()" />
</template> </template>
<template v-for="i in (lamelles_count % 6)"> <template v-for="i in (lamelles_count % 4)">
<TresMesh v-bind="brace.clone()" :position-y="brace_h * (i - 1)" /> <TresMesh v-bind="brace.clone()" :position-y="brace_h * (i - 1)" />
</template> </template>
</TresGroup> </TresGroup>

View File

@ -1,4 +1,4 @@
import { Color, DoubleSide, MeshBasicMaterial, MeshStandardMaterial, RepeatWrapping, Texture, TextureLoader, Vector2 } from "three" import { Color, DataTexture, DoubleSide, MeshBasicMaterial, MeshStandardMaterial, RepeatWrapping, RGBFormat, Texture, TextureLoader, Vector2 } from "three"
import { useLoader, type TresLoader } from '@tresjs/core' import { useLoader, type TresLoader } from '@tresjs/core'
import { getFilename, patterns, type patternTypes } from "~/components/pattern" import { getFilename, patterns, type patternTypes } from "~/components/pattern"
@ -21,7 +21,28 @@ for (let index = 0; index < patterns.length; index++) {
loaded_patterns[filename] = useLoader(TextureLoader, filename) loaded_patterns[filename] = useLoader(TextureLoader, filename)
} }
} }
const test_texture = useLoader(TextureLoader, '/texture/test_texture.jpg') function generateNoiseTexture(width: number, height: number) {
const size = width * height;
const data = new Uint8Array( 4 * size );
const color = new Color( 0xffffff );
for ( let i = 0; i < size; i ++ ) {
const r = Math.floor( Math.random() * 255 );
const g = 0;
const b = Math.floor( Math.random() * 255 );
const stride = i * 4;
data[ stride ] = r;
data[ stride + 1 ] = g;
data[ stride + 2 ] = b;
data[ stride + 3 ] = 255;
}
// used the buffer to create a DataTexture
const texture = new DataTexture( data, width, height );
texture.needsUpdate = true;
return texture;
}
export const set_material = (scene: any, color: any, pattern: { pattern: patternTypes, count: number } | undefined = undefined) => { export const set_material = (scene: any, color: any, pattern: { pattern: patternTypes, count: number } | undefined = undefined) => {
let c = color let c = color
@ -48,13 +69,13 @@ export const set_material = (scene: any, color: any, pattern: { pattern: pattern
}) })
} }
} }
test_texture.then((res: Texture) => { const noiseTexture = generateNoiseTexture(64, 64);
// res.wrapT = RepeatWrapping; if (pattern && pattern.pattern !== undefined) {
// res.repeat.set(1, 10); noiseTexture.wrapT = RepeatWrapping;
res.needsUpdate = true noiseTexture.repeat.set(1, pattern.count);
material.map = res; noiseTexture.needsUpdate = true
material.normalMap = res; }
}) material.normalMap = noiseTexture;
if (scene) set_metaril_func(scene, material) if (scene) set_metaril_func(scene, material)
else console.log(scene) else console.log(scene)