Versi Godot:
v3.1.alpha.calinou.5b8dde4
OS / perangkat termasuk versi:
Perangkat Windows 10 dan Android diuji
Deskripsi masalah:
Saya telah menulis kode shader khusus, yang pada dasarnya membuat objek memudar pada clip_height tertentu. Ini dapat digunakan untuk hanya membuat 50% bagian bawah objek dan seterusnya. Ini berfungsi di GLES3, tetapi tidak di GLES2.
Saya telah membuat proyek contoh untuk memperjelas masalah.
Berikut tampilannya di GLES3
Dan inilah tampilannya di GLES2
Langkah-langkah untuk mereproduksi:
Saya dapat memecah masalah pada dasarnya dua baris kode shader ini:
vec4 world_vertex = camera_matrix * vec4(VERTEX, 1.0);
ALPHA = smoothstep(1, 0, (world_vertex.y - clip_height)/fade_offset);
Matriks kamera dilewatkan dari vertex shader. Sayangnya, saya tidak tahu bagaimana cara menyelidiki lebih lanjut apa sebenarnya yang menyebabkan kesalahan tersebut.
Proyek reproduksi minimal:
AlphaIssue.zip
Tangkapan yang bagus! Saya menemukan bugnya. Ini adalah masalah dengan kompiler shader gles2. Ini menukar INV_CAMERA_MATRIX
dan CAMERA_MATRIX
dalam kode yang ditentukan pengguna. Saya akan mengirimkan PR untuk memperbaikinya dalam beberapa menit. Sementara itu, gunakan INV_CAMERA_MATRIX
dalam fungsi fragmen jika Anda ingin menggunakan CAMERA_MATRIX
.
Komentar yang paling membantu
Tangkapan yang bagus! Saya menemukan bugnya. Ini adalah masalah dengan kompiler shader gles2. Ini menukar
INV_CAMERA_MATRIX
danCAMERA_MATRIX
dalam kode yang ditentukan pengguna. Saya akan mengirimkan PR untuk memperbaikinya dalam beberapa menit. Sementara itu, gunakanINV_CAMERA_MATRIX
dalam fungsi fragmen jika Anda ingin menggunakanCAMERA_MATRIX
.