使用Babylon JS,使用DynamicTexture在球体上绘制圆形会产生椭圆形状

时间:2018-03-27 15:14:57

标签: babylonjs

所以我开始玩动态纹理并遇到一些时髦的东西。我创建了一个带有动态纹理的球体对象,并使用.arc创建了一些圆圈;然而,当它到达屏幕时,圆圈变成了椭圆形状。我希望有一个简单的解决方法,但我还没找到任何东西。

游乐场:Circle on a Sphere

感谢您的时间!

卡洛斯

1 个答案:

答案 0 :(得分:1)

显然,它正在做正确的事情。应用动态纹理时,将在创建父对象时应用它。

要尝试此操作,请打开此示例 - https://www.babylonjs-playground.com/#5ZCGRM#2并将groundWidth更改为80,您将看到文本已拉长。

var groundWidth = 80; // width changed to 80
var groundHeight = 10;
var ground = BABYLON.MeshBuilder.CreateGround("ground1", {width: groundWidth, height: groundHeight, subdivisions: 25}, scene);

此外,在https://doc.babylonjs.com/how_to/dynamictexture中,您可以看到球体表面上的“球体”文字也会相应调整 - https://d33wubrfki0l68.cloudfront.net/27a5c2a531378e8120af19956fcedc68c38b51f9/2c1cb/img/how_to/dyntext.png

有一种方法可以通过更改uScale和vScale来在表面上制作圆形,但这是一个临时解决方案,我建议使用其他工具,如Blender。

materialObj.diffuseTexture.vScale = 1;
materialObj.diffuseTexture.uScale = 2; 

链接 - https://www.babylonjs-playground.com/#RQGTKJ#1