😊
【React Three Fiber】Reactで作る3D【#10useTexture】
【#10useTexture】
YouTube: https://youtu.be/c66t0IZbos4
今回は「@react-three/drei」の「useTexture」を使用して、
前回作成した3Dオブジェクトにテクスチャを貼り付けていきます。
もし、「月」の画像がダウンロードできない場合は、
こちらのサイトからお好きなテクスチャをダウンロードしても大丈夫です。
通常の画像のほかに、「displacement」用の画像が必要になります。
src/components/GeoTexture.tsx
import { Plane, Sphere, useTexture } from '@react-three/drei'
import { DoubleSide } from 'three'
const GeoTexture = () => {
const moonTexture = useTexture({
map: '/lroc_color_poles_1k.jpg',
displacementMap: '/ldem_3_8bit.jpg',
})
return (
<>
<Sphere position={[0, 0, 2]}>
<meshStandardMaterial map={moonTexture.map} />
</Sphere>
<Plane args={[10, 10, 128, 128]}>
<meshStandardMaterial side={DoubleSide} {...moonTexture} transparent />
</Plane>
</>
)
}
export default GeoTexture
「useTexture」の引数で設定しているオブジェクトは、
「material」のpropsに渡せる値になります。
Discussion