Refactor materials and textures in the project
- Updated the title in index.html from "Textures" to "Materials". - Enhanced script.js by adding GUI controls for material properties and loading various textures. - Removed unused textures: checkerboard-1024x1024.png, checkerboard-8x8.png, and minecraft.png. - Added new textures: environmentMap/2k.hdr, gradients/3.jpg, gradients/5.jpg, and multiple matcap textures (1.png to 8.png). - Implemented a MeshPhysicalMaterial with adjustable properties for metalness, roughness, transmission, and thickness. - Updated object rotations for better visual effects in the scene.
@@ -12,6 +12,7 @@
|
|||||||
"vite-plugin-restart": "^0.4.2"
|
"vite-plugin-restart": "^0.4.2"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
|
"lil-gui": "^0.20.0",
|
||||||
"three": "^0.174.0"
|
"three": "^0.174.0"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -8,6 +8,9 @@ importers:
|
|||||||
|
|
||||||
.:
|
.:
|
||||||
dependencies:
|
dependencies:
|
||||||
|
lil-gui:
|
||||||
|
specifier: ^0.20.0
|
||||||
|
version: 0.20.0
|
||||||
three:
|
three:
|
||||||
specifier: ^0.174.0
|
specifier: ^0.174.0
|
||||||
version: 0.174.0
|
version: 0.174.0
|
||||||
@@ -184,141 +187,141 @@ packages:
|
|||||||
os: [linux]
|
os: [linux]
|
||||||
libc: [glibc]
|
libc: [glibc]
|
||||||
|
|
||||||
'@rollup/[email protected].4':
|
'@rollup/[email protected].5':
|
||||||
resolution: {integrity: sha512-RrPokAb7dmbxFoeO3TloqHyOjgye8RkBhSqmp4aJMIex4c9r46ZstPnleDQOq1t46VOVjwIuwNogIqbodV1Vvg==}
|
resolution: {integrity: sha512-jfkGfTwhQpsiSckPF8r9bU3pn3vyd72NlWaO+TgEO6WPSDnUhXzrNYCHBMOYj0ACaUgjm6eERLF+XV9a6RstoA==}
|
||||||
cpu: [arm]
|
cpu: [arm]
|
||||||
os: [android]
|
os: [android]
|
||||||
|
|
||||||
'@rollup/[email protected].4':
|
'@rollup/[email protected].5':
|
||||||
resolution: {integrity: sha512-JKuJc+pnpks2pjy7L/N3v/cAkZxYlnmuZoD840ldbMI5KDbC4iO9NKwPKYdjYFCMAIIlBzYSFHxIJVYzRo2/8A==}
|
resolution: {integrity: sha512-oGVqyQlxnrz9/ty89oHpU857VUHEl5/Xu4R2lS+aivCTrNnSsbiENzTnNaBsjxH0CNWGPhzHArOLFwo+oKXveA==}
|
||||||
cpu: [arm64]
|
cpu: [arm64]
|
||||||
os: [android]
|
os: [android]
|
||||||
|
|
||||||
'@rollup/[email protected].4':
|
'@rollup/[email protected].5':
|
||||||
resolution: {integrity: sha512-krw5uS2STmvJ02x0uTXHbqQNuz+9eZ1iw+qXk9dmW2gvV4jV7O2hEoOnuhFrpOPiel1mBFtqbxYZZtC46hXLOw==}
|
resolution: {integrity: sha512-bW7B8xMEq8n99Q3ieEcPRGuphurdZAaFzQc9Efyyw3FL6DZO6pMy9xhdN+kBoD7Sy05xNXSr4OyPPnpkYriS/A==}
|
||||||
cpu: [arm64]
|
cpu: [arm64]
|
||||||
os: [darwin]
|
os: [darwin]
|
||||||
|
|
||||||
'@rollup/[email protected].4':
|
'@rollup/[email protected].5':
|
||||||
resolution: {integrity: sha512-wsTxtgApb4PrOsNJIm0FZ1h3WvCC+k9uxLJ4ad75hgoS4NiRes2SoJFlDAyMwiUY8IssDqGcHbXuN0sx1tfF1A==}
|
resolution: {integrity: sha512-YSwBS86QeHOGlrxJ1PSOIZSkzRL/JmKeunhc+lV6M1a6En8QuVCD/T/qIA0J4Gd2Y86RIOBYrLcOUtqGh9+/1w==}
|
||||||
cpu: [x64]
|
cpu: [x64]
|
||||||
os: [darwin]
|
os: [darwin]
|
||||||
|
|
||||||
'@rollup/[email protected].4':
|
'@rollup/[email protected].5':
|
||||||
resolution: {integrity: sha512-GUOnQlyZe3yAXhWOtOMsn5Qkrv5E5mZXa0thbARWi5Ei2szlVXJFQhddZ4HbAzh8q92w5twp+CQvs/eFanz9YQ==}
|
resolution: {integrity: sha512-2fST8lILgl7cKbme/1KDdPCmbXbG+gqoV3bHp19L0ypX/3akYMBVdOunPleRCwonoLnXOZ/0F+Mt/v8POFmfcQ==}
|
||||||
cpu: [arm64]
|
cpu: [arm64]
|
||||||
os: [freebsd]
|
os: [freebsd]
|
||||||
|
|
||||||
'@rollup/[email protected].4':
|
'@rollup/[email protected].5':
|
||||||
resolution: {integrity: sha512-/Y7f3QuxjzPKsjA/rfEDa3+0vXqyjmJ50Ln8dPpCmWkKTrUoWHG1cWhTqaAMLob2m2nESWuC7yGrREz019Ztqg==}
|
resolution: {integrity: sha512-cpIxQCP9J+EVad0a6LO1kY3ZGODlk80VlI+2I96B8xMcdHZ4pLVhfQ49JFpYqjPF91FFkQWftf57YlDcTiw9yQ==}
|
||||||
cpu: [x64]
|
cpu: [x64]
|
||||||
os: [freebsd]
|
os: [freebsd]
|
||||||
|
|
||||||
'@rollup/[email protected].4':
|
'@rollup/[email protected].5':
|
||||||
resolution: {integrity: sha512-81wiiX3v7aqy+T+bT61TJ78yJjRquqFFTTbAPt08imfQQzkPIW8t6aJbkTagtCCrXMNc9D66+geqlK7ydLPNqA==}
|
resolution: {integrity: sha512-r9fGh3eFs3e/udWh5ZjXQtxiYK/xoFxQaYR/cELxac/Udkl5Th+IsFm0CX3Kl9hmUH/we7EoMpjJgeQNnE0+IA==}
|
||||||
cpu: [arm]
|
cpu: [arm]
|
||||||
os: [linux]
|
os: [linux]
|
||||||
libc: [glibc]
|
libc: [glibc]
|
||||||
|
|
||||||
'@rollup/[email protected].4':
|
'@rollup/[email protected].5':
|
||||||
resolution: {integrity: sha512-9kmDIvNZqdoHOBZgNtpTBeLWYO/LVipM3H/j62P8848/l/VPEQL6N3uxU9pvP1oZAsXyC2MEnFP3ovRjo7WYNQ==}
|
resolution: {integrity: sha512-xdvFdp7OM6KLJviJT2g/YuRSUjnZgGHk4RNgwIbN7X6cPugOucV60DdHXWzsBVCUdrGb6qSXnJQrrAKMmQuj3Q==}
|
||||||
cpu: [arm]
|
cpu: [arm]
|
||||||
os: [linux]
|
os: [linux]
|
||||||
libc: [musl]
|
libc: [musl]
|
||||||
|
|
||||||
'@rollup/[email protected].4':
|
'@rollup/[email protected].5':
|
||||||
resolution: {integrity: sha512-CcnXHWnXg69g+DX5VWL3FHts3qMRN2uVEHX+BZvGLdd07/gXkn3ePjYtO1LDJvxkGKVHMclKBRa1QUTH+6toYQ==}
|
resolution: {integrity: sha512-rRqILAndyzHzP7T9NFQrq+4HFWNhqkqkKur7eiBpfLmz01PO0JKx5Vchu3YllE4YXI/Ftgq/szrDWg5GJ0mI8g==}
|
||||||
cpu: [arm64]
|
cpu: [arm64]
|
||||||
os: [linux]
|
os: [linux]
|
||||||
libc: [glibc]
|
libc: [glibc]
|
||||||
|
|
||||||
'@rollup/[email protected].4':
|
'@rollup/[email protected].5':
|
||||||
resolution: {integrity: sha512-iFOibiHnTRuhrWLlRsOQFdZJJIa7S8OwkneJr4ocALP16u5yk6lWLINFwhHaEqBFMsKDUZofLkGos7+CPzGB3g==}
|
resolution: {integrity: sha512-Gf4X3qVMucayUvux6aXXPgXovocSFUC0rrffDuPI/S2nHhNMhjcZxsrAFYCOF350PRreW1XwzFj3CT/3bKsWCw==}
|
||||||
cpu: [arm64]
|
cpu: [arm64]
|
||||||
os: [linux]
|
os: [linux]
|
||||||
libc: [musl]
|
libc: [musl]
|
||||||
|
|
||||||
'@rollup/[email protected].4':
|
'@rollup/[email protected].5':
|
||||||
resolution: {integrity: sha512-XnWYMI7euHlb5a871xPja+Gm7DRCFU+FGRrtS2sMq9N8FvqtpagUy6gD4YOemC5MRk9xbh8+jYMEJbigFQwsgA==}
|
resolution: {integrity: sha512-+s5qA0TNM0qm8PK/a5gt/1Hpx+NV08uSuCncvhziIlQzT6AEV2fnUQo7eBtFTFO0nA9scauvoR2HusfXmQnO4w==}
|
||||||
cpu: [loong64]
|
cpu: [loong64]
|
||||||
os: [linux]
|
os: [linux]
|
||||||
libc: [glibc]
|
libc: [glibc]
|
||||||
|
|
||||||
'@rollup/[email protected].4':
|
'@rollup/[email protected].5':
|
||||||
resolution: {integrity: sha512-qGDAlO0U8xedCcsdRm9oaoQY8DAx/QT7uIxJWhCdx0ceIWX783UC9QSYkdpzAe29wNiVfp24+bZdQmn49o45SQ==}
|
resolution: {integrity: sha512-ybb6QvWwWJCbBWqERpc8K3pYVGIrXlG8MEQ8IIuJY6Y9KdHQxoFoNyfkAOtKn1VHu3KuLidXvwrvGR1mEjeWCw==}
|
||||||
cpu: [loong64]
|
cpu: [loong64]
|
||||||
os: [linux]
|
os: [linux]
|
||||||
libc: [musl]
|
libc: [musl]
|
||||||
|
|
||||||
'@rollup/[email protected].4':
|
'@rollup/[email protected].5':
|
||||||
resolution: {integrity: sha512-ru4H6ezD7ysA5EiEK6qkkaEb4modH8CTej6kUy/gQi20u3kB3G7Zn8snXXkeJSCOFKG/rbPPtM/+9Wgas1961w==}
|
resolution: {integrity: sha512-nZb1DtnOyhCmYvsC8A2CwOkopVg+IS1+fPUa7rMOAXtNw5+lLCLLPqd6XAiNrGtoQKsbvIBOwsHnBH/3wnb4HQ==}
|
||||||
cpu: [ppc64]
|
cpu: [ppc64]
|
||||||
os: [linux]
|
os: [linux]
|
||||||
libc: [glibc]
|
libc: [glibc]
|
||||||
|
|
||||||
'@rollup/[email protected].4':
|
'@rollup/[email protected].5':
|
||||||
resolution: {integrity: sha512-2W4MO5WQVJnbJaZdvDb9rhBDuFU1nKIepPFpJUBsTh2k1YY2g+ODViaWuyOAjQ5cOP7NvrvLzt3wvHOoiAvc7w==}
|
resolution: {integrity: sha512-yMbj63Sp89ryrXLWyz+sy+fYD2HpOnMCLGbe4Oa1smclFSUukdtD/BgdiHaAetJNb74URD8U4hM+qG5KVzMEkg==}
|
||||||
cpu: [ppc64]
|
cpu: [ppc64]
|
||||||
os: [linux]
|
os: [linux]
|
||||||
libc: [musl]
|
libc: [musl]
|
||||||
|
|
||||||
'@rollup/[email protected].4':
|
'@rollup/[email protected].5':
|
||||||
resolution: {integrity: sha512-+fxjfuoAmVMCYV5QyjoIpu0cp5DOiOTeqYFk1AVaxGr+/ravWLX89XfQmptsoWcaVy/TGf2hexzbUOrCQIL1CQ==}
|
resolution: {integrity: sha512-mhoan3OJw2kYV/e1jtIdmvUZgyBFeA6zGWsOswmR0Tg19TQbowZuR+JMLID6spbbBN7Zee2ejrgmy3+FxGrIdA==}
|
||||||
cpu: [riscv64]
|
cpu: [riscv64]
|
||||||
os: [linux]
|
os: [linux]
|
||||||
libc: [glibc]
|
libc: [glibc]
|
||||||
|
|
||||||
'@rollup/[email protected].4':
|
'@rollup/[email protected].5':
|
||||||
resolution: {integrity: sha512-jTn8JfHGL4djjFxPuM06LmNUJDsst2jeVlsd9OmIH6zc5sC9K6rIuO4YajXatLUpBmBKl6b35ro1QZocLi+tcA==}
|
resolution: {integrity: sha512-5ZTLmjWbb1VZdjuyhe83K/8QO0/h11midQCBP+X5OYn32ra7eOBoM0ZqtaY4nkgNsYgmdVhMYPoyVPTjUpHf3w==}
|
||||||
cpu: [riscv64]
|
cpu: [riscv64]
|
||||||
os: [linux]
|
os: [linux]
|
||||||
libc: [musl]
|
libc: [musl]
|
||||||
|
|
||||||
'@rollup/[email protected].4':
|
'@rollup/[email protected].5':
|
||||||
resolution: {integrity: sha512-oCJCJL4pXsoDcP2QZ+JVlPTIRc6266zsIaeJJsWImmF7HO0W8nb6HuSgZlMWxJwaPf8ehbSw8yo0EUw925hKsA==}
|
resolution: {integrity: sha512-m53kG+br6PGxOTmgBEM2DHSDs9RVjsyEbUwjJPJGTFm1grWOG8EKJggDCTb60unD4Tjby8fi7/m9XfkEWasVWg==}
|
||||||
cpu: [s390x]
|
cpu: [s390x]
|
||||||
os: [linux]
|
os: [linux]
|
||||||
libc: [glibc]
|
libc: [glibc]
|
||||||
|
|
||||||
'@rollup/[email protected].4':
|
'@rollup/[email protected].5':
|
||||||
resolution: {integrity: sha512-W69hukhZ3KKNRCaMIEzKvcFye42hh0FE1+YoYaf5+Ikacuftoco6yO/xouz0hc5d5W/s3yBro5jRiuEE/Q5vUw==}
|
resolution: {integrity: sha512-6RHPJR1g/uvdYU8uXBnfq3nlqyZCP82Fr6NHgfGoaIeSh0YEqnX/x6uA9MmJJbnSH7swqX4F+CkGdUF+6doiQA==}
|
||||||
cpu: [x64]
|
cpu: [x64]
|
||||||
os: [linux]
|
os: [linux]
|
||||||
libc: [glibc]
|
libc: [glibc]
|
||||||
|
|
||||||
'@rollup/[email protected].4':
|
'@rollup/[email protected].5':
|
||||||
resolution: {integrity: sha512-qiXbGG2jkjXhzXpsFZSR2Xpb8DN/UaxYsbb/STbuR/6fpaDgRmmaq1B/LmtF2wQFOFOSsK2jdE0RZ3a0zHn4QA==}
|
resolution: {integrity: sha512-xs+OXQtEXgpXT0DmA5+U3qnRZHdCST/5HRQxS8wSPZTUZN/EMWeHuSIod32LQklTBZBV9DyfncKBQ8n5V3eFdw==}
|
||||||
cpu: [x64]
|
cpu: [x64]
|
||||||
os: [linux]
|
os: [linux]
|
||||||
libc: [musl]
|
libc: [musl]
|
||||||
|
|
||||||
'@rollup/[email protected].4':
|
'@rollup/[email protected].5':
|
||||||
resolution: {integrity: sha512-nWeM//hxv8mIo6jD7Hu4o48DVmV9pbV6gsKaWU+4NFyqHoPKwrkRiZGLKUhOBk8qNmDmpwFtPKg80Bo/Tn4xiQ==}
|
resolution: {integrity: sha512-e7hD+sl3s+mcLQDZ8pbudBVsdG6r5yN4w3LqG2TJ8sQHDpblWj5lrJs/3m01Cvlxbt4x13zu5thLjgypgtkYzw==}
|
||||||
cpu: [x64]
|
cpu: [x64]
|
||||||
os: [openbsd]
|
os: [openbsd]
|
||||||
|
|
||||||
'@rollup/[email protected].4':
|
'@rollup/[email protected].5':
|
||||||
resolution: {integrity: sha512-s62SQ/vgsRSvMwDkOEfTqfgASF0f26ZNaQuTA6Aok5lrikf89yI2W0gFHvZb2Jpgc6N8JnOKZgCK2iciO3CsxQ==}
|
resolution: {integrity: sha512-GiyJaCf+WpMub/17aPcKk27QMl5W6f+KhdPTjlFOn5akH5Wa/DCM9Stdx5cDfmasyKB08MqpVQ1uJE2RkkpbXg==}
|
||||||
cpu: [arm64]
|
cpu: [arm64]
|
||||||
os: [openharmony]
|
os: [openharmony]
|
||||||
|
|
||||||
'@rollup/[email protected].4':
|
'@rollup/[email protected].5':
|
||||||
resolution: {integrity: sha512-J6wGf8TVGbXJq+HH+ttTvrcfNKPbuZecV6KT1B8I18BC5IURUh5kl4Yl5OEP5eFIUoI5BWxCsyYMhFsDx8kekw==}
|
resolution: {integrity: sha512-+OQ8U2DdoEfXl8T4Fb18AjmEwbXMerKDKCL8yCPAYhKCEEKoul7rkbeGCBFCbAlaGaa7pmtRTpkAJM2LE/i5FA==}
|
||||||
cpu: [arm64]
|
cpu: [arm64]
|
||||||
os: [win32]
|
os: [win32]
|
||||||
|
|
||||||
'@rollup/[email protected].4':
|
'@rollup/[email protected].5':
|
||||||
resolution: {integrity: sha512-zmfrQd/0wu6oJs8Vq8KwY/YtsKSsLtKe/HwAP4Wqy8LhWjeT55fHRAkOhYQ12wI3ayS4Tt12d5CDRD7N96SAYQ==}
|
resolution: {integrity: sha512-KanvAZrPKbDBFwrgiU9yEVpQoox9QPV1WZOXX7HudJQY+eSlu82CtWxDU8WtuRRvtN5EGkLczkd6Y6DTcvm9wA==}
|
||||||
cpu: [ia32]
|
cpu: [ia32]
|
||||||
os: [win32]
|
os: [win32]
|
||||||
|
|
||||||
'@rollup/[email protected].4':
|
'@rollup/[email protected].5':
|
||||||
resolution: {integrity: sha512-qPzHqdj9rfUD+w79dtE07zi/kFwKyCJqplp5K5ygeLTp7jLpAoc16OAH39HSmRC9UpozaecsleI8uAdEj6v2yw==}
|
resolution: {integrity: sha512-1aC3UEWTtRl3RK3VpDJ/Tqk1XI4SLTmXIthAq6wRWo8XiSXJNd+VprJM4/1P4+i6HIaFEFlVi9sTTziniD2tOQ==}
|
||||||
cpu: [x64]
|
cpu: [x64]
|
||||||
os: [win32]
|
os: [win32]
|
||||||
|
|
||||||
'@rollup/[email protected].4':
|
'@rollup/[email protected].5':
|
||||||
resolution: {integrity: sha512-zD6NdeWEByGE9QF9vCrlJ5YQB4oq9q91kPZS37Jwj5hOkvR1lTBSpsKhKDw4IJtbQ35LsTS1HD9DZYGKIshU1Q==}
|
resolution: {integrity: sha512-/gDJaRs4gl0NPIwqCz+6PkpmhhjRAD2j6P4rSNHBzUkO3naEx2mIU0pRle1vUNRQ7mE/+8OOeXLTv/J56FKiQg==}
|
||||||
cpu: [x64]
|
cpu: [x64]
|
||||||
os: [win32]
|
os: [win32]
|
||||||
|
|
||||||
@@ -356,6 +359,9 @@ packages:
|
|||||||
resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==}
|
resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==}
|
||||||
engines: {node: '>=0.12.0'}
|
engines: {node: '>=0.12.0'}
|
||||||
|
|
||||||
|
[email protected]:
|
||||||
|
resolution: {integrity: sha512-k7Ipr0ztqslMA2XvM5z5ZaWhxQtnEOwJBfI/hmSuRh6q4iMG9L0boqqrnZSzBR1jzyJ28OMl47l65ILzRe1TdA==}
|
||||||
|
|
||||||
[email protected]:
|
[email protected]:
|
||||||
resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==}
|
resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==}
|
||||||
engines: {node: '>=8.6'}
|
engines: {node: '>=8.6'}
|
||||||
@@ -372,16 +378,16 @@ packages:
|
|||||||
resolution: {integrity: sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA==}
|
resolution: {integrity: sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA==}
|
||||||
engines: {node: '>=8.6'}
|
engines: {node: '>=8.6'}
|
||||||
|
|
||||||
[email protected].5:
|
[email protected].7:
|
||||||
resolution: {integrity: sha512-RvwwcruNjI1ncT5xRakeyS9Lf8lcItv34KD+aif+VH9kduAyfYBipGh12274xtenIPZ119/R9BdTBa8gAwSh0A==}
|
resolution: {integrity: sha512-qcJu88Q2IWqJsDD529JKMdwGm/dvInW4HvQnRwiH9JtihJvzGOscDtHE3x1pBKeUOTysQ8kVmLnJ2kJu7yhcGA==}
|
||||||
engines: {node: '>=12'}
|
engines: {node: '>=12'}
|
||||||
|
|
||||||
[email protected]:
|
[email protected]:
|
||||||
resolution: {integrity: sha512-u82N74LFzG8ca+dD8puPnplTXoGH4fTPpVGuIbt36G3qvNlkvfD0lEAZSxaly3KX8TS/L1A1gsCEmvKmBcVbkQ==}
|
resolution: {integrity: sha512-u82N74LFzG8ca+dD8puPnplTXoGH4fTPpVGuIbt36G3qvNlkvfD0lEAZSxaly3KX8TS/L1A1gsCEmvKmBcVbkQ==}
|
||||||
engines: {node: ^10 || ^12 || >=14}
|
engines: {node: ^10 || ^12 || >=14}
|
||||||
|
|
||||||
[email protected].4:
|
[email protected].5:
|
||||||
resolution: {integrity: sha512-RXOqwaPsBGjMNMa4sQjDjHieHEZDFoj/Rdr46l2MU5DfEs16wHJPC2RPTPHWhNl+M3aI472LLqFkFKut4SblOg==}
|
resolution: {integrity: sha512-/tqMfgP7GPA3PHhCmuiS4vIjrSVhHLgY++i+dhbG462euyAj7FpM4D9uq1X3BgjlqRdpcOrYhcQtfiQLNc8tqw==}
|
||||||
engines: {node: '>=18.0.0', npm: '>=8.0.0'}
|
engines: {node: '>=18.0.0', npm: '>=8.0.0'}
|
||||||
hasBin: true
|
hasBin: true
|
||||||
|
|
||||||
@@ -528,79 +534,79 @@ snapshots:
|
|||||||
'@napi-rs/[email protected]':
|
'@napi-rs/[email protected]':
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
'@rollup/[email protected].4':
|
'@rollup/[email protected].5':
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
'@rollup/[email protected].4':
|
'@rollup/[email protected].5':
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
'@rollup/[email protected].4':
|
'@rollup/[email protected].5':
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
'@rollup/[email protected].4':
|
'@rollup/[email protected].5':
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
'@rollup/[email protected].4':
|
'@rollup/[email protected].5':
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
'@rollup/[email protected].4':
|
'@rollup/[email protected].5':
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
'@rollup/[email protected].4':
|
'@rollup/[email protected].5':
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
'@rollup/[email protected].4':
|
'@rollup/[email protected].5':
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
'@rollup/[email protected].4':
|
'@rollup/[email protected].5':
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
'@rollup/[email protected].4':
|
'@rollup/[email protected].5':
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
'@rollup/[email protected].4':
|
'@rollup/[email protected].5':
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
'@rollup/[email protected].4':
|
'@rollup/[email protected].5':
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
'@rollup/[email protected].4':
|
'@rollup/[email protected].5':
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
'@rollup/[email protected].4':
|
'@rollup/[email protected].5':
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
'@rollup/[email protected].4':
|
'@rollup/[email protected].5':
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
'@rollup/[email protected].4':
|
'@rollup/[email protected].5':
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
'@rollup/[email protected].4':
|
'@rollup/[email protected].5':
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
'@rollup/[email protected].4':
|
'@rollup/[email protected].5':
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
'@rollup/[email protected].4':
|
'@rollup/[email protected].5':
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
'@rollup/[email protected].4':
|
'@rollup/[email protected].5':
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
'@rollup/[email protected].4':
|
'@rollup/[email protected].5':
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
'@rollup/[email protected].4':
|
'@rollup/[email protected].5':
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
'@rollup/[email protected].4':
|
'@rollup/[email protected].5':
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
'@rollup/[email protected].4':
|
'@rollup/[email protected].5':
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
'@rollup/[email protected].4':
|
'@rollup/[email protected].5':
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
'@types/[email protected]': {}
|
'@types/[email protected]': {}
|
||||||
@@ -638,9 +644,9 @@ snapshots:
|
|||||||
'@esbuild/win32-ia32': 0.25.12
|
'@esbuild/win32-ia32': 0.25.12
|
||||||
'@esbuild/win32-x64': 0.25.12
|
'@esbuild/win32-x64': 0.25.12
|
||||||
|
|
||||||
[email protected]([email protected].5):
|
[email protected]([email protected].7):
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
picomatch: 4.0.5
|
picomatch: 4.0.7
|
||||||
|
|
||||||
[email protected]:
|
[email protected]:
|
||||||
dependencies:
|
dependencies:
|
||||||
@@ -651,6 +657,8 @@ snapshots:
|
|||||||
|
|
||||||
[email protected]: {}
|
[email protected]: {}
|
||||||
|
|
||||||
|
[email protected]: {}
|
||||||
|
|
||||||
[email protected]:
|
[email protected]:
|
||||||
dependencies:
|
dependencies:
|
||||||
braces: 3.0.3
|
braces: 3.0.3
|
||||||
@@ -662,7 +670,7 @@ snapshots:
|
|||||||
|
|
||||||
[email protected]: {}
|
[email protected]: {}
|
||||||
|
|
||||||
[email protected].5: {}
|
[email protected].7: {}
|
||||||
|
|
||||||
[email protected]:
|
[email protected]:
|
||||||
dependencies:
|
dependencies:
|
||||||
@@ -670,36 +678,36 @@ snapshots:
|
|||||||
picocolors: 1.1.1
|
picocolors: 1.1.1
|
||||||
source-map-js: 1.2.1
|
source-map-js: 1.2.1
|
||||||
|
|
||||||
[email protected].4:
|
[email protected].5:
|
||||||
dependencies:
|
dependencies:
|
||||||
'@types/estree': 1.0.9
|
'@types/estree': 1.0.9
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
'@napi-rs/lzma-linux-x64-gnu': 1.5.1
|
'@napi-rs/lzma-linux-x64-gnu': 1.5.1
|
||||||
'@rollup/rollup-android-arm-eabi': 4.62.4
|
'@rollup/rollup-android-arm-eabi': 4.62.5
|
||||||
'@rollup/rollup-android-arm64': 4.62.4
|
'@rollup/rollup-android-arm64': 4.62.5
|
||||||
'@rollup/rollup-darwin-arm64': 4.62.4
|
'@rollup/rollup-darwin-arm64': 4.62.5
|
||||||
'@rollup/rollup-darwin-x64': 4.62.4
|
'@rollup/rollup-darwin-x64': 4.62.5
|
||||||
'@rollup/rollup-freebsd-arm64': 4.62.4
|
'@rollup/rollup-freebsd-arm64': 4.62.5
|
||||||
'@rollup/rollup-freebsd-x64': 4.62.4
|
'@rollup/rollup-freebsd-x64': 4.62.5
|
||||||
'@rollup/rollup-linux-arm-gnueabihf': 4.62.4
|
'@rollup/rollup-linux-arm-gnueabihf': 4.62.5
|
||||||
'@rollup/rollup-linux-arm-musleabihf': 4.62.4
|
'@rollup/rollup-linux-arm-musleabihf': 4.62.5
|
||||||
'@rollup/rollup-linux-arm64-gnu': 4.62.4
|
'@rollup/rollup-linux-arm64-gnu': 4.62.5
|
||||||
'@rollup/rollup-linux-arm64-musl': 4.62.4
|
'@rollup/rollup-linux-arm64-musl': 4.62.5
|
||||||
'@rollup/rollup-linux-loong64-gnu': 4.62.4
|
'@rollup/rollup-linux-loong64-gnu': 4.62.5
|
||||||
'@rollup/rollup-linux-loong64-musl': 4.62.4
|
'@rollup/rollup-linux-loong64-musl': 4.62.5
|
||||||
'@rollup/rollup-linux-ppc64-gnu': 4.62.4
|
'@rollup/rollup-linux-ppc64-gnu': 4.62.5
|
||||||
'@rollup/rollup-linux-ppc64-musl': 4.62.4
|
'@rollup/rollup-linux-ppc64-musl': 4.62.5
|
||||||
'@rollup/rollup-linux-riscv64-gnu': 4.62.4
|
'@rollup/rollup-linux-riscv64-gnu': 4.62.5
|
||||||
'@rollup/rollup-linux-riscv64-musl': 4.62.4
|
'@rollup/rollup-linux-riscv64-musl': 4.62.5
|
||||||
'@rollup/rollup-linux-s390x-gnu': 4.62.4
|
'@rollup/rollup-linux-s390x-gnu': 4.62.5
|
||||||
'@rollup/rollup-linux-x64-gnu': 4.62.4
|
'@rollup/rollup-linux-x64-gnu': 4.62.5
|
||||||
'@rollup/rollup-linux-x64-musl': 4.62.4
|
'@rollup/rollup-linux-x64-musl': 4.62.5
|
||||||
'@rollup/rollup-openbsd-x64': 4.62.4
|
'@rollup/rollup-openbsd-x64': 4.62.5
|
||||||
'@rollup/rollup-openharmony-arm64': 4.62.4
|
'@rollup/rollup-openharmony-arm64': 4.62.5
|
||||||
'@rollup/rollup-win32-arm64-msvc': 4.62.4
|
'@rollup/rollup-win32-arm64-msvc': 4.62.5
|
||||||
'@rollup/rollup-win32-ia32-msvc': 4.62.4
|
'@rollup/rollup-win32-ia32-msvc': 4.62.5
|
||||||
'@rollup/rollup-win32-x64-gnu': 4.62.4
|
'@rollup/rollup-win32-x64-gnu': 4.62.5
|
||||||
'@rollup/rollup-win32-x64-msvc': 4.62.4
|
'@rollup/rollup-win32-x64-msvc': 4.62.5
|
||||||
fsevents: 2.3.3
|
fsevents: 2.3.3
|
||||||
|
|
||||||
[email protected]: {}
|
[email protected]: {}
|
||||||
@@ -708,8 +716,8 @@ snapshots:
|
|||||||
|
|
||||||
[email protected]:
|
[email protected]:
|
||||||
dependencies:
|
dependencies:
|
||||||
fdir: 6.5.0([email protected].5)
|
fdir: 6.5.0([email protected].7)
|
||||||
picomatch: 4.0.5
|
picomatch: 4.0.7
|
||||||
|
|
||||||
[email protected]:
|
[email protected]:
|
||||||
dependencies:
|
dependencies:
|
||||||
@@ -723,10 +731,10 @@ snapshots:
|
|||||||
[email protected]:
|
[email protected]:
|
||||||
dependencies:
|
dependencies:
|
||||||
esbuild: 0.25.12
|
esbuild: 0.25.12
|
||||||
fdir: 6.5.0([email protected].5)
|
fdir: 6.5.0([email protected].7)
|
||||||
picomatch: 4.0.5
|
picomatch: 4.0.7
|
||||||
postcss: 8.5.26
|
postcss: 8.5.26
|
||||||
rollup: 4.62.4
|
rollup: 4.62.5
|
||||||
tinyglobby: 0.2.17
|
tinyglobby: 0.2.17
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
fsevents: 2.3.3
|
fsevents: 2.3.3
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
<head>
|
<head>
|
||||||
<meta charset="UTF-8">
|
<meta charset="UTF-8">
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
<title>Textures</title>
|
<title>Materials</title>
|
||||||
<link rel="stylesheet" href="./style.css">
|
<link rel="stylesheet" href="./style.css">
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
|
|||||||
@@ -1,5 +1,12 @@
|
|||||||
import * as THREE from 'three'
|
import * as THREE from 'three'
|
||||||
import { OrbitControls } from 'three/examples/jsm/controls/OrbitControls.js'
|
import { OrbitControls } from 'three/examples/jsm/controls/OrbitControls.js'
|
||||||
|
import GUI from 'lil-gui'
|
||||||
|
import { RGBELoader } from 'three/examples/jsm/loaders/RGBELoader.js'
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Debug
|
||||||
|
*/
|
||||||
|
const gui = new GUI()
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Base
|
* Base
|
||||||
@@ -13,72 +20,179 @@ const scene = new THREE.Scene()
|
|||||||
/**
|
/**
|
||||||
* Textures
|
* Textures
|
||||||
*/
|
*/
|
||||||
const loadingManager = new THREE.LoadingManager()
|
const textureLoader = new THREE.TextureLoader()
|
||||||
loadingManager.onStart = () =>
|
|
||||||
{
|
|
||||||
console.log('loadingManager: loading started')
|
|
||||||
}
|
|
||||||
loadingManager.onLoad = () =>
|
|
||||||
{
|
|
||||||
console.log('loadingManager: loading finished')
|
|
||||||
}
|
|
||||||
loadingManager.onProgress = () =>
|
|
||||||
{
|
|
||||||
console.log('loadingManager: loading progressing')
|
|
||||||
}
|
|
||||||
loadingManager.onError = () =>
|
|
||||||
{
|
|
||||||
console.log('loadingManager: loading error')
|
|
||||||
}
|
|
||||||
|
|
||||||
const textureLoader = new THREE.TextureLoader(loadingManager)
|
const doorColorTexture = textureLoader.load('./textures/door/color.jpg')
|
||||||
|
const doorAlphaTexture = textureLoader.load('./textures/door/alpha.jpg')
|
||||||
|
const doorAmbientOcclusionTexture = textureLoader.load('./textures/door/ambientOcclusion.jpg')
|
||||||
|
const doorHeightTexture = textureLoader.load('./textures/door/height.jpg')
|
||||||
|
const doorNormalTexture = textureLoader.load('./textures/door/normal.jpg')
|
||||||
|
const doorMetalnessTexture = textureLoader.load('./textures/door/metalness.jpg')
|
||||||
|
const doorRoughnessTexture = textureLoader.load('./textures/door/roughness.jpg')
|
||||||
|
const matcapTexture = textureLoader.load('./textures/matcaps/8.png')
|
||||||
|
const gradientTexture = textureLoader.load('./textures/gradients/5.jpg')
|
||||||
|
|
||||||
// const colorTexture = textureLoader.load('/textures/checkerboard-1024x1024.png')
|
doorColorTexture.colorSpace = THREE.SRGBColorSpace
|
||||||
// const colorTexture = textureLoader.load('/textures/checkerboard-2x2.png')
|
matcapTexture.colorSpace = THREE.SRGBColorSpace
|
||||||
const colorTexture = textureLoader.load(
|
|
||||||
'/textures/minecraft.png',
|
|
||||||
() =>
|
|
||||||
{
|
|
||||||
console.log('textureLoader: loading finished')
|
|
||||||
},
|
|
||||||
() =>
|
|
||||||
{
|
|
||||||
console.log('textureLoader: loading progressing')
|
|
||||||
},
|
|
||||||
() =>
|
|
||||||
{
|
|
||||||
console.log('textureLoader: loading error')
|
|
||||||
}
|
|
||||||
)
|
|
||||||
colorTexture.colorSpace = THREE.SRGBColorSpace
|
|
||||||
colorTexture.wrapS = THREE.MirroredRepeatWrapping
|
|
||||||
colorTexture.wrapT = THREE.MirroredRepeatWrapping
|
|
||||||
// colorTexture.repeat.x = 2
|
|
||||||
// colorTexture.repeat.y = 3
|
|
||||||
// colorTexture.offset.x = 0.5
|
|
||||||
// colorTexture.offset.y = 0.5
|
|
||||||
// colorTexture.rotation = Math.PI * 0.25
|
|
||||||
// colorTexture.center.x = 0.5
|
|
||||||
// colorTexture.center.y = 0.5
|
|
||||||
colorTexture.generateMipmaps = false
|
|
||||||
colorTexture.minFilter = THREE.NearestFilter
|
|
||||||
colorTexture.magFilter = THREE.NearestFilter
|
|
||||||
|
|
||||||
const alphaTexture = textureLoader.load('/textures/door/alpha.jpg')
|
|
||||||
const heightTexture = textureLoader.load('/textures/door/height.jpg')
|
|
||||||
const normalTexture = textureLoader.load('/textures/door/normal.jpg')
|
|
||||||
const ambientOcclusionTexture = textureLoader.load('/textures/door/ambientOcclusion.jpg')
|
|
||||||
const metalnessTexture = textureLoader.load('/textures/door/metalness.jpg')
|
|
||||||
const roughnessTexture = textureLoader.load('/textures/door/roughness.jpg')
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Object
|
* Lights
|
||||||
*/
|
*/
|
||||||
const geometry = new THREE.BoxGeometry(1, 1, 1)
|
// const ambientLight = new THREE.AmbientLight(0xffffff, 1)
|
||||||
console.log(geometry.attributes)
|
// scene.add(ambientLight)
|
||||||
const material = new THREE.MeshBasicMaterial({ map: colorTexture })
|
|
||||||
const mesh = new THREE.Mesh(geometry, material)
|
// const pointLight = new THREE.PointLight(0xffffff, 30)
|
||||||
scene.add(mesh)
|
// pointLight.position.x = 2
|
||||||
|
// pointLight.position.y = 3
|
||||||
|
// pointLight.position.z = 4
|
||||||
|
// scene.add(pointLight)
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Environment map
|
||||||
|
*/
|
||||||
|
const rgbeLoader = new RGBELoader()
|
||||||
|
rgbeLoader.load('./textures/environmentMap/2k.hdr', (environmentMap) =>
|
||||||
|
{
|
||||||
|
environmentMap.mapping = THREE.EquirectangularReflectionMapping
|
||||||
|
|
||||||
|
scene.background = environmentMap
|
||||||
|
scene.environment = environmentMap
|
||||||
|
})
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Objects
|
||||||
|
*/
|
||||||
|
// MeshBasicMaterial
|
||||||
|
// const material = new THREE.MeshBasicMaterial()
|
||||||
|
// material.map = doorColorTexture
|
||||||
|
// material.color = new THREE.Color('#ff0000')
|
||||||
|
// material.wireframe = true
|
||||||
|
// material.transparent = true
|
||||||
|
// material.opacity = 0.5
|
||||||
|
// material.alphaMap = doorAlphaTexture
|
||||||
|
// material.side = THREE.DoubleSide
|
||||||
|
|
||||||
|
// MeshNormalMaterial
|
||||||
|
// const material = new THREE.MeshNormalMaterial()
|
||||||
|
// material.flatShading = true
|
||||||
|
|
||||||
|
// MeshMatcapMaterial
|
||||||
|
// const material = new THREE.MeshMatcapMaterial()
|
||||||
|
// material.matcap = matcapTexture
|
||||||
|
|
||||||
|
// MeshDepthMaterial
|
||||||
|
// const material = new THREE.MeshDepthMaterial()
|
||||||
|
|
||||||
|
// MeshLambertMaterial
|
||||||
|
// const material = new THREE.MeshLambertMaterial()
|
||||||
|
|
||||||
|
// MeshPhongMaterial
|
||||||
|
// const material = new THREE.MeshPhongMaterial()
|
||||||
|
// material.shininess = 100
|
||||||
|
// material.specular = new THREE.Color(0x1188ff)
|
||||||
|
|
||||||
|
// MeshToonMaterial
|
||||||
|
// const material = new THREE.MeshToonMaterial()
|
||||||
|
// gradientTexture.minFilter = THREE.NearestFilter
|
||||||
|
// gradientTexture.magFilter = THREE.NearestFilter
|
||||||
|
// gradientTexture.generateMipmaps = false
|
||||||
|
// material.gradientMap = gradientTexture
|
||||||
|
|
||||||
|
// // MeshStandardMaterial
|
||||||
|
// const material = new THREE.MeshStandardMaterial()
|
||||||
|
// material.metalness = 1
|
||||||
|
// material.roughness = 1
|
||||||
|
// material.map = doorColorTexture
|
||||||
|
// material.aoMap = doorAmbientOcclusionTexture
|
||||||
|
// material.aoMapIntensity = 1
|
||||||
|
// material.displacementMap = doorHeightTexture
|
||||||
|
// material.displacementScale = 0.1
|
||||||
|
// material.metalnessMap = doorMetalnessTexture
|
||||||
|
// material.roughnessMap = doorRoughnessTexture
|
||||||
|
// material.normalMap = doorNormalTexture
|
||||||
|
// material.normalScale.set(0.5, 0.5)
|
||||||
|
// material.transparent = true
|
||||||
|
// material.alphaMap = doorAlphaTexture
|
||||||
|
|
||||||
|
// gui.add(material, 'metalness').min(0).max(1).step(0.0001)
|
||||||
|
// gui.add(material, 'roughness').min(0).max(1).step(0.0001)
|
||||||
|
|
||||||
|
/**
|
||||||
|
* MeshPhysicalMaterial
|
||||||
|
*/
|
||||||
|
// Base material
|
||||||
|
const material = new THREE.MeshPhysicalMaterial()
|
||||||
|
material.metalness = 0
|
||||||
|
material.roughness = 0.15
|
||||||
|
// material.map = doorColorTexture
|
||||||
|
// material.aoMap = doorAmbientOcclusionTexture
|
||||||
|
// material.aoMapIntensity = 1
|
||||||
|
// material.displacementMap = doorHeightTexture
|
||||||
|
// material.displacementScale = 0.1
|
||||||
|
// material.metalnessMap = doorMetalnessTexture
|
||||||
|
// material.roughnessMap = doorRoughnessTexture
|
||||||
|
// material.normalMap = doorNormalTexture
|
||||||
|
// material.normalScale.set(0.5, 0.5)
|
||||||
|
// material.transparent = true
|
||||||
|
// material.alphaMap = doorAlphaTexture
|
||||||
|
|
||||||
|
gui.add(material, 'metalness').min(0).max(1).step(0.0001)
|
||||||
|
gui.add(material, 'roughness').min(0).max(1).step(0.0001)
|
||||||
|
|
||||||
|
// // Clearcoat
|
||||||
|
// material.clearcoat = 1
|
||||||
|
// material.clearcoatRoughness = 0
|
||||||
|
|
||||||
|
// gui.add(material, 'clearcoat').min(0).max(1).step(0.0001)
|
||||||
|
// gui.add(material, 'clearcoatRoughness').min(0).max(1).step(0.0001)
|
||||||
|
|
||||||
|
// // Sheen
|
||||||
|
// material.sheen = 1
|
||||||
|
// material.sheenRoughness = 0.25
|
||||||
|
// material.sheenColor.set(1, 1, 1)
|
||||||
|
|
||||||
|
// gui.add(material, 'sheen').min(0).max(1).step(0.0001)
|
||||||
|
// gui.add(material, 'sheenRoughness').min(0).max(1).step(0.0001)
|
||||||
|
// gui.addColor(material, 'sheenColor')
|
||||||
|
|
||||||
|
// // Iridescence
|
||||||
|
// material.iridescence = 1
|
||||||
|
// material.iridescenceIOR = 1
|
||||||
|
// material.iridescenceThicknessRange = [ 100, 800 ]
|
||||||
|
|
||||||
|
// gui.add(material, 'iridescence').min(0).max(1).step(0.0001)
|
||||||
|
// gui.add(material, 'iridescenceIOR').min(1).max(2.333).step(0.0001)
|
||||||
|
// gui.add(material.iridescenceThicknessRange, '0').min(1).max(1000).step(1)
|
||||||
|
// gui.add(material.iridescenceThicknessRange, '1').min(1).max(1000).step(1)
|
||||||
|
|
||||||
|
// Transmission
|
||||||
|
material.transmission = 1
|
||||||
|
material.ior = 1.5
|
||||||
|
material.thickness = 0.5
|
||||||
|
|
||||||
|
gui.add(material, 'transmission').min(0).max(1).step(0.0001)
|
||||||
|
gui.add(material, 'ior').min(1).max(10).step(0.0001)
|
||||||
|
gui.add(material, 'thickness').min(0).max(1).step(0.0001)
|
||||||
|
|
||||||
|
// Objects
|
||||||
|
const sphere = new THREE.Mesh(
|
||||||
|
new THREE.SphereGeometry(0.5, 64, 64),
|
||||||
|
material
|
||||||
|
)
|
||||||
|
sphere.position.x = - 1.5
|
||||||
|
|
||||||
|
const plane = new THREE.Mesh(
|
||||||
|
new THREE.PlaneGeometry(1, 1, 100, 100),
|
||||||
|
material
|
||||||
|
)
|
||||||
|
|
||||||
|
const torus = new THREE.Mesh(
|
||||||
|
new THREE.TorusGeometry(0.3, 0.2, 64, 128),
|
||||||
|
material
|
||||||
|
)
|
||||||
|
torus.position.x = 1.5
|
||||||
|
|
||||||
|
scene.add(sphere, plane, torus)
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Sizes
|
* Sizes
|
||||||
@@ -110,7 +224,7 @@ window.addEventListener('resize', () =>
|
|||||||
const camera = new THREE.PerspectiveCamera(75, sizes.width / sizes.height, 0.1, 100)
|
const camera = new THREE.PerspectiveCamera(75, sizes.width / sizes.height, 0.1, 100)
|
||||||
camera.position.x = 1
|
camera.position.x = 1
|
||||||
camera.position.y = 1
|
camera.position.y = 1
|
||||||
camera.position.z = 1
|
camera.position.z = 2
|
||||||
scene.add(camera)
|
scene.add(camera)
|
||||||
|
|
||||||
// Controls
|
// Controls
|
||||||
@@ -135,6 +249,15 @@ const tick = () =>
|
|||||||
{
|
{
|
||||||
const elapsedTime = clock.getElapsedTime()
|
const elapsedTime = clock.getElapsedTime()
|
||||||
|
|
||||||
|
// Update objects
|
||||||
|
sphere.rotation.y = 0.1 * elapsedTime
|
||||||
|
plane.rotation.y = 0.1 * elapsedTime
|
||||||
|
torus.rotation.y = 0.1 * elapsedTime
|
||||||
|
|
||||||
|
sphere.rotation.x = - 0.15 * elapsedTime
|
||||||
|
plane.rotation.x = - 0.15 * elapsedTime
|
||||||
|
torus.rotation.x = - 0.15 * elapsedTime
|
||||||
|
|
||||||
// Update controls
|
// Update controls
|
||||||
controls.update()
|
controls.update()
|
||||||
|
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 745 B |
|
Before Width: | Height: | Size: 119 B |
|
After Width: | Height: | Size: 11 KiB |
|
After Width: | Height: | Size: 11 KiB |
|
After Width: | Height: | Size: 50 KiB |
|
After Width: | Height: | Size: 53 KiB |
|
After Width: | Height: | Size: 47 KiB |
|
After Width: | Height: | Size: 45 KiB |
|
After Width: | Height: | Size: 70 KiB |
|
After Width: | Height: | Size: 36 KiB |
|
After Width: | Height: | Size: 24 KiB |
|
After Width: | Height: | Size: 48 KiB |
|
Before Width: | Height: | Size: 239 B |