Rótulos de césio embaçados após desativar fxaa

Jan 06 2021

Segui a resposta neste post. O rótulo de césio ficou turvo, mas não tive sorte.

Eu me certifiquei disso viewer.scene.fxaa = falsee nada parece mudar. Por favor, veja minha imagem em anexo.

Alguém tem uma solução para isto?

Muito obrigado!

Respostas

2 emackey Jan 06 2021 at 21:15

Desconfie de codificar algo como viewer.resolutionScale = 2. Há uma suposição embutida nesta linha de código de que o usuário provavelmente tem uma tela de alto DPI e seu navegador está dimensionando a página da Web de acordo. Executar essa linha de código em um sistema que já está usando uma proporção de pixel de 1: 1 pode fazer com que ele seja renderizado duas vezes mais largo e duas vezes mais alto do que o que o dispositivo pode realmente exibir.

Aqui está uma sugestão alternativa:

viewer.resolutionScale = window.devicePixelRatio

Não é perfeito, mas é melhor do que um 2. codificado. Ele tentará fazer com que o visualizador de Césio corresponda exatamente aos pixels nativos do dispositivo, que podem não ser do mesmo tamanho que "pixels CSS", especialmente em telas de alto DPI.

Um valor de "1" aqui (o padrão) significa que os pixels da tela do visualizador de Césio têm o mesmo tamanho que a ideia de pixels CSS da página da web, que pode ser maior e mais robusto do que os pixels nativos da tela. Números mais altos atuam como multiplicadores na resolução da tela do WebGL, consumindo mais memória gráfica e desempenho. Você pode descobrir que a máquina em que está testando já tem um window.devicePixelRatio de 1.5 ou 2.0, portanto, a linha acima pode não funcionar de maneira diferente de um 2 embutido em sua máquina em particular. Mas verificar o devicePixelRatio local é melhor do que fazer suposições.

LukeVenter Jan 06 2021 at 15:57

Isso pode ser corrigido adicionando:

  viewer.resolutionScale = 2

Pode afetar o desempenho, mas parece bom até agora.