Selamat datang di blog PioDiamond.
Bayangan Blok |
Memang sebenarnya minecraft sudah punya bayangan blok dari shader
originalnya, hanya saja kurang terlihat di bawah pohon dan hanya
terlihat jika sudah memasuki goa. Jadi kita akan memperkecil nilai uv1.y
dengan menggunakan tambahan kode.
Langsung saja kita mulai. Jika teman-teman belum memiliki shader original minecraft, silakan download di sini. Kemudian, ekstrak ke Internal Storage > games > com.mojang > resource_packs. Setelah di ekstrak, silakan buka file renderchunk.fragment di folder Internal Storage > games > com.mojang > resource_packs > vanilla > shaders > glsl menggunakan text editor.
Nah, cari teks #ifdef FOG. Di atasnya, kita buat kode baru.
float bayangan = clamp(( uv1.y - 0.8 ) * 5.0, 0.45, 1.0 );
diffuse.rgb *= mix( bayangan, 1.0, uv1.x );
Kode yang telah di tulis ke renderchunk.fragment |
Untuk penjelasannya :
Fungsi clamp sama dengan rumus min( max(( uv1.y - 0.8 ) * 5.0, 0.45 ), 1.0 ); dimana fungsi min( x, y ) untuk menghasilkan nilai terkecil dari x dan y sedangkan max( x, y ) adalah kebalikannya.
Fungsi mix( x, y, z ); merupakan pengambilan nilai diantara nilai x dan y, tergantung dari nilai z. Jika nilai z bernilai 0, maka nilai keluaran dari fungsi mix adalah nilai x. sedangkan jika nilai z bernilai 1, maka nilai keluarnya adalah y. dan jika nilainya z adalah 0.5, maka nilai keluarnya adalah nilai tengah dari nilai x dan nilai y.
diffuse.rgb merupakan variable warna blok dari shader originalnya.
Sebenarnya ada banyak model dari pembuatan bayangan blok. Kalian bisa tonton video saya di youtube,
hanya saja karena ketika itu saya masih baru mengenal dunia shader,
jadi tidak saya sarankan untuk menggunakan kode yang ada di
video tersebut.
Dan mungkin itu saja yang bisa saya bahas di postingan kali ini. Silakan subscribe channel saya di sini untuk mendapatkan tutorial lainnya.
Note:
Mohon agar teliti saat menulis kode, karena salah pada besar dan kecil huruf dapat menyebabkan world transparan.
Mantap Bang :)
BalasHapusKok Yg Gelap Malah Dunia Nya Bang :v
BalasHapusEh iya, wkwk. udah di update dan udah di tes. yang ini gak salah lagi.
HapusOk Bang Makasih :)
Hapus:v rumus shader lebih susah dari pada rumus MTK
BalasHapusIya wkwkwkwkwkwkkw
HapusSama aja woi
HapusLevih susah rumus togel :D
HapusBang yg gelap kok dunianya?
BalasHapusBang gimana cara cerahkan daunya?
BalasHapuscaranya adalah
Hapusif( color.g > color.r ) {
diffuse.g += vec3( 0.2 );
}
yagitu aja sih biar airnya ga kena warnya kalo warnanya airnya juga ikut saya juga tidak tau saya masih belajar tentang "color" jadi ya maaf kalo ngebug
Cek channel Farell Gaming YT saya merilis shaders saya tapi masih sedikit soalnya masih baru hehe...
promosi.
Hapuslol cok
Bang daripada kaya gitu, mending pake smoothstep aja
BalasHapusMisal
float shadow = smoothstep(0.876,0.869,uv1.y);
shadow *= (1.-uv1.x);
float gelap = 0.7;
shadow = mix(0.,gelap,shadow);
diffuse.rgb = mix(diffuse.rgb,vec3(0),shadow);
agak panjang tapi shadownya bakal smooth
bro itu udh selesai codenya?
Hapusgimana bang solusinya kalo block slab gaada bayangannya
Hapusif(((uv1.y<shdY-0.0010)||(shdX<0.64))&&fog_flag==0.0){
Hapusdiffuse.rgb *= Shadow_Color;
}
if(((uv1.y<shdY-0.0020)||(shdX<0.63))&&fog_flag==0.0){
diffuse.rgb *= Shadow_Color;
}
if(((uv1.y<shdY-0.0030)||(shdX<0.62))&&fog_flag==0.0){
diffuse.rgb *= Shadow_Color;
}
if(((uv1.y<shdY-0.0040)||(shdX<0.61))&&fog_flag==0.0){
diffuse.rgb *= Shadow_Color;
}
Taronya Kodenya Sama kayak yang diatas :v
Tolong tunjukkin tutorial buat lens flare dong,bang
BalasHapustinggal ambil aja XD
HapusBang warna daunnya kok jadi gelap
BalasHapusKomentar ini telah dihapus oleh pengarang.
BalasHapusDi mcpe versi alpha color.a masih berfungsi. jadi,uv1.y bisa diubah ke color.a.Tapi di mcpe versi beta Mojang telah mengubah color.a menjadi color.g.
BalasHapusBang, clamp gak terlalu sama kaya min(max()), soalnya kalo maxnya(0.45) maka codenya akan dibatasi sekaligus di tambah dari 0.45
BalasHapusbang kalo boleh tau code editornya apa ya? hehe
BalasHapussublime yg ada di komputer
HapusBang solusi buat block slab gaada bayangannya gimana ya? sama barangkali kalo tau cara ngasih player shadow, terimakasih
BalasHapusBang,Kalau pake shaders selain vanilla, bisa kan?
BalasHapusTutorial dirlight bg
BalasHapus