Saya bekerja dengan XNA pada Game 3D, dan saya mencoba memiliki lingkungan yang baik dan bagus. Saya benar-benar mengikuti tutorial untuk membuat medan dari peta ketinggian. Untuk teksturnya, saya hanya menerapkan tekstur rumput di atasnya dan ubin beberapa kali.
Tetapi yang ingin saya lakukan adalah memiliki tekstur yang benar-benar realistis, tetapi juga menghasilkannya secara otomatis (misalnya jika saya ingin menggunakan suara Perlin untuk menghasilkan medan dan kemudian teksturnya).
Saya sudah belajar tentang multi-tekstur, memuat file peta dengan warna yang berbeda untuk tekstur yang berbeda, tetapi saya tidak berpikir ini sangat efisien, misalnya untuk tebing atau daerah yang sangat curam itu akan membentuk tekstur yang buruk karena pemandangan dari teratas. (Juga, aku tidak tahu bagaimana aku akan menggambar jalan atau jalan tanah dengan itu.)
Saya sedang mencari solusi yang efisien untuk pemetaan tekstur yang dihasilkan secara realistis secara realistis.
Jawaban:
Saya kira Anda tidak peduli dengan campuran peta atau percikan tekstur (karena itu tidak tergantung pada pemetaan UV Anda). Karena Anda secara khusus meminta meminimalkan distorsi yang disebabkan oleh pemetaan, Anda dapat membaca bagian 1.5 dari artikel Permata GPU ini:
https://developer.nvidia.com/gpugems/GPUGems3/gpugems3_ch01.html
Ini dapat bekerja bahkan di medan yang dihasilkan secara prosedural. Konsep ini juga dikenal sebagai "triplanar texturing" .
EDIT KEMUDIAN: Saya telah menguji teknik di renderer terain saya sendiri tanpa menggunakan uv yang telah dikomputasi untuk pemetaan. Yang harus Anda lakukan adalah menghitung 3 set UV untuk 3 bidang proyeksi yang berbeda (XY, YZ dan ZX). Ini dapat dicapai menggunakan potongan vertex dan fragmen shader sederhana:
VShader:
FShader:
sumber
Anda dapat menentukan satu set tekstur (rumput, tanah, batu) dan menggunakannya. Katakanlah menggunakan tiga lapisan ini (batu di bagian bawah, kotoran di atas dan rumput paling atas), Anda dapat menentukan tiga saluran alfa untuk menentukan seberapa banyak setiap tekstur terlihat. Mulailah dengan peta kebisingan sederhana untuk saluran alfa Anda dan mungkin pertimbangkan kemiringan medan. Semakin banyak lereng, semakin banyak batu yang akan bersinar. Ini adalah teknik yang disebut 'Texture Splatting' sejauh yang saya ingat. Berikut ini beberapa tautan untuk membantu Anda memulai. Advanced Texture Splatting (gamasutra)
TextureSplatting (charlesbloom, yang saya gunakan untuk memulai topik ini)
Anda harus bisa mendapatkan hasil yang terlihat bagus dengan topik yang cepat dan sangat bermanfaat
sumber