Three.js:能否翻转精灵?

6

问题: 是否可以翻转/镜像Three.js精灵的纹理?

背景: 使用当前的three.js DEV分支

迄今为止的发现: 我首先尝试更改其3D旋转,但没有任何效果。然后我检查了精灵代码,发现在Sprite.js中重置了旋转:

this.rotation3d.set( 0, 0, this.rotation );

更改那里的值没有任何效果。深入挖掘后,我到了SpriteRenderer插件,结果完全迷失了方向。

我的理解是,three.js使用着色器来渲染精灵,并且这是一个巨大的性能优势。因此,编写自己的精灵实现使用简单的面感觉像是错误的方向。


你可以为THREE sprite提供自己的“ShaderMaterial”,但这似乎有些过度设计。 - Bartek Banachewicz
3个回答

6
好的,这可能有些困难,但请将您的精灵的缩放比例设置为-1(在您想要翻转的方向上)。

3

只是作为一种替代方案发布:

texture = new three60.THREE.Texture(video);
texture.repeat.set(-1, 1);
texture.offset.set( 1, 0);

这对我有用,因为它适用于一个在SphereGeometry的BackSide上的视频纹理。 - Kyle Suss

2

最简单的翻转纹理的方法实际上是在上传到GPU之前翻转纹理图像。


那真是太糟糕了,实际上 :) - Bartek Banachewicz
但是到目前为止,即使你必须在运行时完成它,最简单的方法也是这样做。 - Gero3
如果我的答案有效(我不确定,现在也无法测试),我会辩论。 - Bartek Banachewicz
我猜这也可以。但是在纹理加载到GPU后,我必须进行翻转。想象一下一个面向不同方向的实体平台游戏。Barteks的答案非常好。但还是谢谢 :) - Andreas Hoffmann

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接