Skip to main content

React Three Fiber

Introducción a React Three Fiber

React Three Fiber es un renderer de React para Three.js, que permite crear y manipular gráficos 3D en la web de manera declarativa. Con R3F, puedes integrar gráficos 3D en aplicaciones React de forma sencilla y eficiente, utilizando la misma sintaxis y principios de diseño que React.

Integración con React Native

Aunque React Three Fiber está diseñado principalmente para la web, se puede integrar en proyectos de React Native a través de soluciones específicas, como expo-three.

Requisitos Previos

  • Crear un proyecto de React Native utilizando Expo.

Instalación

Para comenzar a usar R3F en un proyecto de React Native, necesitas instalar las siguientes dependencias:

npx expo install three @react-three/fiber expo-gl expo-three

Ejemplo de Uso

Aquí hay un ejemplo básico de cómo configurar una escena 3D utilizando React Three Fiber en una aplicación de React Native:

import React, { Suspense, useRef } from 'react';
import { View } from 'react-native';
import { Canvas, useFrame } from '@react-three/fiber/native';


interface BoxInterface {
props: any;
color?: string;
}

const Box = React.forwardRef((
props: BoxInterface,
ref: React.Ref<View>
) => {

useFrame((state, delta) => {

if (ref) {
ref.current.rotation.y += delta;
}
});

return (
<mesh ref={ref} {...props}>
<boxGeometry args={[1, 1, 1]} />
<meshStandardMaterial color={props?.color ?? 'orange'} />
</mesh>
);
});

const ComponentR3F = () => {
const mesh = useRef<Mesh>(null); // Asegúrate de que el tipo de ref sea correcto

return (
<View style={{ flex: 1 }}>
<Canvas>
<Box ref={mesh} position={[0, 1.2, 0]} />
<Box ref={mesh} position={[0, -1.2, 0]} color={"red"}/>
<ambientLight />
<pointLight position={[10, 10, 10]} />
</Canvas>
</View>
);
};

export default ComponentR3F;

Recursos Adicionales

  1. Documentación Oficial: React Three Fiber Docs
  2. Repositorio de Ejemplo: Link de un repositorio de prueba

Consideraciones

  • Rendimiento: Asegúrate de optimizar tus escenas 3D, ya que los dispositivos móviles tienen menos recursos en comparación con las computadoras de escritorio.
  • Pruebas en Dispositivos: Siempre prueba tu aplicación en dispositivos reales para asegurar que el rendimiento y la experiencia del usuario sean óptimos.
  • Modelos: No hay una documentación clara de como agregar un modelo, pero existe un repositorio de ejemplo