commit c10539638b981f7cf48ca8dd52e3480f1a31d27c
parent 460d138a79f79bb1beeeba617ebdda31624ab2d5
Author: Martin Kloeckner <mjkloeckner@gmail.com>
Date: Mon, 8 Jul 2024 18:24:02 -0300
remove `shaders.js` since its no longer used
Diffstat:
3 files changed, 0 insertions(+), 111 deletions(-)
diff --git a/tp/src/scene.js b/tp/src/scene.js
@@ -3,7 +3,6 @@ import * as dat from 'dat.gui';
import { OrbitControls } from 'three/examples/jsm/controls/OrbitControls.js';
import { FirstPersonControls } from 'three/addons/controls/FirstPersonControls.js';
import { PointerLockControls } from 'three/addons/controls/PointerLockControls.js';
-import { vertexShader, fragmentShader } from '/src/shaders.js';
import { generateTunnelGeometry } from '/src/tunnel.js';
import { createInstancedTrees } from '/src/trees.js';
diff --git a/tp/src/shaders.js b/tp/src/shaders.js
@@ -1,109 +0,0 @@
-export const vertexShader = `
- precision highp float;
-
- // Atributos de los vértices
- attribute vec3 position; // Posición del vértice
- attribute vec3 normal; // Normal del vértice
- attribute vec2 uv; // Coordenadas de textura
-
- // Uniforms
- uniform mat4 modelMatrix; // Matriz de transformación del objeto
- uniform mat4 viewMatrix; // Matriz de transformación de la cámara
- uniform mat4 projectionMatrix; // Matriz de proyección de la cámara
- uniform mat4 worldNormalMatrix; // Matriz de normales
-
- // Varying
- varying vec2 vUv; // Coordenadas de textura que se pasan al fragment shader
- varying vec3 vNormal; // Normal del vértice que se pasa al fragment shader
- varying vec3 vWorldPos; // Posición del vértice en el espacio de mundo
-
- void main() {
- // Lee la posición del vértice desde los atributos
- vec3 pos = position;
-
- // Se calcula la posición final del vértice
- // Se aplica la transformación del objeto, la de la cámara y la de proyección
- gl_Position = projectionMatrix * viewMatrix * modelMatrix * vec4(pos, 1.0);
-
- // Se pasan las coordenadas de textura al fragment shader
- vUv = uv;
- vNormal = normalize(vec3(worldNormalMatrix * vec4(normal, 0.0)));
- vWorldPos = (modelMatrix * vec4(pos, 1.0)).xyz;
- }
-`;
-
-export const fragmentShader = `
- precision mediump float;
- varying vec2 vUv;
- varying vec3 vNormal;
- varying vec3 vWorldPos;
-
- uniform float scale;
- uniform float terrainAmplitude;
- uniform float terrainAmplitudeBottom;
- uniform float dirtStepWidth;
- uniform float rockStepWidth;
-
- uniform sampler2D dirtSampler;
- uniform sampler2D rockSampler;
- uniform sampler2D grassSampler;
-
- float normalize(float inputValue, float minValue, float maxValue) {
- return (inputValue - minValue) / (maxValue - minValue);
- }
-
- void main(void) {
- vec2 uv = vUv*8.0;
- vec2 uv2 = vUv*scale;
-
- float heightFactor = vWorldPos.y - terrainAmplitudeBottom;
- float heightFactorNormalized = normalize(heightFactor, 0.0, terrainAmplitude);
-
- vec3 grass = texture2D(grassSampler, uv).xyz;
- vec3 dirt = texture2D(dirtSampler, uv*4.0).xyz;
- vec3 rock = texture2D(rockSampler, uv).xyz;
-
- // muestreo de pasto a diferentes escalas, luego se combina con \`mix()\`
- vec3 grass1 = texture2D(grassSampler, uv2*1.00).xyz;
- vec3 grass2 = texture2D(grassSampler, uv2*3.13).xyz;
- vec3 grass3 = texture2D(grassSampler, uv2*2.37).xyz;
- vec3 colorGrass = mix(mix(grass1,grass2,0.5),grass3,0.3);
-
- // lo mismo para la textura de tierra
- vec3 dirt1 = texture2D(dirtSampler, uv2*3.77).xyz;
- vec3 dirt2 = texture2D(dirtSampler, uv2*1.58).xyz;
- vec3 dirt3 = texture2D(dirtSampler, uv2*1.00).xyz;
- vec3 colorDirt = mix(mix(dirt1, dirt2, 0.5), dirt3, 0.3);
-
- // lo mismo para la textura de roca
- vec3 rock1 = texture2D(rockSampler,uv2*0.40).xyz;
- vec3 rock2 = texture2D(rockSampler,uv2*2.38).xyz;
- vec3 rock3 = texture2D(rockSampler,uv2*3.08).xyz;
- vec3 colorRock = mix(mix(rock1, rock2, 0.5), rock3,0.5);
-
- float u = heightFactorNormalized;
-
- // float pi = 3.141592654;
- // float grassFactor = sin(pi*u);
- // float dirtFactor = abs(sin(2.0*pi));
- // float rockFactor = clamp(cos(2.0*pi*u), 0.0, 1.0);
-
- float width2 = rockStepWidth;
- float rockFactor = 2.00 - smoothstep(0.0, width2, u)
- - smoothstep(1.0, 1.00 - width2, u);
-
- float width = dirtStepWidth;
- float s1 = smoothstep(0.00, width, u);
- float s2 = smoothstep(width, width*2.0, u);
- float s3 = smoothstep(0.50, 0.50 + width, u);
- float s4 = smoothstep(0.50 + width, 0.50 + width*2.0, u);
- float dirtFactor = (s1 - s2) + (s3 - s4);
-
- float grassFactor = smoothstep(0.0, 0.35, u) - smoothstep(0.35, 1.00, u);
-
- vec3 colorDirtGrass = mix(colorDirt, colorGrass, grassFactor);
- vec3 colorDirtGrassDirt = mix(colorDirtGrass, colorDirt, dirtFactor);
- vec3 color = mix(colorDirtGrassDirt, colorRock, rockFactor);
-
- gl_FragColor = vec4(color, 1.0);
- }`;
diff --git a/tp/src/terrain.js b/tp/src/terrain.js
@@ -1,5 +1,4 @@
import * as THREE from 'three';
-import { vertexShader, fragmentShader } from '/src/shaders.js';
const widthSegments = 100;
const heightSegments = 100;