Mengapa lampu tidak menyala terus menerus pada model saya?

9

Saya membuat model kubus bertekstur dasar dengan Blender untuk berlatih pemodelan, dan kemudian saya mengimpornya ke Unity. Setelah saya memasang beberapa pencahayaan itu terlihat sangat jelek. Lampu tidak terus menerus pada deretan kubus bertekstur:

masukkan deskripsi gambar di sini

Apa yang lebih aneh, lampu pada blok yang membentuk lantai adalah terus menerus. Apa yang saya lakukan salah?

Ini seperti apa tanpa tekstur:

masukkan deskripsi gambar di sini

Jika saya tidak tahu bahwa ini adalah kubus yang sempurna, saya akan mengatakan ada sedikit kurva di permukaan. Saya juga mencoba meringankan tekstur tetapi juga tidak membantu:

https://dl.dropbox.com/u/45620018/lighter%20texture.PNG

Saya hanya mengekspor model dari Blender dan tidak mengatur normals atau hal-hal seperti itu. Namun, saya juga tidak melakukan sesuatu yang spesial dengan model bata lantai.

Memeriksa normals dan mereka tampaknya menunjuk ke arah yang benar.

masukkan deskripsi gambar di sini

Saya juga tidak benar-benar melihat perbedaan antara kedua model. Pada panel tekstur saya juga mengatur proyeksi ke flat:

masukkan deskripsi gambar di sini

Saya memeriksa panel yang berbeda di Blender dan satu-satunya pilihan yang berhubungan dengan normal pada panel "Object Data" adalah "Auto Smooth" ini dan dimatikan secara default:

masukkan deskripsi gambar di sini

nosferat
sumber
Apakah itu berfungsi dengan baik jika Anda menonaktifkan tekstur?
msell

Jawaban:

7

Dari gambar tanpa tekstur, saya cukup yakin masalahnya adalah bahwa model kubus Anda memiliki normals yang tidak sesuai. Anda perlu memberi tahu Blender bahwa tepi kubus Anda dimaksudkan untuk menjadi tajam, tidak mulus - yang Anda miliki sekarang adalah kubus yang bertindak seperti perkiraan bola enam sisi.

Saya tidak tahu Blender, jadi saya tidak bisa memberi tahu Anda cara menyelesaikan ini, tetapi ini mungkin disebut "datar", bukan wajah atau normal "mulus", atau mungkin ada cara untuk "mematahkan" tepi tertentu. Model ubin lantai Anda tampaknya memiliki normals yang benar, jadi mungkin Anda harus melihat apa yang berbeda tentangnya.

Kevin Reid
sumber
2
Anda benar, saya harus memberi tahu Blender untuk membuat ujungnya tajam. Saya bisa mencapai ini dengan pengubah EdgeSplit. ( wiki.blender.org/index.php/Doc:.4/Manual/Modifiers/Generate/… )
nosferat
Anda cukup memilih semua wajah di Blender dan memberi mereka bayangan "Rata" melalui menu sebelah kiri (yang diaktifkan oleh "T"). Atau, di Unity, Anda dapat memilih bagian atas hierarki impor Blender Anda, memilih untuk menghitung normalnya (alih-alih diimpor) dan kemudian memilih sudut penghalusan (memilih sesuatu seperti 60 akan memberi Anda efek yang Anda inginkan). Saya tidak berpikir ini benar-benar masalah normals, normals baik-baik saja, kalau tidak Anda tidak akan melihat apa pun di Unity (atau di Blender jika Anda akan mengaktifkan backface culling).
Shivan Dragon
4

Beberapa saran tentang apa masalahnya:

a) Sudahkah Anda memeriksa apakah semua wajah normal mesh menunjuk ke arah yang benar? Cukup mudah untuk melakukan ini di Blender)

b) Sudahkah Anda menerapkan pemetaan UV yang tepat? Unity mengekspor semua data tekstur berdasarkan cara Anda mengatur semuanya di Blender. Lihatlah panel Tekstur di Blender, terutama panel 'Pemetaan' di bawah Tekstur (idealnya, itu harus diatur ke UV.

(PS apa kebijakan di sini tentang lampiran atau memposting tautan ke file proyek, katakanlah tautan Dropbox atau Google Drive dalam pertanyaan? Ini seharusnya sangat sederhana untuk diperbaiki jika saya bisa melihat semua file.)

Balajeerc
sumber
2
Untuk menjawab pertanyaan lampiran Anda, di Stack Exchange, tautan eksternal ke file untuk masing-masing pertanyaan tidak disukai, karena cenderung hilang. Gambar harus diunggah ke hosting kami sendiri (melalui tombol unggah di editor) sehingga tim SE dapat memastikannya tetap ada. Tidak ada dukungan khusus untuk non-gambar (misalnya file Blender untuk pertanyaan ini), tetapi lebih baik untuk menemukan alternatif karena menjadi lebih seperti "tolong debug kode saya yang sangat besar" yang sangat tidak mungkin berguna bagi siapa pun kecuali penanya asli, bertentangan dengan tujuan SE.
Kevin Reid