Sabtu, 28 Maret 2020

Mengatur Pewarnaan World di Minecraft Pocket Edition (PE)

Halo teman-teman,
 Selamat datang di blog PioDiamond.

Pioshader v5.2 Beta
 Kali ini, kita akan membahas tentang bagaimana mengatur pewarnaan world di Minecraft PE. Tetapi di artikel ini saya belum membahas pewarnaan menggunakan tonemap. Tonemap akan saya bahas di artikel selanjutnya.

 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.

Kontras
 Kode untuk kontras sangat simpel, yaitu hanya melakukan pengalian atau pembagian. Contohnya :
diffuse.rgb *= 1.2; 
Kode sama dengan diffuse.rgb = diffuse.rgb * 1.2;
 Kode diletalan di atas teks #if !defined(ALWAYS_LIT). Jika 1.2 diganti dengan angka yang lebih tinggi maka blok terang seperti Block of Iron, Pasir, Snow, dll. akan menyakitkan mata ( Pahami sendiri kalo gak paham, wkwk ).
Original
diffuse.rgb *= 1.2;
Brightness
 Kode kecerahan/brightness juga sama dengan kontras, hanya saja dilakukan penambahan atau pengurangan nilai. Seperti kode di bawah ini.
diffuse.rgb -= 0.1;
Kode sama dengan diffuse.rgb = diffuse.rgb - 0.1;
 Kode diletalan di atas teks #if !defined(ALWAYS_LIT).
Original
diffuse.rgb -= 0.1;
Saturasi
 Untuk saturasi, kalian bisa gunakan kode di bawah ini dan di letakan di atas void main(). ( Sumber : https://github.com/CesiumGS/cesium/blob/master/Source/Shaders/Builtin/Functions/saturation.glsl )
vec3 saturation(vec3 rgb, float adjustment)
{
    const vec3 W = vec3(0.2125, 0.7154, 0.0721);
    vec3 intensity = vec3(dot(rgb, W));
    return min( mix(intensity, rgb, adjustment), vec3( 1.0, 1.0, 1.0 ));
}
  Cara pakainya, cari teks #if !defined(ALWAYS_LIT). kemudian tulis kode di atasnya seperti kode di bawah ini.
diffuse.rgb = saturation( diffuse.rgb, 1.5 );
 Angka 1.5 bisa diganti sesuai keinginan kalian. 1.0 jika tanpa saturasi, 2.0 untuk double saturasi dan 0.0 untuk abu-abu.
Original
diffuse.rgb = saturation( diffuse.rgb, 1.5 );
Penyesuaian Warna
 Nah, selain tiga kode di atas kalian juga bisa menyesuaikan warna pada blok. Dalam pewarnaan hanya ada tiga warna dasar, yaitu RGB atau Merah, Hijau dan Biru. Jadi kita membutuhkan tipe data vec3. Misalnya, saya ingin world Minecraft PE saya sedikit lebih biru. Maka kodenya :
vec3 warna = vec3( 0.85, 0.85, 1.2 );
diffuse.rgb *= warna;
Original
diffuse.rgb *= warna;
Catatan
 Posisi kode tentu akan mempengaruhi hasil. Sama seperti mengerjakan soal matematika. Maksudnya? Oke, contohnya jika 1 + 2 * 2 = 1 + 4 = 5. Tentu akan berbeda dengan ( 1 + 2 ) * 2 = 3 * 2 = 6. Berbeda bukan? Nah, jadi ini bukan masalah pintar atau nggak masalah matematika. Hanya saja lebih kebagaimana mengatur logika.

 Sisanya bisa kalian kreasikan sendiri, untuk pewarnaan world. Ada baiknya kalo lebih sering dicoba-coba agar semakin tau. Atau kalian bisa coba aplikasi Shader editor di playstore untuk membuat kode sebelum digunakan ke Minecraft PE.


32 komentar:

  1. Aku dah bisa exposure bang

    Kodenya:

    Taruh di atas void main()

    vec3 czm_exposure(vec3 diffuse)
    {
    float gamma = 0.0;
    float exposure = 1.7;
    diffuse *= exposure/(1. + diffuse / exposure);
    //.diffuse = pow(diffuse, vec3(1. / gamma));
    return diffuse;
    }

    Lalu didalam void main()

    vec3 exposure = czm_exposure(vec3(diffuse.rgb));
    diffuse.rgb = exposure;

    BalasHapus
    Balasan
    1. exposure Itu apa? :v
      Maaf Saya Gk Ngerti Apa Itu exposure Soalnya Saya Masih Pemula :v

      Hapus
    2. Coba dulu di shader editor.

      Hapus
    3. next tutorial bikin water noise

      Hapus
    4. Habis itu kodenya apalagi

      Hapus
    5. exposure itu sama seperti kecerahan. Saudaraan dengan brightness

      Hapus
  2. Bang saya pengen nanya gimana cara gituin kode underwater diminecraft kayak ada cahaya matahari yang masuk ke airnya?

    BalasHapus
    Balasan
    1. Dan waving water kayak air bergelombang gitu gimana caranya bang Pio?

      Hapus
  3. Saya masih berharap kode sore hari, dan juga direct light

    BalasHapus
    Balasan
    1. Gw tau kode Direct Light,kodenya memakai position.

      Hapus
    2. Assalamualaikum MC ALFA, kode direct lightnya bagaimana ?, boleh dituliskan disini ga ?

      Hapus
    3. wa'alaikum salam,creypadd.
      njer malah gw yg jawab:v
      mau kode direct light?
      vec3 nama = (1.0-ceil(fract(position)));

      lanjutan?chet saya di fb:

      zensky(ProNoob Coder)

      Hapus
  4. Oh itu hanpir sama dengan tonemap.
    Suka dicampur orang sama tonemap.

    BalasHapus
  5. Kak nama fb pio diamond apa?
    Atau ada yg tau facebook kak pio diamond?
    Aku bth bnget.

    BalasHapus
  6. Kalo gw pake apk protoshade buat ngedit seperti:
    Efek Spacular,Parallax Oclussion Mapping(POM),Normal Map,dll.

    BalasHapus
  7. up:v

    banyak orang ga tau bahwa nama asli efek matahari sampe ke dalem aer itu "caustic"����

    padahal itu bukan hanya shader��

    BalasHapus
  8. Up:v
    Numpang iklan:v
    btw,yok ikut gabung di grup fb:
    - Minecraft Indonational
    - M.S.E. Official Group(Minecraft Shader Education Official Group)

    ikut gabung di 2 grup facebook diatas untuk bisa belajar lebih banyak tentang shader Minecraft.

    note:
    kalo si pio diamond mau ikut gabung juga,gak apa apa:v

    my fb: zensky(ProNoob Coder)

    BalasHapus
  9. Bg pio pls buat tutorial untuk win10 karena saya mau buat texture pack

    BalasHapus
  10. Bang kode bayangan pohon apa ya?

    BalasHapus
    Balasan
    1. oi liat youtube dia lah dia kan dah pernah bikin tutorial bayangan pohon :v

      Hapus
  11. Bang saya menggunakan Cara Ke 3, Tapi kok masih ngeblank ya🤔

    BalasHapus
  12. Bng gua mau tanya nih, bisa gk kalo kode kontras dan kode brighness di gunakan dua2nya ,soalnya aku mau menurunkan brightenss dan menaikan kontras , dijawab. Ya

    BalasHapus
  13. Bang bisa koleb dengan aku
    Bisa lewah email
    diamondpersib@gmail.com

    BalasHapus
  14. Bang bisa koleb dengan saya
    Email diamondpersib@gmail.com

    BalasHapus
  15. Ngontak lu susah banget bang

    BalasHapus