Three.js: Ajustando opacidade / tamanho de partículas e linhas

Criado em 27 jun. 2011  ·  11Comentários  ·  Fonte: mrdoob/three.js

Eu tenho um sistema de partículas e uma linha. Posso definir facilmente a cor de cada vértice e borda em minha linha criando uma matriz de cores e definindo VertexColors como true. Minha pergunta é como posso ajustar a) opacidade b) tamanho de cada vértice / aresta individualmente em meu sistema de partículas / linha.

Obrigado!

Zenna

Question

Comentários muito úteis

@WestLangley entendo. Obrigado pela informação!

por outro lado, seria bom se isso pudesse ser feito em JS, especialmente para pessoas que não estão familiarizadas com a linguagem de shader, inclusive eu. obrigado mesmo assim!

Todos 11 comentários

Eu também gostaria de saber disso.

geometry.colors é um array mapeando 1 por 1 os vértices. Então, se você quiser mudar a cor de geometry.vertices[ 1 ] você precisa modificar geometry.colors[ 1 ] .

Olá, mrdoob.

geometry.colors [1] seria um Three.color. Posso felizmente mudar a cor, mas pelo que sei o valor da opacidade não está armazenado lá. Então, como posso alterar a opacidade de vértices / linhas simples?

Uh oh ...

Você não pode fazer isso facilmente, a opacidade é especificada por material, não por elemento. Descartamos o alfa de Color há algum tempo.

Uma maneira possível seria por meio de atributos personalizados e MeshShaderMaterial onde você teria cores de 4 componentes.

O mesmo ocorre com os tamanhos, atualmente não há como alterá-los por partícula ou por linha com atributos e materiais padrão. Você precisaria de outro fluxo de atributos para o tamanho e, em seguida, teria um material personalizado que o usaria.

Agora não me lembro por que decidimos remover alfa de Color ...

Também não me lembro, consegui encontrar o seguinte:

https://github.com/mrdoob/three.js/commit/dc6e335dc9f7f38f1c79a5a6c112019d6fcce69d

Parece que as cores hexadecimais com alfas estavam causando problemas. Agora, com mais dependências no pipeline de ativos, acho que seria ainda mais doloroso.

ser capaz de especificar a opacidade por vértice seria muito útil para fazer sistemas de partículas.

existe algum plano para oferecer suporte a isso em uma versão futura?

Não tenho certeza de qual é a dificuldade técnica aqui. intuitivamente, ter algo como geometry.opacityValues parece uma forma compatível com versões anteriores e não intrusiva de apoiar isso. também pode haver um sinalizador global pointsMaterial.vertexOpacityValues para desabilitar este suporte se não for necessário ou causando problemas, como no caso das cores dos vértices.

@quyin Você pode fazer o que quiser com um ShaderMaterial . Consulte stackoverflow se precisar de ajuda.

@WestLangley entendo. Obrigado pela informação!

por outro lado, seria bom se isso pudesse ser feito em JS, especialmente para pessoas que não estão familiarizadas com a linguagem de shader, inclusive eu. obrigado mesmo assim!

Esta página foi útil?
0 / 5 - 0 avaliações

Questões relacionadas

QuaziKb picture QuaziKb  ·  73Comentários

danrossi picture danrossi  ·  210Comentários

sunag picture sunag  ·  161Comentários

Mugen87 picture Mugen87  ·  68Comentários

mrdoob picture mrdoob  ·  75Comentários