Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

588
Vistas
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 Respuestas
Responde la pregunta

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 Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda