В A-Frame текстурные карты используются для создания реалистичных материалов на 3D-объектах. Каждая карта несёт уникальную информацию о свойствах поверхности и напрямую влияет на визуальное восприятие модели. Библиотека строится поверх Three.js, поэтому понимание базовой логики работы текстур совпадает с принципами WebGL и PBR (Physically Based Rendering).
Color map (или diffuse map)
отвечает за базовый цвет объекта. Это изображение, которое
«накладывается» на поверхность модели и определяет её визуальную
окраску. В A-Frame color map подключается через атрибут src
в компоненте material:
<a-box position="0 1 -3" width="2" height="2" depth="2"
material="src: url(textures/wood_color.jpg);">
</a-box>
Ключевые моменты работы:
Normal map создаёт иллюзию рельефа на поверхности без добавления дополнительных полигонов. Она задаёт направление нормалей каждой точки модели, что позволяет свету реагировать так, будто объект имеет микрорельеф. В A-Frame подключение выглядит так:
<a-sphere position="0 1.5 -4" radius="1.5"
material="src: url(textures/metal_color.jpg);
normalMap: url(textures/metal_normal.jpg);">
</a-sphere>
Особенности нормалей:
Roughness map определяет шероховатость поверхности и
то, насколько она рассеивает отражённый свет. В PBR моделях это ключ к
контролю блеска. В A-Frame подключается через
roughnessMap:
<a-plane position="0 0 -3" rotation="-90 0 0" width="5" height="5"
material="src: url(textures/floor_color.jpg);
roughnessMap: url(textures/floor_roughness.jpg);
roughness: 1;">
</a-plane>
Свойства roughness map:
metalnessMap для создания поверхностей
металлов и полированных объектов.Metalness map управляет металлической природой
материала. В PBR-материалах значение 0 — неметалл, 1 — чистый металл. В
A-Frame используется через атрибут metalnessMap:
<a-cylinder position="2 1 -3" radius="0.5" height="2"
material="src: url(textures/metal_color.jpg);
metalnessMap: url(textures/metal_metalness.jpg);
metalness: 1;">
</a-cylinder>
Принципы работы:
В современных PBR-материалах все карты работают совместно:
Пример полного материала:
<a-sphere position="0 1.5 -4" radius="1.5"
material="src: url(textures/metal_color.jpg);
normalMap: url(textures/metal_normal.jpg);
roughnessMap: url(textures/metal_roughness.jpg);
metalnessMap: url(textures/metal_metalness.jpg);
roughness: 0.5;
metalness: 1;">
</a-sphere>
Такой подход позволяет создавать визуально сложные объекты без тяжёлой геометрии, с динамическим освещением, корректными отражениями и реалистичной фактурой.
repeat для плиточных поверхностей.metalness и
roughness регулируют интенсивность карт, позволяя тонко
настраивать визуальный эффект.Использование color, normal, roughness и metalness карт в A-Frame открывает доступ к современным техникам PBR, делая виртуальные сцены более реалистичными и насыщенными визуальными эффектами. Комплексное применение этих карт позволяет добиться детализации, которую сложно получить только геометрией.