Проблемы с Z-Fighting

Я использую Babylon.js для создания 3D-игры. Мой проект предназначен для запуска во всех браузерах. Однако, когда пользователи запускают его в Firefox, кажется, что есть небольшие проблемы с Z-Fighting, когда некоторые 3D-объекты не будут отображаться правильно или не будут отображаться вообще! Я также заметил, что некоторые текстуры имеют полосатые швы, идущие по диагонали, вот так...

введите здесь описание изображения

Я провел небольшое исследование в Интернете и узнал о свойстве z-index для .css. Я играл с этой настройкой, но это не решило проблему для меня. Я открыт для любых предложений, чтобы помочь мне исправить это? Спасибо заранее!


person mmangual83    schedule 09.09.2015    source источник
comment
Нам нужен какой-то код, чтобы продолжить, если возможно, используйте детскую площадку Babylon и свяжите нас с ней. Чтобы сделать дикое предположение, острые края связаны со сглаживанием, а 3D является относительно новым. Попробуйте изменить любые значения перспективы.   -  person jaunt    schedule 09.09.2015
comment
@jaunt ДА! Я нашел класс .js, который обрабатывает все, что связано с настройкой камеры. Я немного поиграл с некоторыми значениями, и кажется, что это начинает исправлять некоторые проблемы с z-борьбой. Я исправлю это в кратчайшие сроки. Благодарю вас!   -  person mmangual83    schedule 09.09.2015


Ответы (3)


Поскольку мой комментарий оказался полезным, я просто процитирую его здесь, чтобы этот ответ был помечен как принятый.

Чтобы сделать дикое предположение, острые края связаны со сглаживанием, а 3D является относительно новым. Попробуйте изменить любые значения перспективы.

person jaunt    schedule 09.09.2015

Это также может быть ошибка Firefox, связанная здесь 2 дня назад. Когда вы устанавливаете antialias:false, firefox также требуется stencil:true для включения 24-битного буфера глубины.

person Atrahasis    schedule 09.09.2015

z-файтинг (в 2020 г.)

BABYLON.js развивался с 2015 года, поэтому вот мои предложения о том, как бороться с z-файтингом:

  1. material.useLogarithmicDepth = true; для всех материалов в вашей сцене. См. как это сделать.

  2. Отрегулируйте material.zOffset (отрицательные значения приводят к смещению глубины в сторону камеры). См. эту детскую площадку.

Обратите внимание, что z-index и css, заданные в вопросе, в целом не влияют на 3D-сцену. Он живет в своем собственном мире внутри элемента <canvas>. 3D-объекты не являются DOM-элементами, каждый движок (BABYLON, THREE и т. д.) представляет их по-своему.

person Isolin    schedule 10.05.2020