คุณสมบัติของภูเขาที่ลดหลั่น


10

ฉันต้องการจำลองลักษณะภูมิประเทศแบบขั้นตอนที่ฉันพบในเว็บไซต์ผลงาน / บล็อกเมื่อสองสามวันก่อน

ภูมิประเทศเทอเรส

การอ้างถึงไซต์นั้นการสร้าง terracing ถูกสร้างขึ้นโดย "คูณ [ความสูงสุดท้าย] ด้วยค่าการหน่วงบางอย่างภายในช่วงความสูงที่แน่นอนเพื่อสร้างคุณลักษณะหุบเขาที่สวยงาม"

ฉันสงสัยว่าใครจะสามารถให้ตัวอย่างหรือขั้นตอนทางเทคนิคเพิ่มเติมเกี่ยวกับเรื่องนี้ได้บ้าง ในช่วงสัปดาห์ที่ผ่านมาฉันได้ค้นคว้าและเรียนรู้มากมายเกี่ยวกับวิธีการและวิธีปฏิบัติเกี่ยวกับภูมิประเทศ / พื้นผิวและวิธีปฏิบัติ แต่ฉันยังไม่เจออะไรที่อธิบายในรายละเอียดว่า 'การจับ' คืออะไรและฉันเริ่มหงุดหงิด


นั่นมันเรียบร้อยจริงๆ ฉันไม่สามารถเข้าใจได้ว่าเขาหมายถึงอะไร คุณได้ลองส่งอีเมลเพื่อน (มันมีอยู่ภายใต้ "ติดต่อ")?
Draco18 ไม่ไว้วางใจ SE

FYI: ในคำพูด & แหล่งที่มาของคุณคำว่า 'ทำให้หมาด ๆ ' แต่ต่อมาในคำถามของคุณคุณจะใช้ 'หนีบ' แทน
Pikalek

คำตอบ:


11

ฉันไม่ทราบว่าโครงการของพวกเขาทำอะไร แต่คุณสามารถใช้ฟังก์ชั่นการปรับความสูงได้ นี่คือตัวอย่างที่ใช้hจาก 0.0 ถึง 1.0 และส่งคืนความสูงใหม่จาก 0.0 ถึง 1.0:

function R(h) {
    var W = 0.4; // width of terracing bands
    var k = Math.floor(h / W);
    var f = (h - k*W) / W;
    var s = Math.min(2 * f, 1.0);
    return (k+s) * W;
}

มันคือฟังก์ชั่นที่มีลักษณะเช่นนี้เมื่อวางแผน - แกน x คือความสูงดั้งเดิมและแกน y คือความสูงใหม่:

ฟังก์ชั่นปรับความสูง

ฉันนำไปใช้กับรหัสของตัวเองและได้รับสิ่งนี้:

เอาท์พุทของฟังก์ชั่นลดหลั่น

คุณสามารถใส่ฟังก์ชั่นการปรับแต่งแบบใดก็ได้หรือรวมเข้าด้วยกันเพื่อให้ได้เอฟเฟ็กต์ที่เป็นระเบียบ คุณได้รับเทอเรซเมื่อมีส่วนแบนของเอาท์พุท


ฉันสาบานว่าจะมีทางเดินที่ราบรื่นในคำถามของผู้ถามที่ขึ้นไปบนระเบียง แต่เมื่อมองดูอีกครั้งฉันค่อนข้างมั่นใจว่ามันเป็นภาพลวงตา แต่ดวงตาของฉันยังคงยืนยันว่าไม่มีมีการเปลี่ยนแปลงความสูงที่นั่น (กึ่งกลางของภาพไปที่มุมบน / ขอบซ้ายบน) หากไม่มีการเพิ่มขึ้นคำตอบนี้ถูกต้อง
Draco18 ไม่ไว้วางใจ SE

1

การทำให้หมาด ๆเป็นศัพท์ฟิสิกส์สำหรับอิทธิพลภายในหรือต่อระบบการสั่นซึ่งมีผลในการลดการ จำกัด หรือป้องกันการแกว่ง

ฉันสงสัยว่าบทความต้นฉบับของคุณอาจมีการพิมพ์ผิด & หมายถึงการยึดซึ่งโดยทั่วไปหมายถึงการ จำกัด ค่าให้กับช่วงที่กำหนด

สำหรับการรับเอฟเฟ็กต์ภาพคุณอาจได้รับสิ่งที่คล้ายกันโดยการจับแถบของเสียงเมื่อภูมิประเทศถูกสร้างขึ้น แต่โซลูชันที่@amitpมอบให้ตรงกับคำอธิบายดั้งเดิมมากขึ้น

ตัวเลือกที่สามอาจใช้เทคนิคการกัดเซาะ นี่คือการสร้างชุดหน้าผาและชายหาดโดยการวางส่วนของพื้นที่ลาดชัน นี่เป็นอีกหนึ่งที่สามารถกัดเซาะยอดเข้าไปในที่ราบ


0

หลังจากหยุดพักนานมากตอนนี้ฉันเข้าใจแล้วว่าเอฟเฟกต์นั้นประสบความสำเร็จได้อย่างไรและมันก็ง่ายอย่างเหลือเชื่อ เอฟเฟกต์นี้มี 4 ส่วน:

  • แผนผังความสูงเริ่มต้นของภูมิประเทศ
  • การกำหนด 'ช่วง' ระเบียงด้วยความสูงต่ำสุดของระเบียงเป็น h1 และความสูงสูงสุดของระเบียงเป็น h2
  • ค่าการหน่วงที่ทำให้พื้นราบอยู่ในระดับความสูงของระเบียง
  • วินาที heightmap ช่วงที่ยาวขึ้นเพื่อปรับเปลี่ยนค่า h1 และ h2 ซึ่งเป็นวิธีที่เกิดขึ้นอย่างต่อเนื่องระหว่างเทอเรซ (ความสูงที่สามสามารถใช้เพื่อเพิ่มหรือลด h1 และ h2 โดยไม่ขึ้นกับแต่ละคนสร้างระเบียงขนาดใหญ่ขึ้นหรือเล็กลง)

นี่คือขั้นตอนการสร้างเอฟเฟกต์:

h1 = 1
h2 = 2
damp = .01

h = gen_noise(position)
hm = heightmod_noise(position)
if h1+hm <= initial_terrain_height =< h2+hm
  th = h * damp
elseif h2+hm < h
  th = h - (h2-h1) * damp
else
  th = h

(ที่แน่นอนคือความสูงของภูมิประเทศหลังจากเอฟเฟกต์การลดความเข้มถูกนำไปใช้)

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.