我正在使用three.js 来建造房子,我有墙壁和墙壁的纹理。
墙壁基本上是 CubeGeometry。
我采用了独特的比例:1cm = 1px
纹理可以是砖块或任何其他建筑材料,但纹理文件始终为 512x512,其中包含细节。例如:纹理文件中的一块砖将是每 4px 10px。
我需要保持这个比例来保持场景的真实性。
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 画布中做类似“模式”的事情
var pattern = context.createPattern(imageObj, repeatOption);
context.fillStyle = pattern;
context.fill();
当你做这样的事情时,例如在一个矩形上,模式将被重复保持纵横比(例如http://www.html5canvastutorials.com/tutorials/html5-canvas-patterns-tutorial/)