จะเริ่มต้นเมื่อสร้างเครื่องมือแก้ไขภูมิประเทศ 3 มิติได้อย่างไร [ปิด]


22

ฉันกำลังมองหาการสร้าง (สำหรับการเริ่มต้น) เครื่องมือง่ายๆที่สามารถยกระดับลดลงราบเรียบและสัมผัสพื้นผิวได้

ดังนั้นสิ่งที่ฉันต้องทำเพื่อแก้ไขภูมิประเทศเช่นนั้นคืออะไร

และอาจมีทรัพยากรที่มีค่าในเรื่อง?

ใช่ลืมที่จะพูดถึงว่าฉันสนใจในเครื่องมือแก้ไขภูมิประเทศ 3 มิติ

คำตอบ:


24

สำหรับเครื่องมือแก้ไขภูมิประเทศ 3 มิติ 'คลาสสิค' ขั้นตอนอาจเป็นได้:

สร้างตาข่าย (เช่นตารางของสี่เหลี่ยมจัตุรัส, ทุกสี่เหลี่ยมที่ทำจากสองรูปสามเหลี่ยม), จุดยอดทั้งหมดจะถูกใช้ร่วมกันระหว่างรูปสามเหลี่ยม (เพื่อให้มีเพียงหนึ่งปกติต่อการแยก) ป้อนคำอธิบายรูปภาพที่นี่

สิ่งนี้ควรทำเป็น 3DMesh และแสดงผลในโปรแกรมของคุณ

ทำเครื่องมือในการเพิ่มและลดขนาด (เล็กลงและใหญ่กว่า) ของตาราง (คุณจำเป็นต้องคำนวณว่าที่ใดบนตาข่ายที่เคอร์เซอร์ของเมาส์อยู่และปรับเปลี่ยนจุดยอดของตาข่าย แต่ขึ้นและลงเท่านั้น)

สร้างพื้นผิวขนาดใหญ่ (เช่น 1024x1024x4 หรือดีกว่า) และพื้นผิวด้วยสิ่งที่เรียกว่าแผนที่แดง: ป้อนคำอธิบายรูปภาพที่นี่

ทำให้เป็นไปได้ที่จะทาสี (เช่น R, G, B หรือ Alpha ไม่ใช่สีชมพู) และเลือกพื้นผิวที่เปลี่ยนสีหลักที่น่าเกลียด (สีแดง, สีฟ้า, สีเขียว, อัลฟ่า) หรือมากกว่านั้น:

Shader (ที่คุณจะต้องสร้าง) ควรคูณพื้นผิวที่ดีเหล่านั้น (พูดด้วยหินหญ้า ... ) ด้วยความเข้มใน splatmap (อันที่น่าเกลียด) แล้วผสมให้เข้ากันตัวอย่างเช่น (กับ ชอบ 2 สีเท่านั้น) เช่นนี้: ป้อนคำอธิบายรูปภาพที่นี่

ขออภัยสำหรับภาพใหญ่ฉันตีด้วยกันในที่ทำงาน ...


อ่านี่ทำให้ชัดเจนขึ้น ในทางทฤษฎีหลังจากตาข่าย 3 มิติมันเป็นเพียงการวางตำแหน่งจุดขึ้น (ลง / ลง) และพื้นผิวในตัวอย่างนี้คุณได้ทำ "splatmap" ทางหลังจากที่ shader มีลักษณะคล้ายกับภูมิประเทศ "3D"?
joltmode

1
ถูกต้องสำหรับตาข่าย 3 มิติ Shader ไม่ได้ทำอะไรเป็นพิเศษกับ mesh (the vertex shader), งานใหญ่อยู่ในแฟรกเมนต์ - shader ("pixel shader") ที่การค้นหา texel จาก splatmap ให้หญ้า, หิน ฯลฯ พิกเซลสุดท้าย จะได้รับ (แน่นอนคุณสามารถมีพื้นผิว 'ฐาน' เช่นหินเช่นซึ่งจะอยู่ที่ 100% เสมอและพื้นผิวอื่น ๆ จะได้รับการสาดไป)
Valmond

6

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

เครื่องมือแก้ไขภูมิประเทศพื้นฐานนั้นไม่ใช่เรื่องยากที่จะเขียน แต่รายละเอียดจะแตกต่างกันมากขึ้นอยู่กับเกมที่คุณกำลังเล่นและภูมิประเทศประเภทที่คุณต้องการจะทำ


อืม mesh / array og heights / voxels เป็นต้นเป็นวิธีการเก็บข้อมูลที่ถูกจัดเก็บไว้ผมสนใจมากขึ้นเกี่ยวกับวิธีเขียนเครื่องมือเพื่อเติมข้อมูลนี้ ที่จริงแล้วฉันไม่มีความคิดทั้งหมดตัวแก้ไขภูมิประเทศมีลักษณะอย่างไร "เบื้องหลัง" ฉันสามารถ reverese วิศวกร แต่ในทางของฉันเองฉันเดิมพันที่มีแนวทางบางอย่างที่ฉันควรทำตาม แต่ ...
joltmode

2
-1 นี่ดูเหมือนคำตอบของฉันไม่มากนัก คุณกำลังถามคำถามซึ่งน่าจะเหมาะกับความคิดเห็นมากกว่า
bummzack

5

นี่เป็นเพียงการติดตามผลการตอบสนองของ Valmond แต่ดูเหมือนจะไม่เพียงพอในการเพิ่มความคิดเห็น

เมื่อคุณได้ทำการแก้ไขเบื้องต้นคุณอาจต้องการทดสอบโดยการสร้างความสูงบน GPU ทั้งหมด นี่เป็นตัวเลือกที่สมบูรณ์แบบ แต่เป็นวิธีที่ดีในการลดการทำงานลงใน GPU สำหรับภูมิประเทศที่เปลี่ยนแปลงตลอดเวลา Valmond ได้กล่าวถึงการกระจายพื้นผิวที่ทำบน Pixel Shader แต่สามารถใช้ Shader ที่จุดสุดยอดได้เช่นกันโดยใช้การค้นหาพื้นผิวเพื่อเพิ่มและลดจุดยอดในตาราง นี่คือการสอนเกี่ยวกับวิธีการทำสิ่งนี้ให้สำเร็จด้วย shader ที่ สิ่งที่ไม่ใช่ shader คือ C # และ XNA ที่เฉพาะเจาะจง แต่สิ่งที่สำคัญอยู่ในรหัส shader

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

โปรดทราบว่าไม่ใช่ทุกรุ่นของ Shader ที่รองรับการสุ่มตัวอย่างพื้นผิวบน Shader Vertex (ตัวอย่างเช่นใน HLSL ที่คุณต้องการอย่างน้อย Shader รุ่น 3.0)


0

คุณสามารถดู ETM ของ Ogre ได้ที่http://www.ogre3d.org/addonforums/viewforum.php?f=16ควรให้แนวคิดบางอย่างแก่คุณ Artifex Terraขึ้นอยู่กับว่าคุณต้องการเห็นมันในทางปฏิบัติ


2
ฉันแนะนำให้คุณรวมคำตอบและลบคำตอบที่ไม่ได้ใช้
joltmode

สำหรับ GPU สร้าง / จัดการภูมิประเทศตรวจสอบบทความ Scape ของ Gilliam de Carpentier อ่านข้อมูลอย่างมากในเรื่อง decarpentier.nl/scape-render
โยฮันน์

ตามที่ทอมแนะนำไว้แล้วบทความ Scape อาจแสดงเป็นข้อมูลอ้างอิงที่น่าสนใจเกี่ยวกับการสร้างและแสดงภูมิประเทศ แต่เนื่องจากข้อเสนอแนะดังกล่าวฉันได้โพสต์อีกบทความหนึ่งใน Scape ที่เกี่ยวข้องกับหัวข้อนี้มากขึ้นโดยครอบคลุมถึงขั้นตอนการแก้ไขด้วยแปรง ดังนั้นฉันแม้ว่าฉันจะแจ้งให้คุณทราบ www.decarpentier.nl/scape-brush-pipeline
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.