我使用three.js構建房屋,我有牆壁和牆壁紋理。重複時自動保持紋理的比例和紋理的大小
牆壁基本上是CubeGeometry。
我參加了一個獨特的規模:1釐米= 1px的
紋理可能是磚或任何其他建築材料,但紋理的文件通常是512×512,在它的細節。例如:紋理文件中的一塊磚每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」包裝?或者我需要爲每個自定義幾何體製作比率?
如果您對這種使用情況下的任何意見,我會greatfull :)
非常感謝
編輯:最終目標是做這樣的事情在2D畫布「模式」
var pattern = context.createPattern(imageObj, repeatOption);
context.fillStyle = pattern;
context.fill();
,當你做這樣的事情,就比如一個矩形的模式將被重複保持縱橫比(例如http://www.html5canvastutorials.com/tutorials/html5-canvas-patterns-tutorial/)
感謝您的回答,實際上我問的是因爲我認爲當您使用CLAMP_TO_EDGE進行包裝時,紋理會呈現出有關像素的信息?不是嗎? – come
當使用Clampto邊緣時,它將僅複製最後一個像素而不是整個圖片 – Gero3
我認爲我在我的問題中感到困惑,所以我修改了它。但我明白的是它不會以簡單的方式成爲可能......我會讓微積分:( – come