ฉันจะวาดรูปสี่เหลี่ยมเดียวที่มีพื้นผิวบนพื้นดิน (เช่นนอนอยู่บนระนาบ XZ) ที่เป็นใหญ่เป็นพื้นที่ที่มองเห็นควรจะเป็นแล้วเล่นรอบกับจุดเนื้อพิกัด (ที่มีพื้นผิวที่อยู่ในชุดโหมดไปห่อ ) เพื่อที่จะ โดยอัตโนมัติดูแลทั้งพื้นผิวการทำซ้ำและพื้นผิวการเลื่อน
- สำหรับการทำซ้ำแทนการตั้งค่าการประสานพื้นผิวแนวตั้งจาก [0 ถึง 1] ให้ตั้งค่าจาก [0 ถึง N] โดยที่ N คือจำนวนครั้งที่คุณต้องการให้พื้นผิวทำซ้ำ ปรับค่านี้ขึ้นอยู่กับความสูงของรูปสี่เหลี่ยมเมื่อเทียบกับความสูงพื้นผิวของคุณ
- สำหรับการเลื่อนฉันเพียงแค่เลื่อนการประสานพื้นผิวแนวตั้งดังนั้นแทนที่จะเป็นตั้งแต่ [0 ถึง N] มันจะอยู่ในช่วงตั้งแต่ [inc ถึง N + inc] โดยที่ค่าของincกำลังเพิ่มขึ้นหรือลดลงในแต่ละเฟรม บางครั้งฉันจะห่อincกลับไปที่จุดเริ่มต้นเพื่อป้องกันไม่ให้ล้น / อันเดอร์
แก้ไขฉันเพิ่งลองใช้สิ่งนี้ตามที่ฉันอธิบาย (แต่ใน XNA) และทำงานได้ค่อนข้างดี ดูวิดีโอสาธิตนี้ ซอร์สโค้ดที่นี่สำหรับผู้ที่สนใจ
ตัวอย่างเช่นด้วย N เท่ากับ 3 คุณจะได้รับบางสิ่งบางอย่างเช่นภาพด้านล่าง (ฉันวาดส่วนตรงกลางเป็นสีแดงเพื่อให้คุณสามารถดูว่าการเกิดซ้ำเกิดขึ้นที่ใด) จากนั้นการเปลี่ยนค่าของincจะทำให้การเลื่อนถนนในทิศทางเดียวหรืออื่น ๆ ขึ้นอยู่กับว่าคุณเพิ่มขึ้นหรือลดลง