Возможно, вы не хотите, чтобы THREE.js уменьшал до вашего изображения, потому что вы теряли разрешение, поэтому вы хотите увеличить его до следующего ^ 2. У вас есть два варианта:
Вы можете увеличить изображение и экспортировать его с разрешением ^ 2 2048 x 1024
в вашем любимом фоторедакторе.
Вы можете динамически генерировать 2048 x 1024
холст, рисовать изображение на нем в увеличенном масштабе и использовать этот холст в качестве источника текстуры:
var imgURL = "path/to/whatever.jpg";
// Create image element
const image = document.createElement('img');
image.src = imgURL;
// Once image is loaded
image.onload = () => {
// Create canvas, size it to ^2 dimensions
var canvas = document.createElement('canvas');
canvas.width = 2048;
canvas.height = 1024;
// Draw image on canvas, scaled to fit
var ctx = canvas.getContext('2d');
var ctx.drawImage(image, 0, 0, 2048, 1024);
// Create texture
var texture = new THREE.Texture(canvas);
};
Тогда вы можете присвоить эту переменную texture
любому материалу, который вы хотите, и Three.js не будет жаловаться.
Если вы хотите избежать изменения размера текстуры, вы можете просто изменить texture.minFilter
на THREE.NearestFilter
или THREE.LinearFilter
, и движок не будет предупреждать вас. Проблема заключается в том, что ваши текстуры могут выглядеть зернистыми или иметь псевдонимы при уменьшении, так как они не будут иметь Mipmapped
. Это может быть желаемым результатом или плохим в зависимости от вашего проекта. Вы можете увидеть результаты использования NearestFilter
в этом примере: https://threejs.org/examples/?q=filter#webgl_materials_texture_filters
MDC утверждает, что можно сделать просто что:
function styleHyphenFormat(propertyName)
{
function upperToHyphenLower(match)
{
return '-' + match.toLowerCase();
}
return propertyName.replace(/[A-Z]/, upperToHyphenLower);
}
Или более в общем:
myString.replace(/mypattern/g, function(match){
return "Some function of match";
});
Просто опустите аргумент, т.е. используйте это:
myString.replace(/mypattern/g, f);
Вот пример: http://ejohn.org/blog/search-and-dont-replace/