Godot: GLES2 Error dengan kode shader kustom untuk efek fade

Dibuat pada 30 Nov 2018  ·  1Komentar  ·  Sumber: godotengine/godot

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
gles3

Dan inilah tampilannya di GLES2
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

bug rendering

Komentar yang paling membantu

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 .

>Semua komentar

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 .

Apakah halaman ini membantu?
0 / 5 - 0 peringkat