gpt4 book ai didi

three.js - 重复时自动保持纹理的比例和纹理的大小

转载 作者:行者123 更新时间:2023-12-03 03:47:37 24 4
gpt4 key购买 nike

我正在使用 Three.js build 一座房子,我有墙壁和墙壁纹理。

墙壁基本上是 CubeGeometry。

我采用了独特的比例:1cm = 1px

纹理可以是砖 block 或任何其他建筑 Material ,但纹理文件始终为 512x512,其中包含细节。例如:纹理文件中的一 block 砖将是每 4 像素 10 像素。

我需要保持这个比例以保持场景的真实性。

var texture = THREE.ImageUtils.loadTexture("images/wall.jpg");

texture.wrapS = THREE.RepeatWrapping;
texture.wrapT = THREE.RepeatWrapping;

texture.repeat = new THREE.Vector2(0.2 , 0.2);

var wall = new THREE.Mesh(new THREE.CubeGeometry(100, 100, 10), new THREE.MeshBasicMaterial({ map: texture }));

效果很好,因为情况很简单;),为每面墙(可以有任何尺寸)制定比例也非常简单

但事实上我有很多其他几何图形(程序生成的等等),是否有机会像这样的属性:“THREE.KeepMyTextureSizeAndRepeat”包装?或者我需要为每个自定义几何形状制定比率吗?

如果您对此用例有任何建议,我将不胜感激:)

非常感谢

编辑:最终目标是在 2D Canvas 中做类似“图案”的事情

var pattern = context.createPattern(imageObj, repeatOption);
context.fillStyle = pattern;
context.fill();

当你做类似的事情时,例如在矩形上,图案将重复保持纵横比(例如 http://www.html5canvastutorials.com/tutorials/html5-canvas-patterns-tutorial/ )

最佳答案

您必须自己计算每个比率,因为纹理不知道有关像素的任何信息。它只知道紫外线。

关于three.js - 重复时自动保持纹理的比例和纹理的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14140518/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com