ฉันคิดว่าฉันเข้าใจสิ่งที่คุณถามตอนนี้ดีขึ้น
เสียงรบกวนไม่ได้สุ่ม - มันดูสุ่ม แต่ขึ้นอยู่กับสูตรทางคณิตศาสตร์อย่างสมบูรณ์และสามารถทำซ้ำได้ ข้อมูลทั้งหมดจะถูกเข้ารหัสในสูตร ซึ่งหมายความว่าคุณสามารถมีสูตรที่อาจครอบคลุมพื้นที่ไม่ จำกัด และใช้สูตรบนพิกัดของพื้นที่ที่คุณต้องการ เมื่อคุณต้องการพื้นที่ที่อยู่ติดกันคุณเพียงแค่ใช้สูตรบนพิกัดใหม่อีกครั้งและเนื่องจากสูตรให้ค่าอย่างต่อเนื่องพื้นที่จะเข้าร่วมได้อย่างราบรื่น
นี่คือตัวอย่างแบบง่าย ๆ โดยใช้ไซน์แทนเสียงเพอลินสำหรับการสร้างความสูงและการจินตนาการว่าโลกไม่มีที่สิ้นสุดในแกน X แต่มีเพียง 1 ยูนิตที่สูงในแกน Y และ Z
สูตรคือ: height(x,y) = sin(x/20)
เกมเริ่มต้นขึ้นและเราสร้างความสูงสำหรับพื้นที่ใกล้เคียงเช่น (0,0) ถึง (9,0):
[0.0, 0.05, 0.10, 0.15, 0.20, 0.25, 0.30, 0.34, 0.39, 0.43]
เรามีเนินเขาลุกขึ้นไปทางขวา สมมติว่าเราเดินไปจนสุดและต้องสร้างค่าจาก (10,0 ถึง 19,0) ตอนนี้:
[0.48, 0.52, 0.56, 0.61, 0.64, 0.68, 0.72, 0.75, 0.78, 0.81]
สังเกตว่าเนินเขายังคงเพิ่มขึ้นอย่างต่อเนื่องและค่าที่ (10,0) ตามมาอย่างดีจากที่ที่ (9,0) นี่เป็นเพราะฟังก์ชันไซน์นั้นต่อเนื่องซึ่งโดยทั่วไปหมายความว่าหากคุณป้อน 2 จำนวนที่อยู่ติดกันคุณจะได้ผลลัพธ์ 2 รายการติดกัน - สำหรับคำจำกัดความที่อยู่ติดกัน ดังนั้นหากคุณใช้พิกัดโลกของคุณเป็นพารามิเตอร์ของฟังก์ชันที่กำหนดโลกของคุณคุณจะได้รับภูมิทัศน์ต่อเนื่องที่ลงตัวกันไม่ว่าคุณจะสร้างมันขึ้นมามากหรือน้อยก็ตาม เมื่อคุณสร้างชิ้นส่วนใหม่พวกเขาจะไหลจากชิ้นส่วนที่มีอยู่โดยอัตโนมัติเนื่องจากความสูงได้ถูกกำหนดล่วงหน้าแล้ว
หากโลกไม่เปลี่ยนแปลงคุณก็ไม่จำเป็นต้องเก็บอะไรเลยเพราะคุณสามารถคำนวณได้ว่าอะไรคือความสูงที่จุดใดจุดหนึ่งจากสูตร เห็นได้ชัดว่ามีอะไรบางอย่างเช่น Minecraft โลกที่สามารถเปลี่ยนแปลงได้ทั้งหมดดังนั้นคุณเพียงแค่บันทึกแต่ละชิ้นในขณะที่คุณสร้างมันขึ้นมา เนื่องจากมีระดับความเชื่อมโยงสูงระหว่างชิ้นส่วนที่อยู่ติดกัน (เช่นถ้า 1 บล็อกเป็นหญ้ามีโอกาสมากกว่าที่บล็อกที่อยู่ถัดจากมันจะเป็นหญ้าด้วย) คุณสามารถบีบอัดข้อมูลได้อย่างมีประสิทธิภาพมาก ดี แต่แล้วก็เกือบทุกอัลกอริทึมการบีบอัดมาตรฐาน
ในขณะที่ฉันได้พูดคุยเกี่ยวกับความสูงเป็นค่าที่ชัดเจนที่สุดคุณสามารถใช้ระบบเดียวกันเพื่อสร้างคุณลักษณะที่คุณต้องการ ใช้ฟังก์ชั่นทางคณิตศาสตร์ที่มีคุณสมบัติต่อเนื่องและตำแหน่งที่เป็นพิกัดโลกของคุณและที่สามารถตัดสินใจว่ามีสถานที่สำคัญฝากแร่จุดวางไข่อะไรก็ตามที่คุณต้องการ (เห็นได้ชัดว่าค่าในสูตรหนึ่งอาจส่งผลกระทบต่ออีกอย่างหนึ่ง - ไม่มีจุดใดที่วางฝากถ่านหินไว้กลางอากาศดังนั้นคุณสร้างแผนที่ความสูงของโลกแล้วคำนวณความเป็นไปได้ของถ่านหินสำหรับบล็อกที่อยู่ต่ำกว่าพื้นดิน)