【发布时间】:2020-10-06 23:44:41
【问题描述】:
我尝试在 Three.js 中创建一个“星空滑雪”。但是我的星星应该是透明的 .png 有一个彩色的空间。
我在 png 中的精灵:
渲染:
放大星星:
我的代码(.ts 文件):
stars: any;
starGeo = new Three.Geometry();
// Generate random stars
for (let index = 0; index < 8000; index++) {
const star = new Three.Vector3(
Math.random() * 600 - 300,
Math.random() * 600 - 300,
Math.random() * 600 - 300
);
this.starGeo.vertices.push(star);
}
// Load png
const starSpriteFl = require('../assets/sprites/star.png');
// Create texture
const sprite = new Three.TextureLoader().load(starSpriteFl);
let starMaterial = new Three.PointsMaterial({
size: 0.7,
map: sprite,
});
this.stars = new Three.Points(this.starGeo, starMaterial);
this.scene.add(this.stars);
有什么想法吗?
【问题讨论】:
-
你试过
transparent: true吗? -
不,就是这样!
标签: javascript typescript three.js