macbear_3d 0.4.0 copy "macbear_3d: ^0.4.0" to clipboard
macbear_3d: ^0.4.0 copied to clipboard

Macbear 3D is a lightweight 3D rendering engine for Flutter, built on Google ANGLE (OpenGL ES).

example/lib/main.dart

import 'package:flutter/material.dart' hide Colors;

// Macbear3D engine
import 'package:macbear_3d/macbear_3d.dart';

void main() {
  M3AppEngine.instance.onDidInit = onDidInit;

  runApp(const MyApp());
}

Future<void> onDidInit() async {
  debugPrint('main.dart: onDidInit');
  final appEngine = M3AppEngine.instance;
  appEngine.renderEngine.createShadowMap(width: 1024, height: 1024);
  await appEngine.setScene(MyScene());
}

class MyApp extends StatelessWidget {
  const MyApp({super.key});

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(title: const Text('Macbear 3D Example')),
        body: const M3View(),
      ),
    );
  }
}

// Define a simple scene
class MyScene extends M3Scene {
  @override
  Future<void> load() async {
    if (isLoaded) return;
    await super.load();

    camera.setEuler(pi / 6, -pi / 6, 0, distance: 8);
    camera.csmCount = 0;

    // add geometry
    addMesh(M3Mesh(M3BoxGeom(1.0, 1.0, 1.0)), Vector3(0, 0, 2.5)).color = Colors.blue;
    addMesh(M3Mesh(M3SphereGeom(0.5)), Vector3(0, 0, 0)).color = Colors.red;
    addMesh(M3Mesh(M3TorusGeom(1, 0.2)), Vector3(0, 0, 0)).color = Colors.green;
    addMesh(M3Mesh(M3CylinderGeom(0.5, 0.1, 1.0)), Vector3(0, 0, 1.2)).color = Colors.yellow;
    addMesh(M3Mesh(M3PlaneGeom(10, 10)), Vector3(0, 0, -1)).color = Colors.skyBlue;
  }
}
2
likes
150
points
444
downloads
screenshot

Publisher

unverified uploader

Weekly Downloads

Macbear 3D is a lightweight 3D rendering engine for Flutter, built on Google ANGLE (OpenGL ES).

Homepage
Repository (GitHub)
View/report issues

Topics

#angle #opengl #glsl #macbear #matrix

Documentation

API reference

License

MIT (license)

Dependencies

build, flutter, flutter_angle, http, oimo_physics, vector_math

More

Packages that depend on macbear_3d