【问题标题】:three.js sizeAttenuation to Sprite material三.js sizeAttenuation 到 Sprite 材质
【发布时间】:2014-08-06 10:50:31
【问题描述】:

我希望场景中的精灵在相机放大或缩小时不要改变大小。并且精灵使用不同的画布纹理作为材质。

我发现 ParticleBasicMatierial 中的 sizeAttenuation 可以为我工作。但是如果我使用 WenGLRenderer,我必须使用 ParticleSystem 而不是带有 CanvasRenderer 的 Particle。

我目前使用 ParticleSystem 只包含一个顶点,每个顶点对应一个 ParticleSystem,所以我的场景中大约有 800+ 个 ParticleSystem,这个可以工作,但是消耗很多。

很明显,我不能在three.js源中使用“HUD”作为示例,因为精灵都是3D场景。

谁能帮帮我。或者将 sizeAttenuation 添加到 Sprite Material!谢谢!

【问题讨论】:

    标签: three.js sprite


    【解决方案1】:

    如果你想防止精灵的尺寸衰减,并且你正在使用透视相机,你可以将你的材质的sizeAttenuation属性设置为false:

    var material = new THREE.SpriteMaterial( {
    
        color: 0xffffff,
        map: texture,
        sizeAttenuation: false
    
    } );
    

    此功能是在 three.js r.96 中添加的。

    编辑:更新到 three.js r.96

    【讨论】:

    • 您好,WestLangeley,我试过这种方法,但效果不好。如果我将scale_factor设置为3,精灵太大了,我设置为30,看起来不错,但是尺寸衰减还是和以前一样。
    • 从这个小提琴jsfiddle.net/9GudA开始,然后编辑它来展示你的问题。
    • 抱歉我后来的回复,我又试了几次,效果很好,非常感谢您的帮助!
    猜你喜欢
    • 1970-01-01
    • 2014-03-01
    • 2017-01-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-20
    • 2015-01-26
    • 2016-03-07
    相关资源
    最近更新 更多