คำถามติดแท็ก perlin-noise

10
คุณสร้างเสียงเพอร์ลินแบบเรียงต่อกันได้อย่างไร
ที่เกี่ยวข้อง: การสร้างเสียงรบกวนง่าย การทำความเข้าใจเสียงเพอร์ลิน ฉันต้องการสร้างเสียงเพอร์ลินแบบเรียงต่อกันได้ ฉันทำงานจากฟังก์ชั่นของ Paul Bourke PerlinNoise*()ซึ่งเป็นแบบนี้: // alpha is the "division factor" (how much to damp subsequent octaves with (usually 2)) // beta is the factor that multiplies your "jump" into the noise (usually 2) // n is the number of "octaves" to add in double PerlinNoise2D(double x,double …

3
ฉันจะสร้างภูมิประเทศสไตล์ Worms ได้อย่างไร
ฉันกำลังทำงานกับเกมสไตล์ Worms และต้องการที่จะสร้างภูมิประเทศบางขั้นตอน ก่อนหน้านี้ฉันเคยสร้างภูมิประเทศมามากมายโดยใช้เสียงเพอร์ลินและนี่คือสิ่งที่ฉันเริ่มใช้สำหรับเกมนี้ ปัญหาเดียวของมันคือมันง่ายเกินไปและน่าเบื่อทำให้ฉันมีเนินเขาบ้าง แต่ไม่ใช่ความซับซ้อนที่ฉันต้องการ ฉันต้องการมีคุณสมบัติเช่นถ้ำและภูเขาที่แขวนและฉันไม่สนใจเกาะลอยและเช่นนั้น บางอย่างเช่นนี้ แต่แม้จะเป็นคนบ้าคลั่งก็โอเค: ฉันคิดว่าการสร้างภูมิประเทศครั้งแรกด้วยเสียงเพอร์ลินคลาสสิคจากนั้นก็เอาชิ้นส่วนออกเพื่อสร้างถ้ำและอะไรที่ไม่ใช่ มีทางเลือกอื่นในการสร้างภูมิประเทศเช่นนี้หรือไม่?

4
การสร้างเสียงรบกวนง่าย
ฉันต้องการสร้างเสียงที่มีลักษณะเช่นนี้: (เอื้อเฟื้อภาพแห่งความเข้าใจเสียงเพอร์ลิน ) โดยทั่วไปฉันกำลังมองหาเสียงที่มี "ระลอก" เล็ก ๆ จำนวนมาก ต่อไปนี้เป็นสิ่งที่ไม่พึงประสงค์: มีวิธีง่าย ๆในการทำเช่นนี้? ฉันเคยดูเพอร์ลินและซิมเพล็กซ์เป็นเวลาหนึ่งสัปดาห์แล้วและฉันไม่สามารถใช้งานได้ใน JavaScript หรือเมื่อฉันทำฉันไม่มีพารามิเตอร์ที่ถูกต้องในการสร้างภาพดังกล่าวหรือไม่น่าตื่นเต้น ช้า. ฉันเข้าใจว่า 3 ภาพที่ฉันโพสต์อาจทำได้ด้วยอัลกอริทึมเดียวกัน แต่ในระดับที่แตกต่างกัน แต่ฉันไม่ต้องการอัลกอริทึมนั้น ฉันต้องการอัลกอริธึมที่ง่ายมาก ๆ เพื่อให้ได้ภาพในรูปแรก บางทีการทำให้เปรอะเปื้อนบางอย่างอาจใช้งานได้ แต่ฉันไม่สามารถจัดการเพื่อให้ได้ผลลัพธ์ ฉันกำลังพัฒนาสิ่งนี้ใน JavaScript แต่โค้ดชนิดใดก็ได้หรือแม้แต่คำอธิบายที่ง่ายและละเอียดจะทำงานได้

4
วิธีง่าย ๆ ในการสร้างหน้ากากแผนที่เกาะ
ฉันกำลังค้นหาวิธีที่ดีและง่ายในการสร้างมาสก์สำหรับแผนที่เกาะด้วย C # โดยทั่วไปฉันใช้กับแผนที่ความสูงแบบสุ่มที่สร้างด้วยเสียงเพอร์ลินซึ่งภูมิประเทศไม่ได้ล้อมรอบด้วยน้ำ ขั้นตอนต่อไปคือการสร้างหน้ากากเพื่อให้แน่ใจว่ามุมและเส้นขอบเป็นเพียงน้ำ จากนั้นฉันก็สามารถลบหน้ากากออกจากภาพเสียงเพอร์ลินเพื่อเกาะได้ และเล่นกับความคมชัด .. และเส้นโค้งการไล่ระดับสีฉันสามารถรับความสูงของเกาะได้เช่นเดียวกับที่ฉันต้องการ .. (นี่เป็นเพียงตัวอย่างของหลักสูตร) อย่างที่คุณเห็น "ขอบ" ของเกาะเพิ่งถูกตัดออกซึ่งไม่ใช่ปัญหาใหญ่ถ้าค่าสีไม่ขาวเกินไปเพราะฉันจะแบ่งสีเทาออกเป็น 4 ชั้น (น้ำทรายหญ้าและ ร็อค) คำถามของฉันคือฉันจะสร้างมาสก์หน้าตาดีได้อย่างไรในภาพที่สอง? UPDATE ฉันได้พบเทคนิคนี้ดูเหมือนว่าจะเป็นจุดเริ่มต้นที่ดีสำหรับฉัน แต่ฉันไม่แน่ใจว่าฉันจะสามารถนำไปใช้เพื่อให้ได้ผลลัพธ์ที่ต้องการได้อย่างยอดเยี่ยมเพียงใด http://mrl.nyu.edu/~perlin/experiments/puff/ อัพเดท 2 นี่คือทางออกสุดท้ายของฉัน ฉันใช้งานmakeMask()ฟังก์ชั่นภายในลูปการทำให้ปกติของฉันเป็นแบบนี้: //normalisation for( int i = 0; i < width; i++ ) { for( int j = 0; j < height; j++ ) { …

3
ฉันจะสร้างทะเลสาบและแม่น้ำสุ่มในเกมของฉันได้อย่างไร
ฉันมีเกมสร้างบล็อก 2 มิติและพยายามสร้างทะเลสาบและแม่น้ำที่สร้างแบบสุ่ม ฉันได้ดูอัลกอริธึมสัญญาณรบกวนของ Perlin แล้ว แต่ฉันไม่สามารถสร้างผลลัพธ์ที่ดีและสุ่มได้ ฉันพยายามใช้ห้องสมุดเสียงหลามแต่ก็ไม่ได้สร้างแผนที่แบบสุ่มมาก มีฟังก์ชั่นของเมล็ดพันธุ์ที่ฉันขาดหายไปในห้องสมุดนั้นเพื่อให้สุ่มขึ้นหรือไม่? ฉันจะเปลี่ยนแปลงตัวแปรใดหากฉันต้องการให้สุ่มเพิ่มขึ้น? ถ้าเป็นไปได้ให้คำตอบทางเทคนิคกับฉันน้อยลงโดยใช้คณิตศาสตร์น้อยลง แผนที่เป็นแผนที่เรียงต่อกันแบบสองมิติ นี่คือตัวอย่างบางส่วนของการไม่สุ่มของอัลกอริทึมอื่น ๆ รหัสต่อไปนี้ถูกเอาท์พุท 3 ครั้งในแถว ฉันสุ่มอ็อกเทฟและความถี่ด้วยสิ่งนี้:freq = 16.0 * random.randint(1, 500000) * 0.000001 + 0.5 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 …

2
เร่งการสร้างพื้นผิวขั้นตอน
เมื่อไม่นานมานี้ฉันเริ่มทำงานกับเกมที่เกิดขึ้นในระบบสุริยจักรวาล หลังจากเส้นโค้งการเรียนรู้เล็กน้อย (โดยที่ไม่เคยทำงานกับ Scala, OpenGL 2 ES หรือ Libgdx มาก่อน) ฉันมีการสาธิตเทคโนโลยีพื้นฐานที่คุณหมุนรอบดาวเคราะห์ที่มีพื้นผิวเดียว: ปัญหาที่ฉันพบคือประสิทธิภาพของการสร้างพื้นผิว ภาพรวมอย่างรวดเร็วของสิ่งที่ฉันทำ: ดาวเคราะห์เป็นลูกบาศก์ที่ได้รับการเปลี่ยนรูปทรงกลม ในแต่ละด้านจะมีการใช้พื้นผิว anxn (เช่น 256 x 256) ซึ่งรวมอยู่ในพื้นผิว 8n xn หนึ่งอันที่ถูกส่งไปยังส่วนย่อย ไม่ได้ใช้ช่องว่างสองอันสุดท้ายพวกเขาอยู่ที่นั่นเพื่อให้แน่ใจว่าความกว้างเท่ากับกำลังงาน 2 พื้นผิวถูกสร้างขึ้นบน CPU ในปัจจุบันโดยใช้อัลกอริธึมเสียงรบกวน simplex เวอร์ชั่น 2012 ที่เชื่อมโยงกับกระดาษ'Simplex เสียง demystified '. ฉากที่ฉันใช้ทดสอบอัลกอริธึมมีสองทรงกลม: ดาวเคราะห์และพื้นหลัง ทั้งสองใช้พื้นผิวแบบ greyscale ซึ่งประกอบด้วยเสียงหกมิติแบบหกเสี้ยวง่ายเช่นถ้าเราเลือก 128x128 เป็นขนาดพื้นผิวมีขนาด 128 x 128 x 6 x 2 …

1
ภูมิประเทศเรียบ Voxel
ในโครงการส่วนบุคคลฉันพยายามสร้างตัวสร้างภูมิประเทศที่จะสร้างภูมิประเทศที่ดูคล้ายกับภูมิประเทศที่ราบเรียบของ Castle Story หากคุณไม่เคยเห็นมาก่อนนี่: อย่างที่คุณเห็นมันคือการรวมกันของบล็อกและบล็อก "ราบรื่น" สิ่งที่ฉันพยายามทำเพื่อเลียนแบบรูปลักษณ์นี้คือให้แผนผังความสูงขนาดเล็กแต่ละบล็อก โดยทั่วไปแล้วใช้งานได้ แต่มีบางประเด็นที่ให้ภูมิประเทศเช่นนี้: ปัญหาคือว่าแต่ละบล็อกมี 1x1x1 แต่บางครั้งความสูงของตำแหน่งใดตำแหน่งหนึ่งเป็นค่าลบหรือ> 1 ในกรณีนี้ฉันคลิปมันและตั้งค่าความสูงเป็น 0 หรือ 1 เพื่อแสดงให้เห็นถึงสิ่งที่ฉันหมายถึงนี่คือแผนภาพ: เพื่อสร้างความสูงฉันโดยทั่วไปทำ: genColumn(int x, int z) { int highestBlockY = (int)noise2d(x, z); bool is_surface = true; for(int y = max_height - 1; y >= 0; y--) { Block b; if(is_surface) { b = …

2
การสร้างถ้ำที่มีหนอน Perlin
ขณะนี้ฉันกำลังพยายามสร้าง Minecraft เช่นภูมิประเทศ voxel ด้วย 3D Simplex Noise และยังต้องการใช้ถ้ำ ฉันพบวิธีการของ Perlin Worms ในชุดข้อความนี้ซึ่งสร้างผลลัพธ์ที่ดีจริงๆ อย่างไรก็ตามฉันไม่มีเงื่อนงำเกี่ยวกับวิธีสร้างเป็นชิ้นโดยพื้นฐาน เป็นไปได้หรือมีทางเลือกอื่นใดที่สร้างเวิร์มที่คล้ายกันเช่นถ้ำบนก้อนโดยพื้นฐาน? แก้ไข: นี่คือปัญหาที่ฉันไม่ทราบวิธีการแก้ไข แก้ไข 2: นี่เป็นผลมาจากการรวมสัญญาณรบกวน Multifractal 2 มิติกับความสูงของสัญญาณรบกวนแบบ Simplex ยังคงต้องการการปรับแต่ง แต่นี่เป็นผลลัพธ์ที่ฉันต้องการ ขอบคุณ Byte56

2
จะลบภูมิประเทศลอยเมื่อสร้างด้วย 3D Perlin Noise ได้อย่างไร
ขณะนี้ฉันกำลังใช้ 3D Perlin Noise เพื่อสร้างภูมิประเทศแบบสุ่มร่วมกับ Marching Cubes ปัญหาของฉันดูเหมือนจะอยู่ในการปรับฟังก์ชั่นเสียงรบกวนเพื่อให้ได้ความสูงที่เหมาะสมในภูมิประเทศของฉัน หากมีการใช้อ็อกเทฟเพียงหนึ่งจุดทุกจุดที่สัมพันธ์กับเสียงรบกวนจะถูกสอดแทรกอย่างชัดเจนซึ่งทำให้ได้ข้อมูลที่ค่อนข้างราบ อย่างไรก็ตามเพื่อให้ได้ระยะยื่น / ถ้ำ / ภูมิประเทศขรุขระฉันต้องใช้อ็อกเทฟหลาย ๆ ตัวที่มีแอมพลิจูดที่แตกต่างกันและ / หรือปรับขนาดค่าผลลัพธ์ให้เป็นความสูง 'สูงสุด' ที่ฉันต้องการของแผนที่ ฉันอาจจะพลาดอะไรบางอย่าง แต่ด้วยการใช้ลูกบาศก์เดินกับเสียงเพอร์ลิน 3 มิติฉันจึงได้รับภูมิประเทศที่ลอยอยู่เป็นประจำ ความคิดเห็นใด ๆ เกี่ยวกับวิธีที่ฉันสามารถแก้ไขหรือถ้ามีฟังก์ชั่นเสียงรบกวนอื่น ๆ ที่ฉันอาจใช้เพื่อให้ได้ผลลัพธ์เหมือนที่ฉันอธิบาย ฉันต้องการเนินเขา / หุบเขา / ภูเขา / ทะเลสาบ / ฯลฯ ไม่จำเป็นต้องแยกบิตที่ลอยอยู่ออกจากส่วนที่เหลือของแผนที่ ฉันเชื่อว่านี่เป็นปัญหาที่คล้ายคลึงกับสิ่งที่ Minecraft มีเมื่อมันมีภูมิประเทศที่ลอยอยู่บนท้องฟ้าเป็นครั้งคราวในรุ่นต่อไป ขอบคุณสำหรับความช่วยเหลือ Mythics
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.