Mam model domu w mojej grze i mam kilka materiałów do geometrii domu. Jest materiał na ścianę domu i mam obraz tekstury-mapy, żeby pokazać cegły.Jak powtórzyć mapę tekstury jak GL_REPEAT?
var mat = new THREE.MeshPhongMaterial({
ambient: 0x969696,
map: THREE.ImageUtils.loadTexture('textures/G/G0.jpg'),
overdraw: true,combine: THREE.MultiplyOperation
});
W ten sposób powyżej, mapa tekstury wygląda jak GL_CLAMP
chcę pokazać jak GL_REPEAT
.
Co należy zrobić?
Jeśli nie widzisz obrazów, sprawdź: this.
Próbowałem ustawić wrapS i wrapT w ten sposób, ale to nie działa. Myślę, że może materiał jest niewłaściwy, teraz używam MeshPhongMaterial, czy powinienem użyć ShaderMaterial zamiast tego? – user1497753
Nie wiem, spróbowałbym jednak sprawić, żeby to działało. Tekstura musi być potęgą dwóch, zobacz [WebGLRenderer, l. 5721] (https://github.com/mrdoob/three.js/blob/master/src/renderers/WebGLRenderer.js). –
Miałem podobny problem, przeskalowałem kostkę i rozciągnięto teksturę. Aby temu zapobiec, musisz ustawić nowy rozmiar kostki w 'render()' w ten sposób: 'texture.repeat.set (2 * cWidth, 2 * cHeight);' (wtedy tekstura zachowuje się jak nieskalowany wzór). Nadzieja, która pomaga. –