javascript - THREE.js 使用 MeshPhongMaterial 作为粒子 Material 并设置大小

标签 javascript three.js webgl

我正在尝试创建具有 Phong Material 特性(对光有反应)的粒子,为了实现这一点,我使用了“createMultiMaterialObject”,除了忽略粒子大小之外,这在大多数情况下都有效,出于某种原因粒子似乎是奇怪的三 Angular 形,见下文:

enter image description here

这是我正在使用的代码:

var ringGeometry = new THREE.TorusGeometry( rad, ringSize, 1, 200, Math.PI * 2);
materials = [
p2paterial = new THREE.MeshPhongMaterial({shading: THREE.SmoothShading, blending:     THREE.AdditiveBlending, transparent: true, color: ringColour, ambient: 0x000000, specular:     0xffffff, shininess: 1, vertexColors: false  } ),
pmaterial = new THREE.ParticleBasicMaterial( { size: 1, transparent: true,     vertexColors: true  } )
        ];
singleRing = new THREE.SceneUtils.createMultiMaterialObject(ringGeometry, materials);

谁能指出我如何实现最后一点的方向,使每个粒子大小为 1 - 我非常接近得到我想要的东西,我怀疑这只是我需要在某个地方调整的选项。

最佳答案

试试这个:

var geometry = new THREE.TorusGeometry( rad, ringSize, 1, 200, Math.PI * 2);

var material = new THREE.MeshPhongMaterial({shading: THREE.SmoothShading, blending:     THREE.AdditiveBlending, transparent: true, color: ringColour, ambient: 0x000000, specular:     0xffffff, shininess: 1, vertexColors: false  } );
var mesh = new THREE.Mesh( geometry, material );
scene.add( mesh );

var material = new THREE.ParticleBasicMaterial( { size: 1, transparent: true,     vertexColors: true  } );
var particles = new THREE.ParticleSystem( geometry, material );
scene.add( particles );

关于javascript - THREE.js 使用 MeshPhongMaterial 作为粒子 Material 并设置大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18434162/

相关文章:

if else 语句中的 JavaScript 变量

javascript - 捆绑和缩小困惑

three.js - 如何停止轨迹球 Controller ? [三.js]

javascript - 在 THREE.js 中构造一个球体

javascript - 是否可以使用 gl.finish() 测量 webgl 中的渲染时间?

javascript - Webgl 中的球体网格

javascript - 如何使用 JavaScript 使一个元素在我的页面上多次出现?

javascript - 单个用户操作触发两个事件 - 第二个事件未触发

javascript - 三.JS FPS控制左右扫射

javascript - 调整 Canvas 大小而不放大元素 WEBGL