Buscar pacotes, repositórios e categorias de apps

Detalhes do pacotev1.0.2+1

flutter_3d_objects

Um projeto de pacote Flutter que renderiza arquivos 3D do Wavefront.

AndroidiOSmacOSWindowsLinux
Downloads em 30 dias
2
Curtidas
5
Pontos Pub
135

Instalar pacote

flutter pub add flutter_3d_objects

Visão geral do pacote

Orientação gerada a partir de informações públicas. Apenas para referência.

Um pacote Flutter que permite o renderização de arquivos 3D Wavefront (.obj) em aplicativos Flutter. Ele suporta múltiplas plataformas, incluindo Android, iOS, macOS, Windows e Linux, tornando-o ideal para visualização 3D multiplataforma. O pacote se integra perfeitamente ao sistema de widgets do Flutter, permitindo que desenvolvedores incorporem objetos 3D interativos em suas interfaces. É particularmente útil para aplicativos que exigem exibição de ativos 3D, como pré-visualizações de produtos, ferramentas educacionais ou experiências de realidade aumentada.

Casos de uso

  • visualização de produto 3D
  • Aplicativos educacionais com modelos 3D
  • interfaces de realidade aumentada
  • Componentes de interface 3D interativos
  • protótipos de desenvolvimento de jogos

Principais recursos

  • Suporta arquivos .obj do Wavefront
  • Compatibilidade multiplataforma
  • Integração com widgets do Flutter
  • Leve e fácil de usar
  • Renderização 3D em tempo real

Indicado para

  • Desenvolvedores construindo aplicativos Flutter com suporte a 3D
  • criadores de software educacional
  • Aplicações de apresentação de produtos
  • equipes de prototipagem AR/VR
  • Designers de interface explorando elementos 3D

Considerações

  • Limitado ao formato de arquivo .obj
  • Sem suporte embutido a animação
  • Requer otimização de modelo 3D
  • Pode ter impacto no desempenho em dispositivos de baixa potência
  • Sem mapeamento de textura por padrão

README original

Snapshot do README original do repositório-fonte vinculado. Consulte o repositório para o conteúdo mais recente.

[Flutter 3D Objects]

pub package style: effective dart License: MIT

This package allows Flutter developers to easily display 3D models in their applications. It supports the .obj file format and provides functionalities to manipulate the scene, including setting camera positions and adding objects with child objects.

Features:

  • Display 3D models from .obj files
  • Add and manipulate objects within the scene
  • Set camera positions to adjust the view
  • Support for hierarchical object structures

Setup

How to use this

  • Add dependency in pubspec.yaml
dependencies:
  flutter:
    sdk: flutter
flutter_3d_objects:
  • Add 3D Models in assets, file type should be .obj
flutter:
assets:
  - assets/p.obj
  - assets/c.obj

Usage

void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        body: Center(
          child: Cube(
            onSceneCreated: (Scene scene) {
              scene.world.add(
                Object(
                  fileName: 'assets/c.obj',
                  position: Vector3(1, 1, 1),
                  scale: Vector3(1, 1, 1),
                ),
              );
            },
          ),
        ),
      ),
    );
  }
}

Example

//Create a variable
late Scene _scene;
double x = 0;
double y = 3;
double z = 8;
late AnimationController _controller;
late Animation<double> _animation;
Object? _p;

// Create Function
void _onSceneCreated(Scene scene) {
   _scene = scene;
   scene.camera.position.z = z;
   scene.camera.position.y = y;
   scene.camera.position.x = x;
   _p = Object(
       position: Vector3(0, -2.5, 0),
       scale: Vector3(4, 4, 4),
       fileName: 'assets/p.obj',
       children: [
         Object(
           fileName: 'assets/c.obj',
           position: Vector3(0.25, 0.15, -0.24),
           scale: Vector3(0.8, 0.8, 0.8),
         ),
       ]);
   scene.world.add(_p!);
 }

//Function to rotate
void rotateLeft() {
   _animateRotation(90);
 }

 void rotateRight() {
   _animateRotation(-90);
 }

 void _animateRotation(double angle) {
   final double begin = _p!.rotation.y;
   final double end = _p!.rotation.y + angle;

   _animation = Tween<double>(begin: begin, end: end).animate(_controller)
     ..addListener(() {
       setState(() {
         _p!.rotation.y = _animation.value;
         _p!.updateTransform();
         _scene.update();
       });
     });

   _controller.forward(from: 0);
 }

// In main widget function
Scaffold(
     appBar: AppBar(
       title: const Text(''),
     ),
     body: Stack(
       children: [
         Cube(
           interactive: false,
           zoom: false,
           onSceneCreated: _onSceneCreated,
         ),
         Positioned(
           bottom: 10,
           left: 0,
           right: 0,
           child: Row(
             mainAxisAlignment: MainAxisAlignment.spaceEvenly,
             children: [
               ElevatedButton(
                 onPressed: rotateLeft,
                 child: const Text('Left'),
               ),
               ElevatedButton(
                 onPressed: rotateRight,
                 child: const Text('Right'),
               ),
             ],
           ),
         ),
       ],
     ),
   );

Categorias

Dependências

Lista de dependências 2 itens

Repositório-fonte

Projetos que usam este pacote

Ainda não há dados.