I’m using an image as a texture (.map) and I don’t want it to be multiplied by any color. I’m pretty sure this must be possible.
I asked Chat GPT, here’s its answer
To use an image as a texture for SpriteMaterial in three.js and ensure that the image’s colors are not altered by any additional coloring, you need to set the color property of the SpriteMaterial to white (the default color). This ensures that the color of the material doesn’t interfere with the image’s colors.
To make the SpriteMaterial transparent, you should enable transparency and use an image with an alpha channel. Here’s how you can do it:
- Set the
colorto white (0xffffff), which is the default and ensures no color multiplication. - Set the
mapproperty to your texture. - Set
transparenttotrue. - Use an image with transparency (e.g., a PNG with an alpha channel) as the texture.
Here’s an example of how you might set up the SpriteMaterial:
import * as THREE from 'three';
// Load the texture
const textureLoader = new THREE.TextureLoader();
const texture = textureLoader.load('path/to/your/image.png'); // Path to your image
// Create the sprite material
const spriteMaterial = new THREE.SpriteMaterial({
map: texture,
color: 0xffffff, // White color, ensuring no color multiplication
transparent: true
});
// Create the sprite
const sprite = new THREE.Sprite(spriteMaterial);
// Add the sprite to your scene, etc.
This will create a SpriteMaterial that uses your image as its texture, displays the image’s original colors, and respects the image’s transparency.
Send here 36-obrpm.png in archive i will try something
Does adding this to the texture help?
texture.colorSpace = SRGBColorSpace
@anidivr Yes! This was it! Thanks!
