Visuality/Megabound - Pemisahan render per dimensi (world0/world-1/world1)

PERMINTAAN:
- Overworld render visualnya sendiri (world0), tidak lagi numpang ke folder
  default shaders/.
- Nether tetap punya visual sendiri (sudah begitu sebelumnya, dicek ulang).
- The End dibuat mandiri (tidak bergantung ke render global) DAN dapat efek
  Volumetric Fog miliknya sendiri.
- Visual Overworld dan Nether TIDAK diubah sama sekali, cuma dirapikan
  strukturnya.

HASIL ANALISA SEBELUM EDIT:
- Sebelum edit ini, folder shaders/world0 belum ada sama sekali. Artinya
  Overworld render pakai file default di shaders/ (composite.fsh,
  gbuffers_*.fsh/vsh, dst) langsung, plus shaders/lib/*.glsl (godrays,
  borderFog, sky_gradient, independent_lighting, clouds, stars,
  color_transforms, color_dither, projections, waterBump).
- shaders/world-1 (Nether) dan shaders/world1 (The End) SUDAH punya folder
  sendiri masing-masing lengkap dengan seluruh file .fsh/.vsh + ToD.glsl,
  projUtil.glsl, skyATM.glsl, lighting.glsl, lensflareslul.glsl, dan
  lib/waterBump.glsl lokal. Sudah dicek pakai diff -rq: world-1 dan world1
  100% identik byte-per-byte di semua file, termasuk getFogColor() di
  skyATM.glsl yang mengembalikan vec3(1.4,0.22,0.0) - oranye/api, cocok
  untuk Nether tapi salah untuk The End (ini murni hasil copy-paste dari
  Nether, bukan visual The End yang sebenarnya).

PERUBAHAN:

1. shaders/world0/ (BARU)
   - Semua 50 file .fsh/.vsh yang sebelumnya ada di shaders/ (default)
     disalin apa adanya (byte-per-byte sama, tidak ada satu baris kode pun
     yang diubah) ke shaders/world0/. Karena OptiFine/Iris memuat program
     HANYA dari folder world<id> begitu folder itu ada dan mengabaikan
     folder default untuk dimensi itu, Overworld sekarang render dari sini,
     bukan dari shaders/ lagi.
   - shaders/world0/lib/ (BARU) - salinan lokal dari seluruh 11 file di
     shaders/lib/ (termasuk texFiltering.glsl yang sebenarnya belum dipakai
     di mana pun, disalin juga untuk kelengkapan). Semua #include
     "lib/xxx.glsl" di file world0/*.fsh & *.vsh TIDAK diubah teksnya sama
     sekali (tetap relatif, tanpa "/" di depan) - otomatis resolve ke
     folder lokal world0/lib/ yang baru ini, BUKAN ke shaders/lib/ bersama.
   - Efeknya: mulai sekarang, ubah shaders/lib/godrays.glsl (folder
     bersama) TIDAK akan mempengaruhi Overworld lagi, karena Overworld
     punya salinan sendiri. Ini yang bikin Overworld benar-benar mandiri.
   - shaders/ (folder default paling atas) TIDAK dihapus - dibiarkan apa
     adanya sebagai fallback OptiFine untuk dimensi mod yang tidak punya
     folder world<id> sendiri (kasus jarang, tapi aman untuk dibiarkan,
     lihat dokumentasi OptiFine soal "Dimension shaders"). Folder ini
     sekarang praktis tidak lagi dipakai oleh Overworld/Nether/The End
     karena ketiganya sudah punya folder world<id> sendiri.

2. shaders/world-1/ (Nether) - TIDAK DISENTUH
   - Sudah dicek: folder ini dari awal sudah mandiri (file .fsh/.vsh
     sendiri + lib/waterBump.glsl lokal sendiri, tidak pernah include apa
     pun dari shaders/lib/ bersama). Tidak ada perubahan diperlukan, dan
     tidak ada satu byte pun yang diubah di folder ini.
   - Visual Nether (termasuk warna kabut oranye/api vec3(1.4,0.22,0.0))
     tetap identik seperti sebelumnya, sesuai permintaan "biarkan saja".

3. shaders/world1/ (The End)
   a) shaders/world1/skyATM.glsl
      - getFogColor() diganti dari oranye Nether (hasil copy-paste) jadi
        gradasi ungu tua (dekat zenith/nadir) ke pink-magenta redup (dekat
        horizon) - dipakai bareng oleh sky, reflection, dan volumetric fog
        baru supaya semuanya senada, khas suasana void The End.
   b) shaders/world1/lib/Volumetric_fog.glsl (BARU, folder LOKAL, bukan
      folder lib bersama)
      - Kabut volumetrik 8-layer raymarch gaya Bliss Shaders: gumpalan
        ungu->pink-magenta yang melayang & mengalir pelan.
      - Noise 100% procedural (hash + value-noise 3D), tidak bergantung ke
        noisetex/noise32.png yang memang tidak ada di dalam pack ini
        (world1/shaders.properties menunjuk texture/noise32.png dan
        texture/moondirt.png yang tidak ada - dilaporkan saja, tidak
        diperbaiki di luar permintaan, OptiFine/Iris otomatis fallback).
      - Titik awal ray digeser pakai BlueNoise() (dither) yang sudah ada
        di composite.fsh, supaya 8 layer menyatu halus.
      - Kepadatan berbasis ketinggian, paling tebal di sekitar y=60 (area
        pulau utama The End).
      - "Extended tail": jarak di luar radius raymarch (default 140 block)
        tetap meluruh dengan laju rata-rata yang sama, tidak ada potongan
        tegas.
      - SENGAJA ditaruh di world1/lib/ (folder lokal), BUKAN shaders/lib/
        (folder bersama), supaya The End tidak bergantung ke folder
        bersama sama sekali untuk efek ini - persis mengikuti pola
        world1/lib/waterBump.glsl yang sudah ada duluan.
      - Bisa dimatikan gampang: comment baris "#define END_VLFOG" di
        paling atas file, otomatis balik ke calcAtmFog() lama.
   c) shaders/world1/composite.fsh
      - Tambah "#include "lib/Volumetric_fog.glsl"" (path relatif, resolve
        ke folder lokal world1/lib/ di atas) setelah include skyATM.
      - Panggilan fog lama (calcAtmFog) dibungkus #ifdef END_VLFOG / #else
        supaya tetap ada fallback ke fog lama kalau efeknya dimatikan.

KENAPA KETIGA DIMENSI SEKARANG BENAR-BENAR MANDIRI:
- Overworld (world0), Nether (world-1), dan The End (world1) masing-masing
  punya folder sendiri lengkap dengan file .fsh/.vsh DAN file lib/ lokal
  sendiri. Tidak ada satu pun dari ketiganya yang mengambil file dari
  folder shaders/lib/ bersama lagi (world0 sudah py salinan lokal, world-1
  & world1 memang dari awal tidak pernah pakainya). Artinya edit ke salah
  satu dimensi di masa depan TIDAK AKAN merembet ke dimensi lain.

CATATAN PENGUJIAN:
- Semua #include di seluruh pack (world0, world-1, world1, dan folder
  default) sudah dicek ulang dengan skrip - dipastikan setiap #include
  benar-benar menunjuk ke file yang ada, tidak ada yang bolong.
- Kode di 3 file yang disentuh (world1/composite.fsh, world1/skyATM.glsl,
  world1/lib/Volumetric_fog.glsl) sudah dicek kurung {}/() seimbang
  (setelah komentar dibuang) dan #ifdef/#endif seimbang.
- world0 dan world-1 tidak mengalami perubahan kode sama sekali (murni
  copy file / tidak disentuh), jadi visualnya dijamin identik seperti
  sebelum edit ini.
- Renderer Minecraft/Iris/OptiFine tidak tersedia di lingkungan ini, jadi
  tampilan akhir kabut The End (ketebalan, warna, kecepatan) tetap perlu
  dicek & di-tuning langsung di game lewat #define di
  world1/lib/Volumetric_fog.glsl.
