【问题标题】:Size of sprites along geometry Three.js沿几何图形 Three.js 的精灵大小
【发布时间】:2015-12-07 16:50:42
【问题描述】:

我想沿图形显示精灵动画。专门移动精灵行走的身影。 所以如下图:

http://armsglobe.chromeexperiments.com/

我基于这个问题的答案:

http://stackoverflow.com/questions/25898635/three-js-how-to-animate-particles-along-a-line

这是我的结果,精灵一开始很小,然后变大。我想要同样大小的人。

但我需要你们所有的精灵都一样大。我查看了代码,但不知道如何处理所有相同大小的精灵。

如果您能提供帮助,我将不胜感激。

【问题讨论】:

    标签: javascript animation three.js particles


    【解决方案1】:

    Sprite 不能使用sizeAttenuation 功能为假。 您需要使用Pointcloudhttp://codepen.io/seanseansean/pen/EaBZEY

    您搜索的 pontCloud 材料中的参数是sizeAttenuation= false

    将使所有粒子大小相对于画布大小。视角不会改变。

    var geometry = new THREE.Geometry();      
        geometry.vertices.push( new THREE.Vector3() );
    var size = 32; // means 32px
    
    var sectorIcon = new THREE.PointCloud( geometry, new THREE.PointCloudMaterial( { size: size, color: new THREE.Color( 0xffffff ), depthTest: 1, depthWrite: false,  opacity: 0.5, sizeAttenuation: false, blending: THREE.AdditiveBlending, transparent: true, map: THREE.ImageUtils.loadTexture("img/sectors/"+value.image_file) } ) );
    

    【讨论】:

    • 感谢您的回答。那么如果我使用 PointCloud,我可以调整 PointCloud 的大小?我担心的是,如果我使用 PointCloud 而不是 sprite,它会运行我的代码吗?点云将像以前那样巡视几何图形?
    • 您可以随时将 PointCloud.material.size = 38 更改为 38px。但仅适用于 PointCloud 中的所有点。如果您需要更多不同大小的粒子,请使用更多点云。
    • 我解释一下。在我拥有的代码中,精灵从小到大开始。我只需要所有相同的尺寸。我该怎么做?。
    • 点云不受透视影响,这意味着如果使用 PC.material.sizeAttenuation = false,所有粒子在 PX 中都有大小。
    • 这意味着如果您或多或少地保持距离,它仍然具有绝对大小。如果使用 sizeAttenuation: true 会受到透视失真的影响。如果你在一个点云中有更多的verticles,它们都具有相同的大小 - 总是。
    猜你喜欢
    • 2012-09-20
    • 1970-01-01
    • 1970-01-01
    • 2013-08-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多