这是indexloc提供的服务,不要输入任何密码
Skip to content

Scene not rendered properly after rotation. (tried on iOS and android) #72

@zhushuihua

Description

@zhushuihua

import 'dart:math';
import 'package:flutter/material.dart';
import 'package:three_js/three_js.dart' as t3;

void main() {
runApp(const MyApp());
}

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

@OverRide
Widget build(BuildContext context) {
return Three3D();
}
}

class Three3D extends StatefulWidget {
const Three3D({super.key});

@OverRide
State createState() => _Three3DState();
}

class _Three3DState extends State {
late final t3.ThreeJS threeJS;
@OverRide
void initState() {
threeJS = t3.ThreeJS(
onSetupComplete: () => setState(() {}),
setup: setup,
settings: t3.Settings(useOpenGL: true),
);
print('okok');

super.initState();

}

Future setup() async {
t3.Vector3 getVec3() {
final random = Random();
return t3.Vector3(
random.nextDouble() * 5 * (random.nextBool() ? 1.0 : -1.0),
random.nextDouble() * 5 * (random.nextBool() ? 1.0 : -1.0),
random.nextDouble() * 5 * (random.nextBool() ? 1.0 : -1.0),
);
}

threeJS.camera = t3.PerspectiveCamera(50, threeJS.width / threeJS.height);
threeJS.camera.position.setFrom(t3.Vector3(0, 2, 6));
threeJS.scene = t3.Scene();
final geometry = t3.BoxGeometry();
final random = Random();
for (var i = 0; i < 100; i++) {
  final mesh = t3.Mesh(
    geometry,
    t3.MeshBasicMaterial({
      t3.MaterialProperty.color: t3.Color(
        random.nextDouble(),
        random.nextDouble(),
        random.nextDouble(),
      ),
    }),
  );
  mesh.position.setFrom(getVec3());
  threeJS.scene.add(mesh);
}
t3.OrbitControls(threeJS.camera, threeJS.globalKey);

}

@OverRide
Widget build(BuildContext context) {
return threeJS.build();
}

@OverRide
void dispose() {
threeJS.dispose();
super.dispose();
}
}

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions