Three.js: Peta bayangan - Membuat bayangan pada bidang transparan

Dibuat pada 23 Apr 2012  ·  28Komentar  ·  Sumber: mrdoob/three.js

Hai,

Saya perlu melemparkan bayangan pada bidang transparan agar hanya bayangan yang ditampilkan dan bukan materi yang diterapkan pada bidang (saya ingin itu sepenuhnya transparan). Apakah ini mungkin di three.js? Saya menggunakan THREE.SpotLight sebagai sumber cahaya.

Sebagai solusi solusi, saya rasa saya bisa menerapkan peta tekstur transparan sepenuhnya sebagai material dan melihat apakah berfungsi seperti yang diharapkan tetapi bertanya-tanya apakah saya bisa mendapatkan efek ini hanya dengan mengubah properti material standar.

Terima kasih

Question

Komentar yang paling membantu

Mulai dari r77 ShadowMaterial sekarang menjadi inti.

Semua 28 komentar

Oke, solusi yang dicoba tidak berfungsi karena saya tidak bisa mendapatkan bayangan apa pun pada bidang yang dipetakan tekstur transparan ...

Saya tidak berpikir itu mungkin.

Saya tidak yakin saya mengerti pertanyaannya tetapi bayangan harus dicor pada bahan transparan.

Yang seharusnya tidak berhasil adalah cahaya yang menembus bahan transparan. Artinya, semuanya buram penuh atau transparan sepenuhnya untuk bayangan, tidak ada di antaranya, terlepas dari transparansi material.

Lihat juga diskusi di # 1509

Yang seharusnya tidak berhasil adalah cahaya yang menembus bahan transparan. Artinya, semuanya buram penuh atau transparan sepenuhnya untuk bayangan, tidak ada di antaranya, terlepas dari transparansi material.

Ya, saya pikir itu yang dia maksud.

Sebagai referensi, jika ada yang membutuhkannya http://pastie.org/5088640

@skrat Terima kasih banyak untuk shader itu. Bekerja dengan sempurna untuk penangkap bayangan!

@ etx uh, apa yang dilakukan shader itu? : U

Itu hanya memberi saya bayangan w / alpha dan sisa objek dengan shader itu tidak terlihat. Ini mirip dengan penangkap bayangan dalam perangkat lunak CGI. Saya menggunakan threejs untuk membuat produk di atas foto, jadi ini sangat berguna.

Oh iya. Jadi ini memberi Anda tekstur hitam dengan visibilitas yang disimpan di saluran alfa. Benar?

Ya!

@etx Bagaimana Anda bisa melakukannya dengan menggunakan shader di atas? yang saya dapatkan hanyalah sebuah pesawat hitam ......

Saya telah mencari cara untuk mendapatkan efeknya, namun, menggunakan potongan di atas saya mendapatkan kesalahan THREE.WebGLShader: Shader couldn't compile. .

@skrat, ada kemungkinan Anda dapat mengupload ulang shader itu? tautan pastie tidak berfungsi lagi dan saya telah mengalami masalah yang sama persis .. terima kasih sebelumnya!

@etx @skrat dapatkah Anda mengupload ulang shader yang diperbarui? Yang Anda posting sepertinya tidak berfungsi lagi, seperti @JosephClay saya mendapatkan kesalahan "shader tidak bisa mengkompilasi" ...

Coba THREE.ShadowMaterial() . Lihat posting stackoverflow ini .

@WestLangley menurut Anda apakah kita harus mempromosikan ShadowMaterial ke inti?

@WestLangley terima kasih banyak - itu menyelesaikannya. @mrdoob Saya rasa ini adalah fitur yang sangat berguna yang banyak diketahui dari GCI jadi ini mungkin promosi yang bagus untuk inti

@WestLangley menurut Anda apakah kita harus mempromosikan ShadowMaterial ke inti?

Saya tidak memiliki perasaan yang kuat dengan satu atau lain cara ... Jika saya tidak salah, itu menderita kekurangan yang sama seperti MeshLambertMaterial - texel dalam bayangan satu cahaya tidak mendapat cahaya dari cahaya lain .

Ya, itu topeng. Pada dasarnya bagaimana bayangan lama dulu.

Hai,

ShadowMaterial terdengar seperti apa yang saya butuhkan dan saya sangat senang Anda telah menerapkannya - tetapi saya tidak dapat mengetahui versi three.js yang perlu saya unduh / tautkan agar berfungsi. Bisakah Anda mengarahkan saya ke arah yang benar?

r74 atau lebih baru

Terima kasih! Saya masih mendapatkan TIGA. ShadowMaterial bukan konstruktor.

Belum termasuk dalam build, itu ada di folder contoh. Anda perlu memasukkannya secara terpisah:

<script src="js/materials/ShadowMaterial.js"></script>

akan mempromosikannya ke inti juga, itu 4kb

Sempurna, terima kasih! Saya mencari file shadowMaterial sebelumnya dan tidak dapat menemukannya.
Bekerja dengan luar biasa untuk kebutuhan saya.

Mulai dari r77 ShadowMaterial sekarang menjadi inti.

@rdoob langkah yang bagus terima kasih

Coba THREE.ShadowMaterial() . Lihat posting stackoverflow ini .

Terima kasih.
Berhasil!

Apakah halaman ini membantu?
0 / 5 - 0 peringkat

Masalah terkait

konijn picture konijn  ·  3Komentar

makc picture makc  ·  3Komentar

clawconduce picture clawconduce  ·  3Komentar

filharvey picture filharvey  ·  3Komentar

Horray picture Horray  ·  3Komentar