menguji ini dengan komponen aframe dan build troika langsung dan contohnya pada
https://troika-examples.netlify.com/#text
Google Chrome | 78.0.3904.87 (Builan Offzieller) (64-Bit)
Linux
JavaScript | V8 7.8.279.19
VENDOR = 0x1002 [X.Org], PERANGKAT= 0x67ef [AMD Radeon (TM) RX 460 Graphics (POLARIS11, DRM 3.33.0, 5.3.7-301.fc31.x86_64, LLVM 9.0.0)] AKTIF
saya ingat jika saya menemukan ini pertama kali berhasil
jadi saya mencoba beberapa versi yang lebih lama! dan ya ini berfungsi dengan e600d2cd v0.12.0
ok versi kerja terakhir adalah
f4fcbb8d v0.12.1
v0.13.0 merusak rendering
Astaga! Terima kasih telah melaporkan ini, dan untuk mempersempit versi persis di mana itu rusak. Saya akan memeriksa komit itu untuk mencari sesuatu yang jelas, tetapi saya khawatir saya tidak akan dapat memverifikasi perbaikan jika itu khusus untuk distro Linux atau driver GPU Anda.
Mencoba bekerja dengan firasat... Di browser Anda, apakah Anda melihat spageti terbang di sini? https://troika-examples.netlify.com/#bezier3d
ya ini terlihat baik-baik saja
membuat video kecil dari masalah, sepertinya jika rendere hanya menggunakan SDF (ukuran kecil) berfungsi
di oculus go berfungsi dengan baik
Sial, itu mematahkan firasatku.
Video itu menarik. Saya dapat memikirkan beberapa alasan mengapa perilaku dapat terjadi, tetapi itu seharusnya juga gagal di 0.12.1. Akan terus mencari...
Untuk memastikan kami tidak menghadapi banyak masalah yang berbeda sepanjang waktu, dapatkah Anda memverifikasi bahwa semua build berikut gagal dengan cara yang sama?
ya semua gagal sama
Nah untuk saat ini saya bingung dengan yang satu ini. Melalui https://github.com/protectwise/troika/compare/v0.12.1...v0.13.0 , saya tidak melihat perbedaan yang menyebabkan perilaku ini. Satu-satunya perubahan di sana yang akan memengaruhi rendering teks adalah peralihan ke abstraksi createDerivedShader
untuk manipulasi shader. Saya telah membandingkan output shader dari 2 versi tersebut baris demi baris dan tidak ada perbedaan dalam logika yang disuntikkan yang dapat saya lihat, hanya sedikit perbedaan di mana itu terjadi (misalnya dalam fungsi glsl daripada di void main atau dalam urutan yang sedikit berbeda .) Saya tidak mengerti mengapa itu akan menyebabkan masalah ini, tetapi saya kira mungkin ada bug/quirk pada driver OpenGL tertentu yang mungkin dipicu.
Tidak yakin ke mana harus pergi dari sini selain mencoba beberapa perubahan berdasarkan firasat dan meminta Anda mengujinya. Tidak dapat dengan mudah mereproduksi ini adalah rasa sakit.
OK, saya mengerti, dan ya saya pikir ini juga lebih merupakan masalah driver opengl:/ Satu temuan adalah ketika saya skala saya melihat video font ->
untuk referensi di sini versi opengl
GL_VENDOR X.Org GL_RENDERER Grafis AMD Radeon (TM) RX 460 (POLARIS11, DRM 3.33.0, 5.3.8-300.fc31.x86_64, LLVM 9.0.0) GL_VERSION 4.5 (Profil Inti) Mesa 19.2.2
LOL itu semacam efek yang rapi! 🤣.
tahu apa yang bisa saya uji?
@lojjic wah! menemukan sesuatu yang menarik jika saya menambahkan kabut ke adegan itu berhasil!
dengan menambahkan kabut aframe dengan sceneEl.setAttribute("fog", "type: linear; far:300;color: 0xefd1b5");
Makin penasaran dan penasaran. Apakah kotak centang "Kabut" pada halaman contoh troika juga berfungsi?
hmm tidak, ini tidak mengubah apa pun
ha ya itu berfungsi jika saya mengatur MeshBasicMaterial dan memilih Fog!
OK terima kasih itu mungkin memberi saya petunjuk untuk menyelidiki lebih lanjut.
Saya akan mencoba mencari waktu nanti hari ini untuk mendorong cabang dengan beberapa upaya pada perubahan yang terisolasi, dan melihat apakah ada yang membantu.
Oke ini percobaan pertama - beri tahu saya jika tidak ada perubahan, perubahan tetapi masih buggy, atau diperbaiki: https://5dc9dc90ab55b5000a1db32c--troika-examples.netlify.com/#text
terlihat seperti tembakan yang sangat bagus! :>
penggunaan normal dengan MeshStandard dan MeshBasic Material terlihat tetap untuk saya
hanya dengan Bahan Shader Kustom yang buggy
perubahan ini memperbaikinya untuk saya https://github.com/protectwise/troika/commit/85c71d6af2c1e09966c5e588745008dc4b923ae2
Itu keren! Kita pergi ke suatu tempat.
Bisakah Anda mencoba yang ini sekarang: https://5dc9e7dcea3f6e00084d01a6--troika-examples.netlify.com/#text
Saya mencoba mengisolasi salah satu dari dua akar penyebab potensial dengan yang satu ini.
ok ini hanya berfungsi dengan benar dengan MeshBasicMaterial dan Fog diaktifkan
Jadi ada keanehan aneh dengan urutan eksekusi. Satu-satunya perbedaan antara 2 tes terakhir itu adalah jumlah penetapan identitas ( gl_FragColor = functionThatReturnsArg(gl_FragColor);
) yang terjadi baik setelah atau sebelum logika shader teks kustom. Jika muncul setelah berhasil, dan jika muncul sebelumnya maka gagal (kecuali jika fog diaktifkan, yang menambahkan gl_FragColor.rgb = ...
tambahan sebelum logika teks, dan itu juga berfungsi tetapi hanya di MeshBasicMaterial. sigh .
Inilah peretasan yang buruk hanya dengan melihat apakah menambahkan gl_FragColor = gl_FragColor;
di bagian akhir memberikan tendangan: https://5dc9f0d8e82cdf00089f6b6c--troika-examples.netlify.com/#text
ok sama dengan yang terakhir hanya bekerja dengan BasicMaterial dan Fog on ...
Oke, beberapa percobaan lagi untukmu...
1) https://5dcadbdfa8565d0008ff1af5--troika-examples.netlify.com/#text
2) https://5dcadfaac107620008043289--troika-examples.netlify.com/#text
3) https://5dcae02c8de52400077b3a8b--troika-examples.netlify.com/#text
ketiganya sama hanya berfungsi dengan BasicMaterial dan Fog diaktifkan
Ugh. Terima kasih telah begitu sabar menguji semua tebakan liar saya. Ini masih tidak masuk akal bagi saya.
Menguji hipotesis lain: https://5dcaea1c9bbf6e00074b3c7a--troika-examples.netlify.com/#text
np, ini selalu pecah dengan kabut aktif dan semua Material
Bisakah Anda mengambil beberapa tangkapan layar lagi dari contoh lain untuk saya ketika Anda punya waktu:
1) https://troika-examples.netlify.com/#arcs dengan shader "Double-Derived" dipilih
2) https://troika-examples.netlify.com/#ui
3) https://troika-examples.netlify.com/#bezier3d dengan nilai bukan nol untuk opsi "putus-putus"
Contoh-contoh ini menggunakan teknik yang mirip dengan shader fragmen teks, jadi saya ingin melihat apakah ada kesamaan dalam perilaku mereka.
Terima kasih untuk screenshotnya. Saya mengharapkan setidaknya satu dari mereka gagal dengan cara yang mirip dengan teks, karena mereka menggunakan utilitas yang sama persis untuk memodifikasi shader fragmen mereka. Tapi tidak satupun dari mereka gagal. Jadi mungkin itu sesuatu yang spesifik dalam teks glsl. Saya kira saya akan mulai menghapus/mengubah hal-hal satu per satu di teks glsl dan melihat apakah kami dapat mempersempit pemicu yang tepat.
Beberapa percobaan:
1) https://5dcc2b581b644200098d5e75--troika-examples.netlify.com/#text
2) https://5dcc302d78835c00089437e2--troika-examples.netlify.com/#text
3) https://5dcc31b70765f2000991ad0f--troika-examples.netlify.com/#text
ok semua 1. 2. dan 3. bekerja dengan semua bahan dan dengan dan tanpa kabut!
Menakjubkan!
OK satu hal terakhir untuk diperiksa dan kemudian saya harus memiliki cukup info untuk perbaikan terakhir:
https://5dcc47d956b59f00070bea55--troika-examples.netlify.com/#text
Dan bisakah Anda memverifikasi bahwa kotak centang Shadows berfungsi juga?
hmm ini tidak berhasil ... aneh :>
Itu sebenarnya kabar baik! Ini menunjuk pada kondisi yang sangat spesifik sebagai penyebab masalah:
if (uTroikaSDFDebug) {
gl_FragColor *= 0.5;
} else {
discard;
}
Sepertinya mengganti kondisional itu hanya dengan discard
adalah yang membuatnya mulai berfungsi. Yang sangat aneh, karena uTroikaSDFDebug
adalah seragam sehingga harus selalu menggunakan else
. Tetapi untuk beberapa alasan sistem Anda tidak menyukainya.
Jadi saya hanya akan menghapus kondisional. Saya dapat mencoba memformulasi ulangnya sebagai DEFINE atau semacamnya, tetapi toh tidak terlalu berguna.
Saya akan mengerjakan ini menjadi perbaikan terakhir pada master, minta Anda memverifikasi itu sekali lagi, dan kemudian menerbitkan versi baru dan memperbaruinya di komponen aframe. Mungkin butuh satu atau dua hari.
Master build untuk menguji, ketika Anda mendapat kesempatan: https://troika-examples.netlify.com/#text
ya ini bekerja dengan semua Material dan fog on/off!
@arpu Terima kasih sekali lagi atas waktu dan kesabaran Anda dalam membantu saya melacak masalah ini. Perbaikan ini telah diterbitkan di 0.15.7.
Saya juga telah menabrak aframe-troika-text
ke versi 0.1.2 yang menggunakan versi tetap. Ini juga berisi perbaikan untuk ThreeJS r110 yang telah Anda sebutkan sebelumnya.