为webgl渲染器创建一个球形粒子的基本材质
creating a spherical particle basic material for webgl renderer in threejs
我有一个工作的三个ejs示例,其中粒子通过画布渲染到使用程序函数的球形对象上,如下所示:
var material = new THREE.ParticleCanvasMaterial( {
color: 0xffffff,
program: function ( context ) {
context.beginPath();
context.arc( 0, 0, 1, 0, PI2, true );
context.closePath();
context.fill();
}
} );
for ( var i = 0; i < 1000; i ++ ) {
particle = new THREE.Particle( material );
particle.position.x = Math.random() * 2 - 1;
particle.position.y = Math.random() * 2 - 1;
particle.position.z = Math.random() * 2 - 1;
particle.position.normalize();
particle.position.multiplyScalar( Math.random() * 10 + 600 );
initParticle( particle, i * 10 );
scene.add( particle );
}
然而,我想切换到webGL渲染器,为了让事情运行得更快一点,但它没有程序选项。似乎我需要使用地图,但我不确定如何使用。有谁知道如何调整这段代码来完成与webGL渲染器相同的事情吗?
这里有一个例子,展示了如何使用WebGLRenderer为你的粒子程序创建纹理:http://jsfiddle.net/y18ag3dq/
然而,如果你想使用你自己的纹理,只需加载任何你想要的纹理到map
字段:
var texture = THREE.ImageUtils.loadTexture('/images/my_texture.png');
// Do NOT set this flag. Explanation provided by WestLangley in the comments
// texture.needsUpdate=true;
var material = new THREE.ParticleBasicMaterial({
// ...
map: texture,
// add all relevant fields as described in the link above
});
// geometry should contain your particle vertices
var particle = new THREE.ParticleSystem(geometry, material);
scene.add(particle);
相关文章:
- 创建一个类似链接的按钮,并通过Javascript函数打开一个新的弹出窗口
- jQuery:循环一个具有不同超时值的循环
- 当包含另一个asp文件时,是否也包含所有引用的样式和脚本页面
- 从javascript创建一个列表
- 节点导出返回一个空对象
- 使用clickToggle并在单击另一个元素时关闭元素
- 我可以在json对象中添加一个函数吗
- 使用javascript将动态表从一个html页面打印到另一个html页
- 将jsp文件下拉列表中的选定项分配给一个java变量(比如String selection)
- 表追加而不附加最后一个元素
- 我如何找到一个句子中的所有空格并替换忽略它们
- 当一个生命结束时,所有粒子都会被删除
- 制作一个3D地球,由带有三.js的粒子组成
- 我如何停止一个粒子系统
- 为webgl渲染器创建一个球形粒子的基本材质
- 如何用Three.js定义一个相对于矢量路径的粒子云
- 如何让一个粒子留下一个逐渐消失的痕迹?
- 使用three.js制作一个可点击的粒子系统
- 如何使一个球体由随机粒子在three.js
- 三个.js粒子形成一个形状