Ich erzeuge 2D Perlin Noise und mache es Terrain. Aber ich habe ein Problem damit. Es ist zu langsam.Wie kann ich meine Heightmap glatter machen? (Perlin Noise, OpenGL)
ich versuchte x
, z
Koordinaten unterteilt sind oder vervielfacht aber nicht funktioniert. Wie kann ich dieses Problem ohne Tessellation-Shader lösen?
EDIT:
Fragment Shader-Code:
#version 430
in vec3 pos;
in vec2 text;
in vec3 norm;
layout(binding=3) uniform sampler2D texture_1;
layout(binding=4) uniform sampler2D texture_2;
layout(binding=5) uniform sampler2D texture_3;
vec3 lightPosition = vec3(-200, 700, 50);
vec3 lightAmbient = vec3(0,0,0);
vec3 lightDiffuse = vec3(1,1,1);
vec3 lightSpecular = vec3(1,1,1);
out vec4 fragColor;
vec4 theColor;
void main()
{
vec3 lightVector = normalize(lightPosition) - normalize(pos);
float cosTheta = clamp(dot(normalize(lightVector), normalize(norm)), 0.5, 1.0);
if(pos.y <= 120){
fragColor = texture2D(texture_2, text*0.05) * cosTheta;
}
if(pos.y > 120 && pos.y < 150){
fragColor = (texture2D(texture_2, text*0.05) * (1 - (pos.y-120)/30) + texture2D(texture_3, text*0.05) * ((pos.y-120)/30))*cosTheta;
}
if(pos.y >= 150)
{
fragColor = texture2D(texture_3, text*0.05) * cosTheta;
}
}
Vertex-Shader-Code:
#version 430
in layout(location=0) vec3 position;
in layout(location=1) vec2 textCoord;
in layout(location=2) vec3 normal;
out vec3 pos;
out vec2 text;
out vec3 norm;
uniform mat4 transformation;
void main()
{
gl_Position = transformation * vec4(position, 1.0);
norm = normal;
pos = position;
text = position.xz;
}
Ohne Code, um weiterzumachen, ist es schwer, sinnvolle Vorschläge zu machen. Schau dir die einzelnen Teile an, die deine endgültige Farbe ausmachen. Ohne zu wissen, wie deine Shader aussehen ... nein, das war's. Ich kann nichts Genaueres posten. Schau dir die einzelnen Elemente an, die deine endgültige Farbe ausmachen, und finde heraus, welche nicht ganz richtig funktionieren. – Aumnayan
Sie könnten einen Pass machen, um die Punkte so zu verändern, dass sie einen Durchschnitt der Punkte bilden (vielleicht mit etwas Variabilität). – vu1p3n0x
Aumnayan - Beitrag bearbeiten mit Fragman und Vertex Shader –