1. Core Hooks
  2. useTexture

Core Hooks

useTexture

useTexture allows you to easily load textures and automatically convert your textures to the correct color space based on your settings on the <Canvas> component.

Import

Source

GitHub View Source Code

Usage Without Context

This hook can be called outside of the <Canvas> component, but with limitations: To make sure that textures are converted to the correct color space, useTexture needs to consume the <Canvas> context. If there's no context, it will fall back to keeping your textures untouched.

Events

useTexture also exposes the native THREE.TextureLoader events onLoad, onProgress and onError:

const texture = useTexture('tex.jpg', {
  onError: (error) => {
    console.warn(`An error occured loading the texture: ${error.message}`)
  }
})

Examples

const tex = useTexture('tex.jpg')
// -> THREE.Texture

const [texA, texB] = useTexture(['texA.jpg', 'texB.jpg'])
// -> THREE.Texture[]

const textures = useTexture({ bumpMap: 'bump.jpg', map: 'map.jpg' })
// -> { bumpMap: THREE.Texture, map: THREE.Texture }
const material = new MeshStandardMaterial({ ...textures })