Pakete, Repositories und App-Kategorien suchen

Cover von babylonjs_viewer
Paketdetailsv1.3.0

babylonjs_viewer

3D-Modell-Rendering mit BabylonJS Viewer

AndroidiOSmacOS
30-Tage-Downloads
110
Likes
68
Pub-Punkte
140

Paket installieren

flutter pub add babylonjs_viewer

Paketübersicht

Aus öffentlichen Paketdaten erstellte Orientierung.

Das babylonjs_viewer-Paket ermöglicht die Darstellung von 3D-Modellen in Flutter-Anwendungen mithilfe von BabylonJS, einem leistungsstarken JavaScript-3D-Engine. Es bietet eine plattformunabhängige Möglichkeit, 3D-Inhalte auf Android, iOS und macOS anzuzeigen und zu interagieren. Durch die Nutzung der Web-basierten Darstellung über einen WebView können Entwickler reichhaltige 3D-Visualisierungen integrieren, ohne einen nativen 3D-Engine-Implementierung vornehmen zu müssen. Ideal für Anwendungen, die interaktive 3D-Inhalte erfordern, wie Produktvorschauen, architektonische Visualisierungen oder Bildungswerkzeuge.

Anwendungsfälle

  • 3D-Produktvisualisierung
  • Interaktive architektonische Modelle
  • Pädagogischer 3D-Inhalt
  • Virtuelle Touren
  • Vorschaubilder für Spielassets

Hauptmerkmale

  • Webbasierte 3D-Rekonstruktion über WebView
  • Unterstützung für mehrere 3D-Formate
  • Plattformübergreifende Kompatibilität
  • Interaktive Kamerasteuerung
  • Leichte Integration

Geeignet für

  • Entwickler, die 3D-fähige Flutter-Apps erstellen
  • Apps, die leichte 3D-Rendering benötigen
  • Prototyping 3D-Erlebnisse
  • Projekte für mobile und Desktop-Geräte

Hinweise

  • Leistungsbeschränkungen von WebView
  • Eingeschränkter Zugriff auf native 3D-API
  • Abhängig von der externen BabylonJS-Bibliothek
  • Höherer Speicherverbrauch für komplexe Modelle
  • Benötigt Internet für die erste Ladezeit, wenn nicht eingebunden

Original-README

Originaler README-Schnappschuss aus dem verknüpften Quell-Repository. Aktuelle Inhalte finden Sie im Repository.

babylonjs_viewer

3D Model viewer with BabylonJS Viewer for Flutter. This project highly inspired from model_viewer flutter pub package. Its simple model viewer, next release, json settings will be implented

Pub.dev

https://pub.dev/packages/babylonjs_viewer

Install

This will add a line like this to your package's pubspec.yaml (and run an implicit dart pub get):

dependencies:
  babylonjs_viewer: ^1.3.0
What's new in 1.3.0
  • Update dependency to webview_flutter 4.10.0
Why I need Controller

Controller is optional. You can use this controller for run Javascript code, go back, get current url, change url and many others that WebView Flutter can allow. Functions is optional. You can use this parameter for add javascript code to your viewer. Examples can be found at bottom of this document

Requirements

On your Android Project (android/app/build.gradle) set the "minSdkVersion" to 19

defaultConfig {
        applicationId "com.example.example"
        minSdkVersion 19
        targetSdkVersion 30
        versionCode flutterVersionCode.toInteger()
        versionName flutterVersionName
    }

Then add the line "android:usesCleartextTraffic="true"" to your android manifest (android/app/src/main/AndroidManifest.xml)

<application
        android:label="example"
        android:icon="@mipmap/ic_launcher"
        android:usesCleartextTraffic="true">

On your iOS Project go to the info.plist file (ios/Runner/Info.plist) and add the following line

<key>io.flutter.embedded_views_preview</key>
<true/>

Import it

Now in your Dart code, you can use:

import 'package:babylonjs_viewer/babylonjs_viewer.dart';

Using

  class MyApp extends StatelessWidget {
    @override
    Widget build(BuildContext context) {
      return MaterialApp(
        home: Scaffold(
          appBar: AppBar(title: Text("BabylonJS Viewer")),
          body: BabylonJSViewer(
            src: 'https://models.babylonjs.com/boombox.glb',
          ),
        ),
      );
    }
  }

Asset, FILE or HTTP(s)

HTTP(s)

  BabylonJSViewer(
    src: 'https://models.babylonjs.com/boombox.glb',
  ),

FILE

  BabylonJSViewer(
    src: 'file:///path/to/MyModel.glb',
  ),

Asset

  BabylonJSViewer(
    src: 'assets/MyModel.glb',
  ),
Controller and Function Example

Add webview_flutter to your pubspec.yaml

dependencies:
  webview_flutter: ^4.10.0

Add this to your state

import 'package:webview_flutter/webview_flutter.dart';

WebViewController? _controller;

Add your custom javascript functions. This will print to your flutter console.

BabylonJSViewer(
  controller: (WebViewController controller) {
    _controller = controller;
  },
  functions:
      '''function sayHello() { Print.postMessage("Hello World!"); }''',
  src:
      'https://models.babylonjs.com/boombox.glb',
),

Use this function wherever you want

ElevatedButton(
  onPressed: () {
      _controller?.runJavaScript('''
sayHello();
''');
  },
  child: const Text("Run Function")),
Use case for Controller and Function

You can access to viewer variable of babylonjs viewer. You can found all methods on there

In this example show you that how you can toggle auto rotate.

BabylonJSViewer(
  controller: (WebViewController controller) {
    _controller = controller;
  },
  functions: '''
function toggleAutoRotate(texture) {
let viewer = BabylonViewer.viewerManager.getViewerById('viewer-id');
viewer.sceneManager.camera.useAutoRotationBehavior = !viewer.sceneManager.camera.useAutoRotationBehavior
}
''',
  src:
      'https://models.babylonjs.com/boombox.glb',
),

use this function

ElevatedButton(
  onPressed: () {
      _controller?.runJavascript('''
toggleAutoRotate();
''');
  },
  child: const Text("Toggle")),

Kategorien

Abhängigkeiten

Abhängigkeiten 1 Einträge

Quell-Repository

Projekte, die dieses Paket verwenden

Noch keine Daten verfügbar.