所以我开始玩动态纹理并遇到一些时髦的东西。我创建了一个带有动态纹理的球体对象,并使用.arc创建了一些圆圈;然而,当它到达屏幕时,圆圈变成了椭圆形状。我希望有一个简单的解决方法,但我还没找到任何东西。
感谢您的时间!
卡洛斯
答案 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;