three.js автоматически изменяет размер изображения текстуры, если это не сила двух. В моем случае я использую пользовательский холст в качестве текстуры, которая не сила two.while изменения размеров делает текстуры не появляются properly.Is там какой-либо способ отключить изменение размера изображений в Three.jsКак отключить three.js, чтобы изменить размеры изображений в силе двух?
ответ
три .js на самом деле пытается сделайте пожалуйста.
Поскольку он является открытым исходным кодом, мы можем прочитать исходный код WebGLRenderer.js и увидеть, что метод setTexture
вызывает метод (не публичный видимый) uploadTexture
.
Последние имеет такую проверку:
if (textureNeedsPowerOfTwo(texture) && isPowerOfTwo(image) === false){
image = makePowerOfTwo(image);
}
Который вполне пояснительную себя.
Вы можете задаться вопросом, что именно textureNeedsPowerOfTwo
действительно проверяет. Посмотрим.
function textureNeedsPowerOfTwo(texture) {
if (texture.wrapS !== THREE.ClampToEdgeWrapping || texture.wrapT !== THREE.ClampToEdgeWrapping) return true;
if (texture.minFilter !== THREE.NearestFilter && texture.minFilter !== THREE.LinearFilter) return true;
return false;
}
Если вы используете оберточной для текстуры координированного отличается от зажима или если вы используете фильтрацию, которая не ближайшего ни линейный текстура получает масштабируется.
Если вы удивлены этим кодом Я настоятельно рекомендую вам, чтобы посмотреть на MDN page on using textures.
Цитирование
загвоздка: эти текстуры [Non Сила двух текстур] не может быть использована с Mipmapping, и они не должны «повторить» (плитка или компресс).
[...]
Без выполнения вышеописанной конфигурации, WebGL требует, чтобы все образцы NPOT [Non Power Of Two] текстуры на провал, возвращая черного цвета RGBA (0,0,0,1).
Таким образом, используя текстуры NPOT с некорректных параметров текстуры даст вам хороший старый твердый черный.
С Three.js является открытым исходным кодом, вы можете изменить локальную копию и удалить «оскорбительный» чек.
Однако лучший, простой и более удобный подход - просто масштабировать отображение UV. В конце концов, это только для этого варианта использования.
- 1. Использование transloadit, как изменить размер двух изображений на разные размеры?
- 2. Как изменить размеры изображений категорий в Magento?
- 3. Как изменить размеры изображений в Racket
- 4. Объединение двух изображений в PHP (разные размеры)
- 5. Как изменить размеры изображений на лету?
- 6. Изменить размеры изображений так, чтобы они соответствовали экрану
- 7. Изменить размеры изображений с помощью mipmaps android
- 8. Динамически меняйте размеры объектов в Three.js
- 9. Как отключить анимацию в three.js
- 10. Three.js: Как масштабировать и компенсировать текстуры изображений?
- 11. Лучше ли распределять память в силе двух?
- 12. Как ограничить JButton, чтобы изменить его размеры в результате переоценки
- 13. Как размеры изображений Android adle?
- 14. Как изменить цвет изображения после двух изображений
- 15. opencart изменить размеры изображений в строке, содержащей html
- 16. как изменить список моих изображений, сохраняя при этом их размеры?
- 17. Отключить вращение частиц в Three.js
- 18. Различные размеры изображений в Wordpress
- 19. CSS: Наложение двух изображений на все размеры экрана
- 20. изменить размеры изображений в формате PDF с помощью Image.getInstance
- 21. Cycle.js переопределяет размеры изображений
- 22. Какие размеры изображений следует использовать для поддержки двух разрешений iphone?
- 23. Максимальные размеры растровых изображений
- 24. iOS размеры изображений
- 25. Размеры для изображений UITabBar?
- 26. Использовать размеры изображений
- 27. three.js: PerspectiveCamera: отключить зум
- 28. SOIL - Получение изображений Размеры
- 29. нерегулярные размеры изображений в галерее
- 30. SCSS - Получение изображений Размеры
Красиво ответил. :) –