Funktioniert Textur Splatting mit Three.js oder einem anderen Javascript 3D Rendering Framework? Wenn ja, würde ich gerne ein Beispiel vielleicht sogar Tutorial auf großem Gelände sehen. Wenn es nicht funktioniert, gibt es eine andere Möglichkeit, große Terrains zu kartieren? Danke.
Herausforderung angenommen!
Zuerst können Sie einen Vertex-Shader schreiben, der ein Graustufenbild aufnimmt und als Heightmap verwendet, und einen variierenden Float ( vAmount
unten genannt) enthält, der an den Fragment-Shader übergeben wird, um die anzuzeigenden Texturen zu bestimmen (Mischung) an diesem Punkt.
Als nächstes kommt der Fragment-Shader, der beliebig viele Texturen für verschiedene Höhen enthalten kann, und es gibt eine großartige eingebaute Funktion namens smoothstep
, die weiche Übergänge viel einfacher zu berechnen macht.
Ein Beispiel für Code für einen solchen Fragment-Shader:
%Vor% Dann können Sie THREE.ShaderMaterial
verwenden, um dies für ein gegebenes Netz zu verwenden. Der obige Code ist in Ссылка implementiert und erzeugt ein Ergebnis wie folgt:
Hoffe, das hilft dir, loszulegen. Glückliche Kodierung!