diff --git a/.gitattributes b/.gitattributes index e621493..0254b98 100644 --- a/.gitattributes +++ b/.gitattributes @@ -1,2 +1,3 @@ packages/client/public/model/*.glb filter=lfs diff=lfs merge=lfs -text packages/client/public/env/*.png filter=lfs diff=lfs merge=lfs -text +packages/client/public/model/obras/*.glb filter=lfs diff=lfs merge=lfs -text diff --git a/packages/client/public/model/obras/carolina.glb b/packages/client/public/model/obras/carolina.glb new file mode 100644 index 0000000..7e673cf --- /dev/null +++ b/packages/client/public/model/obras/carolina.glb @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:336369acfb06f6b4082d9aa1e828f1519c40c739aca7470769ec78089b8de2f2 +size 12388 diff --git a/packages/client/public/model/obras/gaston.glb b/packages/client/public/model/obras/gaston.glb new file mode 100644 index 0000000..e16d0f7 --- /dev/null +++ b/packages/client/public/model/obras/gaston.glb @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d716abf308a3e043d96439973569f40032fff313c181f6f4f33bfc66cd8c1105 +size 9748 diff --git a/packages/client/public/model/obras/julian.glb b/packages/client/public/model/obras/julian.glb new file mode 100644 index 0000000..2d5d0b6 --- /dev/null +++ b/packages/client/public/model/obras/julian.glb @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f0a3bb6a243e07e215852db21c7fb2b25980da8fa17c4c37178472e4a2699a35 +size 185616 diff --git a/packages/client/public/model/obras/julieta.glb b/packages/client/public/model/obras/julieta.glb new file mode 100644 index 0000000..7686917 --- /dev/null +++ b/packages/client/public/model/obras/julieta.glb @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6c4374dac2ed960485bbdb9b35c963ec53ab75c3037ac110211854bfa6aede06 +size 1363172 diff --git a/packages/client/public/model/obras/mateo.glb b/packages/client/public/model/obras/mateo.glb new file mode 100644 index 0000000..fc1c1b6 --- /dev/null +++ b/packages/client/public/model/obras/mateo.glb @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:47635a6d30461b7ef245ec44efc20459cc59bc1e3f8e1f7ba90d052447818c04 +size 229188 diff --git a/packages/client/public/model/obras/proyector.glb b/packages/client/public/model/obras/proyector.glb new file mode 100644 index 0000000..e16d0f7 --- /dev/null +++ b/packages/client/public/model/obras/proyector.glb @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d716abf308a3e043d96439973569f40032fff313c181f6f4f33bfc66cd8c1105 +size 9748 diff --git a/packages/client/public/model/obras/santiaga.glb b/packages/client/public/model/obras/santiaga.glb new file mode 100644 index 0000000..0f64dcd --- /dev/null +++ b/packages/client/public/model/obras/santiaga.glb @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fbe88d69305198fc7aca45a2263a95efc5fbe8d1024832ee8e99617e579ff177 +size 491968 diff --git a/packages/client/src/3d/Artwork.tsx b/packages/client/src/3d/Artwork.tsx index c72e954..9627c14 100644 --- a/packages/client/src/3d/Artwork.tsx +++ b/packages/client/src/3d/Artwork.tsx @@ -32,11 +32,13 @@ const Artwork: React.FC = ({ - {model ?? null} + + {model ?? null} + ) diff --git a/packages/client/src/3d/ArtworkCollection.tsx b/packages/client/src/3d/ArtworkCollection.tsx index 2b49df7..dd12489 100644 --- a/packages/client/src/3d/ArtworkCollection.tsx +++ b/packages/client/src/3d/ArtworkCollection.tsx @@ -3,15 +3,43 @@ import React from 'react' import Artwork from './Artwork' import data from '../data/obras.json' +import Julieta from './models/obras/Julieta' +import Santiaga from './models/obras/Santiaga' +import Carolina from './models/obras/Carolina' +import Julian from './models/obras/Julian' +import Mateo from './models/obras/Mateo' +import Gaston from './models/obras/Gaston' +// import Daniela from './models/obras/Daniela' +// import Pedro from './models/obras/Pedro' +// import DiegoGuido from './models/obras/DiegoGuido' + +const models: (JSX.Element | null)[] = [ + null, // , + null, // Juan cruz + null, // Lucia cordoba + null, // Camila + , + null, // Lucia Novello + , + , + null, // Edu + , + , + , + null, //, + null, //, +] + function ArtworkCollection(props: JSX.IntrinsicElements['group']) { return ( {data.map((obra, index) => { + const model = models[index] let rotation = Math.PI / 8 + (index * Math.PI) / 8 if (index > 6) rotation += Math.PI / 8 return ( = ({ 'gl_FragColor = vec4( packNormalToRGB( normal ), opacity );', [ 'gl_FragColor = vec4( packNormalToRGB( normal ), opacity );', - 'gl_FragColor.a = 1.0 - pow( gl_FragCoord.z, 0.75 );', + 'gl_FragColor.a = 1.0 - pow( gl_FragCoord.z, 4.75 );', 'gl_FragColor.r = 0.70;', 'gl_FragColor.g = 0.85;', 'gl_FragColor.b = 1.0;', diff --git a/packages/client/src/3d/models/obras/Carolina.tsx b/packages/client/src/3d/models/obras/Carolina.tsx new file mode 100644 index 0000000..07dad12 --- /dev/null +++ b/packages/client/src/3d/models/obras/Carolina.tsx @@ -0,0 +1,41 @@ +/* +Auto-generated by: https://github.com/pmndrs/gltfjsx +*/ + +import * as THREE from 'three' +import React, { useRef } from 'react' +import { useGLTF } from '@react-three/drei/useGLTF' + +import { GLTF } from 'three/examples/jsm/loaders/GLTFLoader' + +type GLTFResult = GLTF & { + nodes: { + Sphere001: THREE.Mesh + ['Sphere.001_1']: THREE.Mesh + } + materials: { + ['sphere_inner.001']: THREE.MeshStandardMaterial + ['sphere_outer.001']: THREE.MeshStandardMaterial + } +} + +export default function Model(props: JSX.IntrinsicElements['group']) { + const group = useRef() + const { nodes, materials } = useGLTF('/model/obras/carolina.glb') as GLTFResult + return ( + + + + + + + ) +} + +useGLTF.preload('/mode/obras/carolina.glb') diff --git a/packages/client/src/3d/models/obras/Gaston.tsx b/packages/client/src/3d/models/obras/Gaston.tsx new file mode 100644 index 0000000..81c8a16 --- /dev/null +++ b/packages/client/src/3d/models/obras/Gaston.tsx @@ -0,0 +1,30 @@ +/* +Auto-generated by: https://github.com/pmndrs/gltfjsx +*/ + +import * as THREE from 'three' +import React, { useRef } from 'react' +import { useGLTF } from '@react-three/drei/useGLTF' + +import { GLTF } from 'three/examples/jsm/loaders/GLTFLoader' + +type GLTFResult = GLTF & { + nodes: { + logs002: THREE.Mesh + } + materials: { + gaston: THREE.MeshBasicMaterial + } +} + +export default function Model(props: JSX.IntrinsicElements['group']) { + const group = useRef() + const { nodes, materials } = useGLTF('/model/obras/gaston.glb') as GLTFResult + return ( + + + + ) +} + +useGLTF.preload('/model/obras/gaston.glb') diff --git a/packages/client/src/3d/models/obras/Julian.tsx b/packages/client/src/3d/models/obras/Julian.tsx new file mode 100644 index 0000000..b221d3d --- /dev/null +++ b/packages/client/src/3d/models/obras/Julian.tsx @@ -0,0 +1,38 @@ +/* +Auto-generated by: https://github.com/pmndrs/gltfjsx +*/ + +import * as THREE from 'three' +import React, { useRef } from 'react' +import { useGLTF } from '@react-three/drei/useGLTF' + +import { GLTF } from 'three/examples/jsm/loaders/GLTFLoader' + +type GLTFResult = GLTF & { + nodes: { + Cube012: THREE.Mesh + ['Cube.012_1']: THREE.Mesh + ['Cube.012_2']: THREE.Mesh + } + materials: { + ['wood.001']: THREE.MeshStandardMaterial + ['stars.001']: THREE.MeshStandardMaterial + black: THREE.MeshBasicMaterial + } +} + +export default function Model(props: JSX.IntrinsicElements['group']) { + const group = useRef() + const { nodes, materials } = useGLTF('/model/obras/julian.glb') as GLTFResult + return ( + + + + + + + + ) +} + +useGLTF.preload('/model/obras/julian.glb') diff --git a/packages/client/src/3d/models/obras/Julieta.tsx b/packages/client/src/3d/models/obras/Julieta.tsx new file mode 100644 index 0000000..4f1fd03 --- /dev/null +++ b/packages/client/src/3d/models/obras/Julieta.tsx @@ -0,0 +1,51 @@ +/* +Auto-generated by: https://github.com/pmndrs/gltfjsx +*/ + +import * as THREE from 'three' +import React, { useRef } from 'react' +import { useGLTF } from '@react-three/drei/useGLTF' + +import { GLTF } from 'three/examples/jsm/loaders/GLTFLoader' + +type GLTFResult = GLTF & { + nodes: { + dome_ground_mesh014: THREE.Mesh + ['dome_ground_mesh.014_1']: THREE.Mesh + ['dome_ground_mesh.014_2']: THREE.Mesh + ['dome_ground_mesh.014_3']: THREE.Mesh + } + materials: { + ['metal.001']: THREE.MeshStandardMaterial + ['light.002']: THREE.MeshStandardMaterial + ['julieta_caja.001']: THREE.MeshStandardMaterial + ['marble.006']: THREE.MeshStandardMaterial + } +} + +export default function Model(props: JSX.IntrinsicElements['group']) { + const group = useRef() + const { nodes, materials } = useGLTF('/model/obras/julieta.glb') as GLTFResult + return ( + + + + + + + ) +} + +useGLTF.preload('/model/obras/julieta.glb') diff --git a/packages/client/src/3d/models/obras/Mateo.tsx b/packages/client/src/3d/models/obras/Mateo.tsx new file mode 100644 index 0000000..2441aa1 --- /dev/null +++ b/packages/client/src/3d/models/obras/Mateo.tsx @@ -0,0 +1,41 @@ +/* +Auto-generated by: https://github.com/pmndrs/gltfjsx +*/ + +import * as THREE from 'three' +import React, { useRef } from 'react' +import { useGLTF } from '@react-three/drei/useGLTF' + +import { GLTF } from 'three/examples/jsm/loaders/GLTFLoader' + +type GLTFResult = GLTF & { + nodes: { + Cube008: THREE.Mesh + ['Cube.008_1']: THREE.Mesh + ['Cube.008_2']: THREE.Mesh + } + materials: { + ['Mango.002']: THREE.MeshStandardMaterial + ['Ojos.002']: THREE.MeshStandardMaterial + ['marble.003']: THREE.MeshStandardMaterial + } +} + +export default function Model(props: JSX.IntrinsicElements['group']) { + const group = useRef() + const { nodes, materials } = useGLTF('/model/obras/mateo.glb') as GLTFResult + return ( + + + + + + + + ) +} + +useGLTF.preload('/model/obras/mateo.glb') diff --git a/packages/client/src/3d/models/obras/Proyector.tsx b/packages/client/src/3d/models/obras/Proyector.tsx new file mode 100644 index 0000000..0974ab6 --- /dev/null +++ b/packages/client/src/3d/models/obras/Proyector.tsx @@ -0,0 +1,44 @@ +/* +Auto-generated by: https://github.com/pmndrs/gltfjsx +*/ + +import * as THREE from 'three' +import React, { useRef } from 'react' +import { useGLTF } from '@react-three/drei/useGLTF' + +import { GLTF } from 'three/examples/jsm/loaders/GLTFLoader' + +type GLTFResult = GLTF & { + nodes: { + Cube013: THREE.Mesh + ['Cube.013_1']: THREE.Mesh + ['Cube.013_2']: THREE.Mesh + } + materials: { + ['VrHeadset cuerpo.002']: THREE.MeshStandardMaterial + ['light.001']: THREE.MeshStandardMaterial + ['projection.001']: THREE.MeshStandardMaterial + } +} + +export default function Model(props: JSX.IntrinsicElements['group']) { + const group = useRef() + const { nodes, materials } = useGLTF('/model/obras/proyector.glb') as GLTFResult + return ( + + + + + + + + ) +} + +useGLTF.preload('/model/obras/proyector.glb') diff --git a/packages/client/src/3d/models/obras/Santiaga.tsx b/packages/client/src/3d/models/obras/Santiaga.tsx new file mode 100644 index 0000000..aae6c65 --- /dev/null +++ b/packages/client/src/3d/models/obras/Santiaga.tsx @@ -0,0 +1,53 @@ +/* +Auto-generated by: https://github.com/pmndrs/gltfjsx +*/ + +import * as THREE from 'three' +import React, { useRef } from 'react' +import { useGLTF } from '@react-three/drei/useGLTF' + +import { GLTF } from 'three/examples/jsm/loaders/GLTFLoader' + +type GLTFResult = GLTF & { + nodes: { + mirror_geometry003: THREE.Mesh + ['mirror_geometry.003_1']: THREE.Mesh + ['mirror_geometry.003_2']: THREE.Mesh + ['mirror_geometry.003_3']: THREE.Mesh + } + materials: { + ['Vidrio.001']: THREE.MeshStandardMaterial + ['Madera.001']: THREE.MeshStandardMaterial + ['VrHeadset cuerpo.001']: THREE.MeshStandardMaterial + ['marble.001']: THREE.MeshStandardMaterial + } +} + +export default function Model(props: JSX.IntrinsicElements['group']) { + const group = useRef() + const { nodes, materials } = useGLTF('/model/obras/santiaga.glb') as GLTFResult + return ( + + + + + + + + + ) +} + +useGLTF.preload('/model/obras/santiaga.glb') diff --git a/packages/client/tsconfig.json b/packages/client/tsconfig.json index 902534b..7b1d3c6 100644 --- a/packages/client/tsconfig.json +++ b/packages/client/tsconfig.json @@ -1,7 +1,11 @@ { "compilerOptions": { "target": "es5", - "lib": ["dom", "dom.iterable", "esnext"], + "lib": [ + "dom", + "dom.iterable", + "esnext" + ], "allowJs": true, "skipLibCheck": true, "esModuleInterop": true, @@ -16,6 +20,7 @@ "noEmit": true, "jsx": "react" }, - - "include": ["src"] + "include": [ + "src" + ] }