# Load Textures
> Todas las texturas usada en este ejemplo son de [ambientcg](https://ambientcg.com/).
Texturas tridimensionales (3D) son imágenes que contener capas múltiples de datos, permitiéndoles a representar volumen o simular estructuras tridimensionales. Estas texturas se usan frecuentemente en gráficas 3D y efectos para mejorar el realismo y complexidad de escenas y objetos.
Hay dos maneras de cargar texturas 3D en TresJS:
## Utilizar `useLoader`
Para cargar el recurso, el `useLoader` composable te permite pasar cualquier tipo de Three.js cargador y un URL. Devuelve un `Promise` con el recurso cargado.
Por una explanación detallada de como usar `useLoader`, ve la documentación de [useLoader](/api/composables#useloader).
```ts
import { useLoader } from '@tresjs/core'
import { TextureLoader } from 'three/examples/jsm/loaders/TextureLoader'
const texture = useLoader(TextureLoader, '/Rock035_2K_Color.jpg')
```
Entonces, puedes pasar la textura al material:
```html
```
Nota que en el ejemplo arriba que usamos el componente `Suspense` para 'wrap' el componente `TresCanvas`. Eso es por `useLoader` devuelve un `Promise` y necesitamos esperarlo resolver antes de renderizar la escena.
## Utilizar `useTexture`
Una manera más conveniente de cargar texturas es usar el composable `useTexture`. Se acepta un matrix de URLs o un objeto singular con las rutas de textura mapeados.
Para aprender más de `useTexture`, ve la documentación de [useTexture](/api/composables#use-texture).
```ts
import { useTexture } from '@tresjs/core'
const pbrTexture = await useTexture({
map: '/textures/black-rock/Rock035_2K_Displacement.jpg',
displacementMap: '/textures/black-rock/Rock035_2K_Displacement.jpg',
roughnessMap: '/textures/black-rock/Rock035_2K_Roughness.jpg',
normalMap: '/textures/black-rock/Rock035_2K_NormalDX.jpg',
ambientOcclusion: '/textures/black-rock/Rock035_2K_AmbientOcclusion.jpg',
})
```
De la manera del ejemplo anterior, podemos pasar todas las texturas a un material via props:
```html
```