Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

587
Visualizações
Modo de fusión aditivo que destruye el color en el material de puntos Three.js, ¿hay una mejor manera?

Estoy tratando de agregar un mapa a un material puntual que tiene una textura coloreada en Three.js. Intenté usar la combinación aditiva y el atributo de mapa para lograr un punto redondeado en lugar de uno cuadrado, pero elimina el color de la textura y lo combina con el color blanco del punto. Me pregunto si hay una mejor manera de mezclar los dos para poder mantener la forma de las partículas pero también el color de la textura.

Así es como se ve el punto Esto es partícula.png

 let pointShape = new THREE.TextureLoader().load("./models/particle.png"); m = new THREE.PointsMaterial({ size: pointSize, map: pointShape, blending: THREE.AdditiveBlending, depthTest: false, opacity: 0.9, onBeforeCompile: shader => { shader.uniforms.tex = {value: new THREE.TextureLoader().load("./textures/earthlores.jpg")}; shader.vertexShader = ` varying vec2 vUv; ${shader.vertexShader} `.replace( `#include <begin_vertex>`, `#include <begin_vertex> vUv = uv; ` ); //console.log(shader.vertexShader); shader.fragmentShader = ` uniform sampler2D tex; varying vec2 vUv; ${shader.fragmentShader} `.replace( `vec4 diffuseColor = vec4( diffuse, opacity );`, ` vec3 col = texture2D(tex, vUv).rgb; col *= diffuse; vec4 diffuseColor = vec4( col, opacity );` ); //console.log(shader.fragmentShader); } });
Este es el código que aplica la textura y la partícula al material puntual.

El resultado de este código hace que este globo descolorido y privado de color. globo pero mal

Comentar la mezcla aditiva da como resultado el color correcto pero no la forma correcta del punto.

el color es correcto pero la forma de los puntos es mala

¿Tendré que editar mi modo de fusión usando una fusión personalizada, cambiar el sombreado o hay otra forma en la que me estoy perdiendo por completo? Probé los otros modos de mezcla y no parecen funcionar, tampoco estoy seguro de cómo utilizar la mezcla personalizada correctamente, así que explícamelo como un idiota cuando se trata de eso, jaja, me encantaría aprender. .

Cualquier ayuda es apreciada, gracias!

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Ok, resulta que he encontrado una solución usando una combinación personalizada. Utilizando la ecuación de adición y el factor alfa como origen/destino (interpolación lineal), los dos se han sumado sin añadir el color de destino al color de origen. Esto ha creado hermosos puntos redondeados usando la textura provista.

 m = new THREE.PointsMaterial({ size: pointSize, map: pointShape, blending: THREE.CustomBlending, blendEquation: THREE.AddEquation, blendSrc: THREE.SrcAlphaFactor, blendDst:THREE.OneMinusSrcAlphaFactor, depthTest: false });

Deliciosos puntos circulares: ingrese la descripción de la imagen aquí

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda