Compare commits
106 Commits
97ac1cad0b
...
hexTiling
| Author | SHA1 | Date | |
|---|---|---|---|
| 1b8e4b2676 | |||
| dd8361cf33 | |||
| 4f20dce37f | |||
| eb36acac39 | |||
| ebe7c41578 | |||
| 97172aedf3 | |||
| 6ddf3b2949 | |||
| 4722783018 | |||
| 96d485aabb | |||
| d53b6a97c9 | |||
| eb5b39529a | |||
| af8fdfd30e | |||
| 2adbecea71 | |||
| a0b2aa96ad | |||
| cb1b0bb541 | |||
| 6e51b2f115 | |||
| 738e92c16b | |||
| 938160f053 | |||
| 75a173d0af | |||
| 3bb43edcee | |||
| b318adb469 | |||
| cee4d886c0 | |||
| cd313b363c | |||
| acca8eb92b | |||
| 75f70a1bac | |||
| 5a85c0cae2 | |||
| 3f84ddd8df | |||
| f95f23562e | |||
| 8732caef73 | |||
| dde4848101 | |||
| 2d12cf2a47 | |||
| ba41eb9893 | |||
| dd2104648e | |||
| bed8224c79 | |||
| cb1e89c732 | |||
| 6079d802f2 | |||
| bff47a6bbe | |||
| 7bc2344d32 | |||
| c8982cb0cb | |||
| 6c9fed62b0 | |||
| 51ac2cf0f0 | |||
| 6b5760ac3f | |||
| 960103b162 | |||
| e89dcb8937 | |||
| 596a227eaf | |||
| 4afc42ec2f | |||
| eb3ae6f00c | |||
| f582e68d89 | |||
| 4c68d9dc83 | |||
| 83d6a84c6f | |||
| 6ae40737d3 | |||
| 215e15a945 | |||
| be609f4137 | |||
| b073a7d5da | |||
| 8b21e6ce14 | |||
| da93c41e43 | |||
| 52ced3f0f1 | |||
| 4275a9933b | |||
| 9ca6c3a2e9 | |||
| af8befcf72 | |||
| 1196e896e3 | |||
| cdadb7d42e | |||
| 209ffa65d7 | |||
| b4ae6a8426 | |||
| 3541f1d461 | |||
| b5e64094d1 | |||
| ced5571a7a | |||
| 98c4162263 | |||
| f0415b52ed | |||
| 28b57c37d5 | |||
| 72d3afa812 | |||
| 9806382955 | |||
| 0ccd895b90 | |||
| cb258390ab | |||
| 5e12aea559 | |||
| 2075429566 | |||
| d48500919a | |||
| 74c466cf8d | |||
| 602629129f | |||
| 29a3a3fcc6 | |||
| c85aaf96a8 | |||
| cbcec7e387 | |||
| a508a3710f | |||
| 95c0bcdd10 | |||
| a2fb3ac772 | |||
| cb18679ab1 | |||
| 780252e392 | |||
| df0ea317de | |||
| 6244de7429 | |||
| a7db52aa27 | |||
| 649affc841 | |||
| 8c263b727f | |||
| 8b10df1102 | |||
| 3e548a863d | |||
| 0d47b5bbef | |||
| 69a5e819c2 | |||
| d012c80a57 | |||
| eed37b46ac | |||
| 21c1506c13 | |||
| 29053eeaec | |||
| 2ba43c03b4 | |||
| 39b4e939bf | |||
| 70dd803ab0 | |||
| d5f6f0baee | |||
| ee36c2d8fb | |||
| 57cdea41f9 |
1
.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
textures/old/
|
||||||
74
MazeMesh.js
Normal file
@ -0,0 +1,74 @@
|
|||||||
|
import * as THREE from 'three';
|
||||||
|
|
||||||
|
export default class MazeMesh extends THREE.InstancedMesh {
|
||||||
|
constructor( width, length, height, material ) {
|
||||||
|
super(
|
||||||
|
new THREE.BoxGeometry( 1, height, 1 ),
|
||||||
|
material,
|
||||||
|
width*length - 2
|
||||||
|
);
|
||||||
|
this.length = length
|
||||||
|
this.width = width
|
||||||
|
this.map = new Array(length).fill().map(() => new Array(width).fill(1))
|
||||||
|
this.start = new THREE.Vector3(width/2, .1, length/2)
|
||||||
|
this.exit = new THREE.Vector3(Math.floor(width/2), 0, 1)
|
||||||
|
|
||||||
|
this.dig(this.exit)
|
||||||
|
this.dig(new THREE.Vector3(Math.floor(width/2), 0, 0))
|
||||||
|
this.build ( this.exit )
|
||||||
|
let matrix = new THREE.Matrix4()
|
||||||
|
this.count = 0
|
||||||
|
this.map.forEach((row, z) => {
|
||||||
|
row.forEach((isWall, x) => {
|
||||||
|
if (isWall) {
|
||||||
|
matrix.setPosition( x + .5 - width/2, 0.5, z + .5 - length/2)
|
||||||
|
this.setMatrixAt( this.count, matrix );
|
||||||
|
this.count++
|
||||||
|
}
|
||||||
|
})
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
dig(position) {
|
||||||
|
this.map[position.z][position.x] = 0
|
||||||
|
}
|
||||||
|
|
||||||
|
static DIRECTIONS = [
|
||||||
|
new THREE.Vector3( 0, 0, -1),
|
||||||
|
new THREE.Vector3( 0, 0, 1),
|
||||||
|
new THREE.Vector3(-1, 0, 0),
|
||||||
|
new THREE.Vector3( 1, 0, 0),
|
||||||
|
]
|
||||||
|
build(position) {
|
||||||
|
for (var direction of Array.from(this.constructor.DIRECTIONS).sort(x => .5 - Math.random())) {
|
||||||
|
var step1 = position.clone().add(direction)
|
||||||
|
var step2 = step1.clone().add(direction)
|
||||||
|
if (this.isWall(step2) == 1) {
|
||||||
|
this.dig(step1)
|
||||||
|
this.dig(step2)
|
||||||
|
this.count -= 2
|
||||||
|
this.build(step2)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
isWall(position) {
|
||||||
|
if (0 <= position.x && position.x < this.width &&
|
||||||
|
0 <= position.y &&
|
||||||
|
0 <= position.z && position.z < this.length) {
|
||||||
|
return this.map[Math.floor(position.z)][Math.floor(position.x)]
|
||||||
|
} else {
|
||||||
|
return -1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
collision(position) {
|
||||||
|
return this.isWall(this.worldToLocal(position))
|
||||||
|
}
|
||||||
|
|
||||||
|
toString() {
|
||||||
|
return this.map.map(row =>
|
||||||
|
row.map(isWall => isWall? "██":" ").join("")
|
||||||
|
).join("\n")
|
||||||
|
}
|
||||||
|
}
|
||||||
BIN
ambiance.mp3
BIN
favicon.ico
Normal file
|
After Width: | Height: | Size: 762 B |
38
favicon.php
@ -2,43 +2,15 @@
|
|||||||
header('Content-Type: image/x-icon');
|
header('Content-Type: image/x-icon');
|
||||||
|
|
||||||
const SIZE = 16;
|
const SIZE = 16;
|
||||||
const WALL = 1;
|
|
||||||
const GROUND = 0;
|
|
||||||
|
|
||||||
$favicon = imagecreatetruecolor(SIZE, SIZE);
|
$x = filter_input(INPUT_GET, "x", FILTER_SANITIZE_NUMBER_INT);
|
||||||
$wallColor = imagecolorallocate($favicon, 165, 80, 30);
|
$y = filter_input(INPUT_GET, "y", FILTER_SANITIZE_NUMBER_INT);
|
||||||
$groundColor = imagecolorallocate($favicon, 203, 162, 133);
|
|
||||||
|
|
||||||
imagefill($favicon, 0, 0, $wallColor);
|
$favicon = imagecreatefrombmp("favicon.ico");
|
||||||
|
|
||||||
$maze = array();
|
$red = imagecolorallocate($favicon, 255, 0, 0);
|
||||||
for ($y = 0; $y < SIZE; $y++) {
|
imagesetpixel($favicon, $x, $y, $red);
|
||||||
$maze[$y] = array();
|
|
||||||
for ($x = 0; $x < SIZE; $x++) {
|
|
||||||
$maze[$y][$x] = WALL;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
function dig($position) {
|
|
||||||
global $maze;
|
|
||||||
global $favicon;
|
|
||||||
global $groundColor;
|
|
||||||
$directions = [[0, 1], [0, -1], [1, 0], [-1, 0]];
|
|
||||||
shuffle($directions);
|
|
||||||
foreach ($directions as $direction) {
|
|
||||||
$step1 = [$position[0] + $direction[0], $position[1] + $direction[1]];
|
|
||||||
$step2 = [$step1[0] + $direction[0], $step1[1] + $direction[1]];
|
|
||||||
if (0 <= $step2[1] and $step2[1] < SIZE and 0 <= $step2[0] and $step2[0] < SIZE and $maze[$step2[1]][$step2[0]] == WALL) {
|
|
||||||
$maze[$step1[1]][$step1[0]] = GROUND;
|
|
||||||
imagesetpixel($favicon, $step1[0], $step1[1], $groundColor);
|
|
||||||
$maze[$step2[1]][$step2[0]] = GROUND;
|
|
||||||
imagesetpixel($favicon, $step2[0], $step2[1], $groundColor);
|
|
||||||
dig($step2);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
dig([1, 1]);
|
|
||||||
imagebmp($favicon);
|
imagebmp($favicon);
|
||||||
imagedestroy($favicon);
|
imagedestroy($favicon);
|
||||||
?>
|
?>
|
||||||
BIN
img/ground.jpg
|
Before Width: | Height: | Size: 329 KiB |
BIN
img/wall.jpg
|
Before Width: | Height: | Size: 1.8 MiB |
BIN
img/wood.jpg
|
Before Width: | Height: | Size: 115 KiB |
155
index.html
@ -1,29 +1,160 @@
|
|||||||
<!DOCTYPE html>
|
<!DOCTYPE html>
|
||||||
<html lang="en">
|
<html lang="fr">
|
||||||
<head>
|
<head>
|
||||||
<title>Daedalus</title>
|
|
||||||
<meta charset=utf-8 />
|
<meta charset=utf-8 />
|
||||||
|
<title>Daedalus</title>
|
||||||
<meta name="viewport" content="width=device-width, user-scalable=no, minimum-scale=1.0, maximum-scale=1.0">
|
<meta name="viewport" content="width=device-width, user-scalable=no, minimum-scale=1.0, maximum-scale=1.0">
|
||||||
<link rel="shortcut icon" type="image/x-icon" href="favicon.php"/>
|
<link rel="shortcut icon" type="image/x-icon" href="favicon.ico" id="favicon"/>
|
||||||
<link rel="stylesheet" href="style.css">
|
<link rel="stylesheet" href="style.css">
|
||||||
</head>
|
|
||||||
<body>
|
|
||||||
<div id="container"></div>
|
|
||||||
|
|
||||||
<!-- 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.152.2/build/three.module.js",
|
"three": "https://cdn.jsdelivr.net/npm/three@0.161.0/build/three.module.min.js",
|
||||||
"three/addons/": "https://unpkg.com/three@0.152.2/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"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
<script id="vertexShader" type="x-shader/x-vertex">
|
||||||
|
uniform mat4 textureMatrix;
|
||||||
|
uniform float time;
|
||||||
|
|
||||||
<script type="module" src="main.js"></script>
|
varying vec4 mirrorCoord;
|
||||||
|
varying vec4 worldPosition;
|
||||||
|
|
||||||
|
#include <common>
|
||||||
|
#include <fog_pars_vertex>
|
||||||
|
#include <shadowmap_pars_vertex>
|
||||||
|
#include <logdepthbuf_pars_vertex>
|
||||||
|
|
||||||
|
uniform vec4 waveA;
|
||||||
|
uniform vec4 waveB;
|
||||||
|
uniform vec4 waveC;
|
||||||
|
|
||||||
|
vec3 GerstnerWave (vec4 wave, vec3 p) {
|
||||||
|
float steepness = wave.z;
|
||||||
|
float wavelength = wave.w;
|
||||||
|
float k = 2.0 * PI / wavelength;
|
||||||
|
float c = sqrt(9.8 / k);
|
||||||
|
vec2 d = normalize(wave.xy);
|
||||||
|
float f = k * (dot(d, p.xy) - c * time);
|
||||||
|
float a = steepness / k;
|
||||||
|
|
||||||
|
return vec3(
|
||||||
|
d.x * (a * cos(f)),
|
||||||
|
d.y * (a * cos(f)),
|
||||||
|
a * sin(f)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
void main() {
|
||||||
|
mirrorCoord = modelMatrix * vec4( position, 1.0 );
|
||||||
|
worldPosition = mirrorCoord.xyzw;
|
||||||
|
mirrorCoord = textureMatrix * mirrorCoord;
|
||||||
|
|
||||||
|
vec3 p = position.xyz;
|
||||||
|
p += GerstnerWave(waveA, position.xyz);
|
||||||
|
p += GerstnerWave(waveB, position.xyz);
|
||||||
|
p += GerstnerWave(waveC, position.xyz);
|
||||||
|
gl_Position = projectionMatrix * modelViewMatrix * vec4( p.x, p.y, p.z, 1.0);
|
||||||
|
|
||||||
|
#include <beginnormal_vertex>
|
||||||
|
#include <defaultnormal_vertex>
|
||||||
|
#include <logdepthbuf_vertex>
|
||||||
|
#include <fog_vertex>
|
||||||
|
#include <shadowmap_vertex>
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
<script id="fragmentShader" type="x-shader/x-fragment">
|
||||||
|
uniform sampler2D mirrorSampler;
|
||||||
|
uniform float alpha;
|
||||||
|
uniform float time;
|
||||||
|
uniform float size;
|
||||||
|
uniform float distortionScale;
|
||||||
|
uniform sampler2D normalSampler;
|
||||||
|
uniform vec3 sunColor;
|
||||||
|
uniform vec3 sunDirection;
|
||||||
|
uniform vec3 eye;
|
||||||
|
uniform vec3 waterColor;
|
||||||
|
|
||||||
|
varying vec4 mirrorCoord;
|
||||||
|
varying vec4 worldPosition;
|
||||||
|
|
||||||
|
vec4 getNoise( vec2 uv ) {
|
||||||
|
vec2 uv0 = ( uv / 103.0 ) + vec2(time / 17.0, time / 29.0);
|
||||||
|
vec2 uv1 = uv / 107.0-vec2( time / -19.0, time / 31.0 );
|
||||||
|
vec2 uv2 = uv / vec2( 8907.0, 9803.0 ) + vec2( time / 101.0, time / 97.0 );
|
||||||
|
vec2 uv3 = uv / vec2( 1091.0, 1027.0 ) - vec2( time / 109.0, time / -113.0 );
|
||||||
|
vec4 noise = texture2D( normalSampler, uv0 ) +
|
||||||
|
texture2D( normalSampler, uv1 ) +
|
||||||
|
texture2D( normalSampler, uv2 ) +
|
||||||
|
texture2D( normalSampler, uv3 );
|
||||||
|
return noise * 0.5 - 1.0;
|
||||||
|
}
|
||||||
|
|
||||||
|
void sunLight( const vec3 surfaceNormal, const vec3 eyeDirection, float shiny, float spec, float diffuse, inout vec3 diffuseColor, inout vec3 specularColor ) {
|
||||||
|
vec3 reflection = normalize( reflect( -sunDirection, surfaceNormal ) );
|
||||||
|
float direction = max( 0.0, dot( eyeDirection, reflection ) );
|
||||||
|
specularColor += pow( direction, shiny ) * sunColor * spec;
|
||||||
|
diffuseColor += max( dot( sunDirection, surfaceNormal ), 0.0 ) * sunColor * diffuse;
|
||||||
|
}
|
||||||
|
|
||||||
|
#include <common>
|
||||||
|
#include <packing>
|
||||||
|
#include <bsdfs>
|
||||||
|
#include <fog_pars_fragment>
|
||||||
|
#include <logdepthbuf_pars_fragment>
|
||||||
|
#include <lights_pars_begin>
|
||||||
|
#include <shadowmap_pars_fragment>
|
||||||
|
#include <shadowmask_pars_fragment>
|
||||||
|
|
||||||
|
void main() {
|
||||||
|
|
||||||
|
#include <logdepthbuf_fragment>
|
||||||
|
vec4 noise = getNoise( worldPosition.xz * size );
|
||||||
|
vec3 surfaceNormal = normalize( noise.xzy * vec3( 1.5, 1.0, 1.5 ) );
|
||||||
|
|
||||||
|
vec3 diffuseLight = vec3(0.0);
|
||||||
|
vec3 specularLight = vec3(0.0);
|
||||||
|
|
||||||
|
vec3 worldToEye = eye-worldPosition.xyz;
|
||||||
|
vec3 eyeDirection = normalize( worldToEye );
|
||||||
|
sunLight( surfaceNormal, eyeDirection, 100.0, 2.0, 0.5, diffuseLight, specularLight );
|
||||||
|
|
||||||
|
float distance = length(worldToEye);
|
||||||
|
|
||||||
|
vec2 distortion = surfaceNormal.xz * ( 0.001 + 1.0 / distance ) * distortionScale;
|
||||||
|
vec3 reflectionSample = vec3( texture2D( mirrorSampler, mirrorCoord.xy / mirrorCoord.w + distortion ) );
|
||||||
|
|
||||||
|
float theta = max( dot( eyeDirection, surfaceNormal ), 0.0 );
|
||||||
|
float rf0 = 0.3;
|
||||||
|
float reflectance = rf0 + ( 1.0 - rf0 ) * pow( ( 1.0 - theta ), 5.0 );
|
||||||
|
vec3 scatter = max( 0.0, dot( surfaceNormal, eyeDirection ) ) * waterColor;
|
||||||
|
vec3 albedo = mix( ( sunColor * diffuseLight * 0.3 + scatter ) * getShadowMask(), ( vec3( 0.1 ) + reflectionSample * 0.9 + reflectionSample * specularLight ), reflectance);
|
||||||
|
vec3 outgoingLight = albedo;
|
||||||
|
gl_FragColor = vec4( outgoingLight, alpha );
|
||||||
|
|
||||||
|
#include <tonemapping_fragment>
|
||||||
|
#include <fog_fragment>
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div id="loading">
|
||||||
|
<table id="labyTable"></table>
|
||||||
|
<div id="loadingMessage">Construction du labyrinthe : <span id="progress">0</span>%</div>
|
||||||
|
<div>
|
||||||
|
Se déplacer : ↑←↓→, ZQSD ou clic<br/>
|
||||||
|
Sauter : ESPACE<br/>
|
||||||
|
Regarder : Souris
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div id="container"></div>
|
||||||
|
<span id="message"></span>
|
||||||
|
|
||||||
|
<script type="module" src="./main.js"></script>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|||||||
BIN
snd/ambiance.mp3
Normal file
BIN
snd/waves-and-tears.mp3
Normal file
89
style.css
@ -1,10 +1,87 @@
|
|||||||
body {
|
body {
|
||||||
margin: 0;
|
margin: 0;
|
||||||
background-color: #000;
|
background-color: #041626;
|
||||||
color: #fff;
|
font-size: 1.3em;
|
||||||
font-family: Monospace;
|
|
||||||
font-size: 13px;
|
|
||||||
line-height: 24px;
|
|
||||||
overscroll-behavior: none;
|
overscroll-behavior: none;
|
||||||
cursor: pointer;
|
cursor: wait;
|
||||||
|
}
|
||||||
|
|
||||||
|
#loading {
|
||||||
|
width: fit-content;
|
||||||
|
color: #2c5c88;
|
||||||
|
font-size: 1.3em;
|
||||||
|
top: 20vh;
|
||||||
|
margin: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
#loadingMessage {
|
||||||
|
margin-bottom: 0.5em;
|
||||||
|
}
|
||||||
|
|
||||||
|
#labyTable {
|
||||||
|
width: 230px;
|
||||||
|
height: 230px;
|
||||||
|
margin-left: auto;
|
||||||
|
margin-right: auto;
|
||||||
|
margin-top: 20vh;
|
||||||
|
margin-bottom: 5vh;
|
||||||
|
border-collapse: collapse;
|
||||||
|
}
|
||||||
|
|
||||||
|
#labyTable td {
|
||||||
|
width: 10px;
|
||||||
|
height: 10px;
|
||||||
|
transition: background-color 1s;
|
||||||
|
border: 0;
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.wall {
|
||||||
|
background-color: transparent;
|
||||||
|
}
|
||||||
|
|
||||||
|
.ground {
|
||||||
|
background-color: #214464;
|
||||||
|
}
|
||||||
|
|
||||||
|
#container {
|
||||||
|
position: absolute;
|
||||||
|
z-index: 0;
|
||||||
|
cursor: move;
|
||||||
|
}
|
||||||
|
|
||||||
|
@keyframes escaped{
|
||||||
|
0% {
|
||||||
|
opacity: 0%;
|
||||||
|
top: 90vh;
|
||||||
|
}
|
||||||
|
100% {
|
||||||
|
opacity: 100%;
|
||||||
|
top: 30vh;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#message {
|
||||||
|
display: none;
|
||||||
|
position: absolute;
|
||||||
|
left: 0;
|
||||||
|
width: 100%;
|
||||||
|
background: transparent;
|
||||||
|
justify-content: center;
|
||||||
|
z-index: 1;
|
||||||
|
color: gray;
|
||||||
|
font-family: Times, "Times New Roman", Georgia, serif;
|
||||||
|
}
|
||||||
|
|
||||||
|
#message a {
|
||||||
|
color: inherit;
|
||||||
|
}
|
||||||
|
|
||||||
|
#message.escaped {
|
||||||
|
display: block;
|
||||||
|
opacity: 100%;
|
||||||
|
font-size: 4vh;
|
||||||
|
text-align: center;
|
||||||
|
top: 30vh;
|
||||||
|
animation: escaped 5s;
|
||||||
}
|
}
|
||||||
3
textures/Poly-cobblestone-wall/Made with Poly.txt
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
This asset was made with Poly, an AI-generated design asset marketplace that lets you find and create incredibly life-like, detailed, and artistic assets for your next project, in seconds.
|
||||||
|
|
||||||
|
Get started for free at https://withpoly.com
|
||||||
BIN
textures/Poly-cobblestone-wall/ao_map.jpg
Normal file
|
After Width: | Height: | Size: 4.8 MiB |
BIN
textures/Poly-cobblestone-wall/ao_map.webp
Normal file
|
After Width: | Height: | Size: 1.1 MiB |
BIN
textures/Poly-cobblestone-wall/color_map.jpg
Normal file
|
After Width: | Height: | Size: 7.3 MiB |
BIN
textures/Poly-cobblestone-wall/color_map.webp
Normal file
|
After Width: | Height: | Size: 2.4 MiB |
BIN
textures/Poly-cobblestone-wall/displacement_map.jpg
Normal file
|
After Width: | Height: | Size: 1.7 MiB |
BIN
textures/Poly-cobblestone-wall/displacement_map.webp
Normal file
|
After Width: | Height: | Size: 209 KiB |
BIN
textures/Poly-cobblestone-wall/normal_map_opengl.jpg
Normal file
|
After Width: | Height: | Size: 5.7 MiB |
BIN
textures/Poly-cobblestone-wall/normal_map_opengl.webp
Normal file
|
After Width: | Height: | Size: 1.2 MiB |
BIN
textures/Poly-cobblestone-wall/render_map.jpg
Normal file
|
After Width: | Height: | Size: 7.4 MiB |
BIN
textures/Poly-cobblestone-wall/render_map.webp
Normal file
|
After Width: | Height: | Size: 2.4 MiB |
BIN
textures/Poly-cobblestone-wall/roughness_map.jpg
Normal file
|
After Width: | Height: | Size: 2.6 MiB |
BIN
textures/Poly-cobblestone-wall/roughness_map.webp
Normal file
|
After Width: | Height: | Size: 324 KiB |
23
textures/Poly-cobblestone-wall/settings.json
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
{
|
||||||
|
"prompt_text": "cobblestone wall with grass and flowers between rocks",
|
||||||
|
"patch": {
|
||||||
|
"ext": "png",
|
||||||
|
"dtype": "uint8",
|
||||||
|
"width": 512,
|
||||||
|
"height": 512,
|
||||||
|
"url": "https://static-dev.withpoly.com/v3-voronoi/textures/patches/486f8eed-0dfd-4bdc-9dee-3776fc72b1f1.png",
|
||||||
|
"patch_id": "GVpEsGuQ8S"
|
||||||
|
},
|
||||||
|
"seamless_prompt_text": "cobblestone wall with grass and flowers between rocks",
|
||||||
|
"seamless_patch_scale": 0.98,
|
||||||
|
"upscale_prompt_text": "cobblestone wall with grass and flowers between rocks",
|
||||||
|
"upscale_resolution": 4096,
|
||||||
|
"is_seamless": true,
|
||||||
|
"pbr_mode": "organic",
|
||||||
|
"pbr_use_render_as_color": true,
|
||||||
|
"pbr_generate_normal": true,
|
||||||
|
"pbr_generate_height": true,
|
||||||
|
"pbr_generate_ao": true,
|
||||||
|
"pbr_generate_roughness": true,
|
||||||
|
"pbr_generate_metallic": false
|
||||||
|
}
|
||||||
3
textures/Poly-wood/Made with Poly.txt
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
This asset was made with Poly, an AI-generated design asset marketplace that lets you find and create incredibly life-like, detailed, and artistic assets for your next project, in seconds.
|
||||||
|
|
||||||
|
Get started for free at https://withpoly.com
|
||||||
BIN
textures/Poly-wood/ao_map.jpg
Normal file
|
After Width: | Height: | Size: 1.0 MiB |
BIN
textures/Poly-wood/ao_map.webp
Normal file
|
After Width: | Height: | Size: 372 KiB |
BIN
textures/Poly-wood/color_map.jpg
Normal file
|
After Width: | Height: | Size: 1.3 MiB |
BIN
textures/Poly-wood/color_map.webp
Normal file
|
After Width: | Height: | Size: 595 KiB |
BIN
textures/Poly-wood/displacement_map.jpg
Normal file
|
After Width: | Height: | Size: 542 KiB |
BIN
textures/Poly-wood/displacement_map.webp
Normal file
|
After Width: | Height: | Size: 184 KiB |
BIN
textures/Poly-wood/normal_map_opengl.jpg
Normal file
|
After Width: | Height: | Size: 1.6 MiB |
BIN
textures/Poly-wood/normal_map_opengl.webp
Normal file
|
After Width: | Height: | Size: 803 KiB |
BIN
textures/Poly-wood/render_map.jpg
Normal file
|
After Width: | Height: | Size: 2.0 MiB |
BIN
textures/Poly-wood/render_map.webp
Normal file
|
After Width: | Height: | Size: 1.1 MiB |
BIN
textures/Poly-wood/roughness_map.jpg
Normal file
|
After Width: | Height: | Size: 475 KiB |
BIN
textures/Poly-wood/roughness_map.webp
Normal file
|
After Width: | Height: | Size: 128 KiB |
23
textures/Poly-wood/settings.json
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
{
|
||||||
|
"prompt_text": "wood, planks, wooden, green paint, painted wood, paint, scrathes, raw wood, peeling paint",
|
||||||
|
"patch": {
|
||||||
|
"ext": "png",
|
||||||
|
"dtype": "uint8",
|
||||||
|
"width": 512,
|
||||||
|
"height": 512,
|
||||||
|
"url": "https://static-dev.withpoly.com/v3-voronoi/textures/patches/0ddfc901-a5dd-40f0-993b-8de3ccefb7f7.png",
|
||||||
|
"patch_id": "a79eceALs5"
|
||||||
|
},
|
||||||
|
"seamless_prompt_text": "wood, planks, wooden, green paint, painted wood, paint, scrathes, raw wood, peeling paint",
|
||||||
|
"seamless_patch_scale": 0.8,
|
||||||
|
"upscale_prompt_text": "wood, planks, wooden, green paint, painted wood, paint, scrathes, raw wood, peeling paint",
|
||||||
|
"upscale_resolution": 4096,
|
||||||
|
"is_seamless": true,
|
||||||
|
"pbr_mode": "matte",
|
||||||
|
"pbr_generate_color": true,
|
||||||
|
"pbr_generate_normal": true,
|
||||||
|
"pbr_generate_height": true,
|
||||||
|
"pbr_generate_ao": true,
|
||||||
|
"pbr_generate_roughness": true,
|
||||||
|
"pbr_generate_metallic": false
|
||||||
|
}
|
||||||
BIN
textures/angled-blocks-vegetation/albedo.png
Normal file
|
After Width: | Height: | Size: 7.2 MiB |
BIN
textures/angled-blocks-vegetation/albedo.webp
Normal file
|
After Width: | Height: | Size: 566 KiB |
BIN
textures/angled-blocks-vegetation/ao-roughness-metalness.png
Normal file
|
After Width: | Height: | Size: 2.3 MiB |
BIN
textures/angled-blocks-vegetation/ao-roughness-metalness.webp
Normal file
|
After Width: | Height: | Size: 76 KiB |
BIN
textures/angled-blocks-vegetation/ao.png
Normal file
|
After Width: | Height: | Size: 1.4 MiB |
BIN
textures/angled-blocks-vegetation/ao.webp
Normal file
|
After Width: | Height: | Size: 60 KiB |
BIN
textures/angled-blocks-vegetation/height.png
Normal file
|
After Width: | Height: | Size: 1.4 MiB |
BIN
textures/angled-blocks-vegetation/height.webp
Normal file
|
After Width: | Height: | Size: 32 KiB |
BIN
textures/angled-blocks-vegetation/metallic.png
Normal file
|
After Width: | Height: | Size: 55 KiB |
BIN
textures/angled-blocks-vegetation/metallic.webp
Normal file
|
After Width: | Height: | Size: 7.3 KiB |
BIN
textures/angled-blocks-vegetation/normal-dx.png
Normal file
|
After Width: | Height: | Size: 9.1 MiB |
BIN
textures/angled-blocks-vegetation/normal-dx.webp
Normal file
|
After Width: | Height: | Size: 1.5 MiB |
BIN
textures/angled-blocks-vegetation/roughness.png
Normal file
|
After Width: | Height: | Size: 1.8 MiB |
BIN
textures/angled-blocks-vegetation/roughness.webp
Normal file
|
After Width: | Height: | Size: 61 KiB |
BIN
textures/calm-sea-skybox/bk.jpg
Normal file
|
After Width: | Height: | Size: 396 KiB |
BIN
textures/calm-sea-skybox/bk.webp
Normal file
|
After Width: | Height: | Size: 160 KiB |
BIN
textures/calm-sea-skybox/dn.jpg
Normal file
|
After Width: | Height: | Size: 114 KiB |
BIN
textures/calm-sea-skybox/dn.webp
Normal file
|
After Width: | Height: | Size: 20 KiB |
BIN
textures/calm-sea-skybox/ft.jpg
Normal file
|
After Width: | Height: | Size: 210 KiB |
BIN
textures/calm-sea-skybox/ft.webp
Normal file
|
After Width: | Height: | Size: 52 KiB |
BIN
textures/calm-sea-skybox/lf.jpg
Normal file
|
After Width: | Height: | Size: 252 KiB |
BIN
textures/calm-sea-skybox/lf.webp
Normal file
|
After Width: | Height: | Size: 69 KiB |
BIN
textures/calm-sea-skybox/rt.jpg
Normal file
|
After Width: | Height: | Size: 301 KiB |
BIN
textures/calm-sea-skybox/rt.webp
Normal file
|
After Width: | Height: | Size: 98 KiB |
BIN
textures/calm-sea-skybox/up.jpg
Normal file
|
After Width: | Height: | Size: 135 KiB |
BIN
textures/calm-sea-skybox/up.webp
Normal file
|
After Width: | Height: | Size: 27 KiB |
|
Before Width: | Height: | Size: 243 KiB After Width: | Height: | Size: 243 KiB |
BIN
textures/waternormals.webp
Normal file
|
After Width: | Height: | Size: 81 KiB |