Compare commits

...

3 Commits

Author SHA1 Message Date
ebe7c41578 use webp textures 2024-02-22 23:18:34 +01:00
97172aedf3 use cdn.jsdelivr.net 2024-02-22 23:16:43 +01:00
6ddf3b2949 use avif to reduce textures size 2024-02-19 15:18:55 +01:00
28 changed files with 34 additions and 34 deletions

View File

@ -8,12 +8,12 @@
<link rel="stylesheet" href="style.css"> <link rel="stylesheet" href="style.css">
<!-- Import maps polyfill --> <!-- Import maps polyfill -->
<!-- Remove this when import maps will be widely supported --> <!-- Remove this when import maps will be widely supported -->
<script async src="https://unpkg.com/es-module-shims@1.6.3/dist/es-module-shims.js"></script> <script async src="https://cdn.jsdelivr.net/npm/es-module-shims@1.8.3/dist/es-module-shims.min.js"></script>
<script type="importmap"> <script type="importmap">
{ {
"imports": { "imports": {
"three": "https://unpkg.com/three@0.158/build/three.module.js?module", "three": "https://cdn.jsdelivr.net/npm/three@0.161.0/build/three.module.min.js",
"three/addons/": "https://unpkg.com/three@0.158/examples/jsm/", "three/addons/": "https://cdn.jsdelivr.net/npm/three@0.161.0/examples/jsm/",
"three-hex-tiling": "https://cdn.jsdelivr.net/npm/three-hex-tiling@0.1.1/dist/index.js" "three-hex-tiling": "https://cdn.jsdelivr.net/npm/three-hex-tiling@0.1.1/dist/index.js"
} }
} }

62
main.js
View File

@ -1,15 +1,15 @@
import * as THREE from 'three'; import * as THREE from 'three'
import { Octree } from 'three/addons/math/Octree.js'; import { Octree } from 'three/addons/math/Octree.js'
import { Capsule } from 'three/addons/math/Capsule.js'; import { Capsule } from 'three/addons/math/Capsule.js'
import { Water } from 'three/addons/objects/Water.js'; import { Water } from 'three/addons/objects/Water.js'
import { PointerLockControls } from 'three/addons/controls/PointerLockControls.js'; import { PointerLockControls } from 'three/addons/controls/PointerLockControls.js'
import { GUI } from 'three/addons/libs/lil-gui.module.min.js'; import { GUI } from 'three/addons/libs/lil-gui.module.min.js'
import { OctreeHelper } from 'three/addons/helpers/OctreeHelper.js'; import { OctreeHelper } from 'three/addons/helpers/OctreeHelper.js'
import Stats from 'three/addons/libs/stats.module.js'; import Stats from 'three/addons/libs/stats.module.js'
//import 'three-hex-tiling'; //import 'three-hex-tiling'
import MazeMesh from './MazeMesh.js'; import MazeMesh from './MazeMesh.js'
const playerHeight = 0.5; const playerHeight = 0.5;
@ -80,12 +80,12 @@ const scene = new THREE.Scene();
scene.background = new THREE.CubeTextureLoader(loadMngr) scene.background = new THREE.CubeTextureLoader(loadMngr)
.setPath( 'textures/calm-sea-skybox/' ) .setPath( 'textures/calm-sea-skybox/' )
.load( [ .load( [
'ft.jpg', 'ft.webp',
'bk.jpg', 'bk.webp',
'up.jpg', 'up.webp',
'dn.jpg', 'dn.webp',
'rt.jpg', 'rt.webp',
'lf.jpg', 'lf.webp',
] ); ] );
scene.backgroundBlurriness = 0.03; scene.backgroundBlurriness = 0.03;
scene.backgroundIntensity = 1.4; scene.backgroundIntensity = 1.4;
@ -102,10 +102,10 @@ const mazeCollisionner = new THREE.Group();
// Maze // Maze
const wallMaterial = new THREE.MeshStandardMaterial({ const wallMaterial = new THREE.MeshStandardMaterial({
map : loader.load('textures/Poly-cobblestone-wall/color_map.jpg'), map : loader.load('textures/Poly-cobblestone-wall/color_map.webp'),
normalMap : loader.load('textures/Poly-cobblestone-wall/normal_map_opengl.jpg'), normalMap : loader.load('textures/Poly-cobblestone-wall/normal_map_opengl.webp'),
aoMap : loader.load('textures/Poly-cobblestone-wall/ao_map.jpg'), aoMap : loader.load('textures/Poly-cobblestone-wall/ao_map.webp'),
roughnessMap : loader.load('textures/Poly-cobblestone-wall/roughness_map.jpg'), roughnessMap : loader.load('textures/Poly-cobblestone-wall/roughness_map.webp'),
roughness : 1 roughness : 1
}) })
@ -139,11 +139,11 @@ function repeatGroundMaterial (texture) {
texture.repeat.set(mazeWidth / 4, mazeWidth / 4) texture.repeat.set(mazeWidth / 4, mazeWidth / 4)
} }
const groundMaterial = new THREE.MeshStandardMaterial({ const groundMaterial = new THREE.MeshStandardMaterial({
map : loader.load('textures/angled-blocks-vegetation/albedo.png', repeatGroundMaterial), map : loader.load('textures/angled-blocks-vegetation/albedo.webp', repeatGroundMaterial),
aoMap : loader.load('textures/angled-blocks-vegetation/ao-roughness-metalness.png', repeatGroundMaterial), aoMap : loader.load('textures/angled-blocks-vegetation/ao.webp', repeatGroundMaterial),
metalnessMap: loader.load('textures/angled-blocks-vegetation/ao-roughness-metalness.png', repeatGroundMaterial), metalnessMap: loader.load('textures/angled-blocks-vegetation/metallic.webp', repeatGroundMaterial),
normalMap : loader.load('textures/angled-blocks-vegetation/normal-dx.png', repeatGroundMaterial), normalMap : loader.load('textures/angled-blocks-vegetation/normal-dx.webp', repeatGroundMaterial),
roughnessMap: loader.load('textures/angled-blocks-vegetation/ao-roughness-metalness.png', repeatGroundMaterial), roughnessMap: loader.load('textures/angled-blocks-vegetation/roughness.webp', repeatGroundMaterial),
/*hexTiling : { /*hexTiling : {
patchScale: 1, patchScale: 1,
useContrastCorrectedBlending: true, useContrastCorrectedBlending: true,
@ -204,7 +204,7 @@ const ocean = new Water(waterGeometry, {
textureWidth : 512, textureWidth : 512,
textureHeight: 512, textureHeight: 512,
waterNormals : loader.load( waterNormals : loader.load(
'textures/waternormals.jpg', 'textures/waternormals.webp',
function (texture) { function (texture) {
texture.wrapS = texture.wrapT = THREE.RepeatWrapping; texture.wrapS = texture.wrapT = THREE.RepeatWrapping;
} }
@ -302,15 +302,15 @@ function repeatRaftMaterial(texture) {
texture.repeat.set(2, 1) texture.repeat.set(2, 1)
} }
const raftMaterial = new THREE.MeshStandardMaterial({ const raftMaterial = new THREE.MeshStandardMaterial({
map: loader.load("textures/Poly-wood/color_map.jpg", repeatRaftMaterial), map: loader.load("textures/Poly-wood/color_map.webp", repeatRaftMaterial),
aoMap: loader.load("textures/Poly-wood/ao_map.jpg", repeatRaftMaterial), aoMap: loader.load("textures/Poly-wood/ao_map.webp", repeatRaftMaterial),
normalMap: loader.load("textures/Poly-wood/normal_map_opengl.jpg", repeatRaftMaterial), normalMap: loader.load("textures/Poly-wood/normal_map_opengl.webp", repeatRaftMaterial),
normalScale : new THREE.Vector2(2, 2), normalScale : new THREE.Vector2(2, 2),
roughnessMap: loader.load("textures/Poly-wood/roughness_map.jpg", repeatRaftMaterial), roughnessMap: loader.load("textures/Poly-wood/roughness_map.webp", repeatRaftMaterial),
depthFunc: 3, depthFunc: 3,
depthTest: true, depthTest: true,
depthWrite: true, depthWrite: true,
displacementMap: loader.load("textures/Poly-wood/displacement_map.jpg", repeatRaftMaterial), displacementMap: loader.load("textures/Poly-wood/displacement_map.webp", repeatRaftMaterial),
displacementScale: -0.3, displacementScale: -0.3,
displacementBias: 0.15, displacementBias: 0.15,
}) })

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 209 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 324 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 372 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 595 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 184 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 803 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 128 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 566 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 76 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 60 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 61 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 160 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 52 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 69 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 98 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 27 KiB

BIN
textures/waternormals.webp Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 81 KiB