Perubahan siang dan malam sering meningkat di kalangan pengguna. Dan jika gerakan matahari itu sendiri cukup sederhana untuk diatur, maka untuk mencapai pekerjaan yang kurang lebih realistis *** SkySphere *** sudah jauh lebih sulit. |
Pada artikel ini, saya tidak berencana untuk menunjukkan segala macam cara untuk mengubah orientasi DirectionalLight dengan musim dan presesi. Mengenai hal ini, menurut saya, ada cukup banyak materi. Seseorang melakukan ini melalui Cetak Biru , tetapi saya menggunakan C ++ , sehingga jam terus berdetak di server dan secara berkala (setiap beberapa detik sekali) menyinkronkan jam klien. Pada saat yang sama, tidak ada gerakan terjadi di server. Bukan hal yang mulia untuk memindahkan matahari melintasi langit.
Selanjutnya, saya akan berbicara tentang masalah yang muncul dan menunjukkan versi saya meningkatkan BP_Sky_Sphere standar agar berfungsi dengan benar dengan siklus harian.
Sebelum modifikasi, akan sangat berguna untuk menyalin seluruh isi folder EngineSky ke direktori Anda agar tidak merusak Cetak Biru standar dan sumber daya yang terhubung dengannya.
Pertama-tama, saya ingin berbicara tentang bug (atau fitur) dari bola standar. StaticMesh terlampir untuk bola memiliki skala 400. Jika Anda mengubahnya menjadi 1, sepertinya tidak ada yang akan berubah, tetapi jika Anda berlari sedikit di depan Anda akan merasa seperti di film βThe Truman Showβ. Ya, bola ini, meskipun besar, memiliki perbatasannya sendiri. Masalah yang jelas untuk dunia terbuka, yang sangat mudah untuk diperbaiki dengan membuat bola bergerak dengan pemain.
Tentu saja, sebagai alternatif, Anda dapat membuat bola lebih besar, tetapi saya tidak terlalu terkesan dengan ide seperti itu.
Item berikutnya adalah pengaturan malam normal. Saya sangat tidak suka bahwa bintang-bintang hanya muncul di tengah malam, dan sisanya - itu hanya semacam malam yang berlarut-larut.
Ini juga cukup mudah diselesaikan dengan menyesuaikan kurva yang ada dan menambahkan yang baru.
Masalah selanjutnya adalah redaman cahaya untuk DirectionalLight dan SkyLight . Cukup aneh untuk mengamati bahwa pada malam hari dapat terlihat tidak lebih buruk daripada siang hari. Itu juga diselesaikan dengan sangat sederhana dengan menambahkan dan menyesuaikan kurva.
Mengubah Tingkat Pencahayaan
Nah, untuk pencuci mulut ... Bintang tidak bergerak! Jika malam itu panjang dan penuh kengerian , maka mungkin pemain tidak akan menyadarinya. Tetapi apakah kita untuk pendekatan yang serius?
Pertama, saya membuat tekstur bintang-bintang bergerak dengan menambahkan variabel tambahan pada materi.
Selama matahari bergerak di sepanjang bidang ekuator, semuanya teratur. Tetapi ketika mensimulasikan garis lintang tinggi, kesulitan matematika dimulai dan keengganan tekstur berputar seperti yang kita inginkan. Tetapi apakah kita untuk pendekatan yang serius? :)
Akibatnya, ia memutuskan untuk membuat dua bola surgawi. Satu dengan awan, matahari dan langit, dan yang kedua, sedikit lebih besar, dengan bintang-bintang. BP_Sky_Sphere juga menghubungkan bola tambahan dan dengan sopan memintanya untuk memutar dengan matahari ...
Dan bagian yang paling menarik! Jadikan bola langit yang lebih kecil sebagian transparan. Hanya dengan menghubungkan logika materi ke Opacity , tentu saja saya mendapatkan bintang-bintang indah yang bersinar melalui awan malam hitam. Karena itu, saya sekali lagi harus memodifikasi materi dengan file, sebenarnya menggambar dua langit. Satu dengan awan malam hitam untuk visual. Dan yang kedua, dengan selalu awan putih salju, untuk Opacity . Ditambah lagi, ia menambahkan banyak warna putih di siang hari, benar-benar membuat langit buram sehingga warna biru yang tembus pandang tidak membuat takut kedalamannya.
Sekarang semuanya berfungsi seperti yang dimaksudkan oleh Sang Pencipta, dalam hal ini - oleh saya. Tetap hanya untuk menyempurnakan kurva kontrol, tetapi secara keseluruhan terlihat cukup bagus.
Jika Anda memiliki ide tentang cara membuatnya lebih mudah, silakan bagikan. Saya akan berterima kasih.