test: add more tests
This commit is contained in:
@@ -13,6 +13,13 @@ import 'helpers.dart';
|
|||||||
void main() async {
|
void main() async {
|
||||||
final testHelper = TestHelper("geometry");
|
final testHelper = TestHelper("geometry");
|
||||||
group("custom geometry", () {
|
group("custom geometry", () {
|
||||||
|
test('create cube with normals & uvs', () async {
|
||||||
|
var viewer = await testHelper.createViewer();
|
||||||
|
await viewer
|
||||||
|
.createGeometry(GeometryHelper.cube(normals: true, uvs: true));
|
||||||
|
await testHelper.capture(viewer, "geometry_cube_with_normals_uvs");
|
||||||
|
});
|
||||||
|
|
||||||
test('create cube (no normals/uvs)', () async {
|
test('create cube (no normals/uvs)', () async {
|
||||||
await testHelper.withViewer((viewer) async {
|
await testHelper.withViewer((viewer) async {
|
||||||
var viewMatrix =
|
var viewMatrix =
|
||||||
@@ -41,13 +48,6 @@ void main() async {
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
test('create cube (with normals)', () async {
|
|
||||||
var viewer = await testHelper.createViewer();
|
|
||||||
await viewer
|
|
||||||
.createGeometry(GeometryHelper.cube(normals: true, uvs: false));
|
|
||||||
await testHelper.capture(viewer, "geometry_cube_with_normals");
|
|
||||||
});
|
|
||||||
|
|
||||||
test('create cube with lit ubershader material (normals/ no uvs)',
|
test('create cube with lit ubershader material (normals/ no uvs)',
|
||||||
() async {
|
() async {
|
||||||
await testHelper.withViewer((viewer) async {
|
await testHelper.withViewer((viewer) async {
|
||||||
@@ -91,24 +91,24 @@ void main() async {
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
// test('create instance (shared material)', () async {
|
test('create instance (shared material)', () async {
|
||||||
// await testHelper.withViewer((viewer) async {
|
await testHelper.withViewer((viewer) async {
|
||||||
// final materialInstance = await viewer.createUnlitMaterialInstance();
|
final materialInstance = await viewer.createUnlitMaterialInstance();
|
||||||
// await materialInstance.setParameterFloat4(
|
await materialInstance.setParameterFloat4(
|
||||||
// "baseColorFactor", 1.0, 0.0, 0.0, 1.0);
|
"baseColorFactor", 1.0, 0.0, 0.0, 1.0);
|
||||||
// final cube = await viewer.createGeometry(
|
final cube = await viewer.createGeometry(
|
||||||
// GeometryHelper.cube(normals: true, uvs: false),
|
GeometryHelper.cube(normals: true, uvs: false),
|
||||||
// materialInstances: [materialInstance]);
|
materialInstances: [materialInstance]);
|
||||||
|
|
||||||
// final instance = await viewer
|
final instance = await cube.createInstance();
|
||||||
// .createInstance(cube, materialInstances: [materialInstance]);
|
await instance.addToScene();
|
||||||
// await viewer.setTransform(
|
await viewer.setTransform(
|
||||||
// instance.entity, Matrix4.translation(Vector3.all(1)));
|
instance.entity, Matrix4.translation(Vector3.all(1)));
|
||||||
|
|
||||||
// await testHelper.capture(
|
await testHelper.capture(
|
||||||
// viewer, "geometry_instanced_with_shared_material_instance");
|
viewer, "geometry_instanced_with_shared_material");
|
||||||
// });
|
});
|
||||||
// });
|
});
|
||||||
|
|
||||||
// test('create instance (no material on second instance)', () async {
|
// test('create instance (no material on second instance)', () async {
|
||||||
// await testHelper.withViewer((viewer) async {
|
// await testHelper.withViewer((viewer) async {
|
||||||
@@ -151,8 +151,7 @@ void main() async {
|
|||||||
// });
|
// });
|
||||||
// });
|
// });
|
||||||
|
|
||||||
test('create cube with custom ubershader material instance (color)',
|
test('create cube with custom ubershader material (color)', () async {
|
||||||
() async {
|
|
||||||
await testHelper.withViewer((viewer) async {
|
await testHelper.withViewer((viewer) async {
|
||||||
await viewer.addLight(LightType.SUN, 6500, 1000000, 0, 0, 0, 0, 0, -1);
|
await viewer.addLight(LightType.SUN, 6500, 1000000, 0, 0, 0, 0, 0, -1);
|
||||||
await viewer.setCameraPosition(0, 2, 6);
|
await viewer.setCameraPosition(0, 2, 6);
|
||||||
|
|||||||
@@ -43,11 +43,13 @@ void main() async {
|
|||||||
|
|
||||||
await viewer.destroyAsset(instance);
|
await viewer.destroyAsset(instance);
|
||||||
|
|
||||||
await testHelper.capture(viewer, "load_glb_from_buffer_instance_removed");
|
await testHelper.capture(
|
||||||
|
viewer, "load_glb_from_buffer_instance_removed");
|
||||||
|
|
||||||
await viewer.destroyAsset(model);
|
await viewer.destroyAsset(model);
|
||||||
|
|
||||||
await testHelper.capture(viewer, "load_glb_from_buffer_original_removed");
|
await testHelper.capture(
|
||||||
|
viewer, "load_glb_from_buffer_original_removed");
|
||||||
}, bg: kRed);
|
}, bg: kRed);
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -115,7 +117,7 @@ void main() async {
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
test('replace material instance for gltf', () async {
|
test('replace material instance with unlit material', () async {
|
||||||
await testHelper.withViewer((viewer) async {
|
await testHelper.withViewer((viewer) async {
|
||||||
var model = await viewer
|
var model = await viewer
|
||||||
.loadGlb("file://${testHelper.testDir}/assets/cube.glb");
|
.loadGlb("file://${testHelper.testDir}/assets/cube.glb");
|
||||||
@@ -124,10 +126,28 @@ void main() async {
|
|||||||
await materialInstance.setParameterFloat4(
|
await materialInstance.setParameterFloat4(
|
||||||
"baseColorFactor", 1.0, 1.0, 0.0, 1.0);
|
"baseColorFactor", 1.0, 1.0, 0.0, 1.0);
|
||||||
await model.setMaterialInstanceAt(materialInstance);
|
await model.setMaterialInstanceAt(materialInstance);
|
||||||
await testHelper.capture(viewer, "gltf_set_material_instance");
|
await testHelper.capture(
|
||||||
|
viewer, "gltf_replace_material_instance_unlit");
|
||||||
await viewer.destroyAsset(model);
|
await viewer.destroyAsset(model);
|
||||||
await viewer.destroyMaterialInstance(materialInstance);
|
await viewer.destroyMaterialInstance(materialInstance);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
test('replace material instance with ubershader material', () async {
|
||||||
|
await testHelper.withViewer((viewer) async {
|
||||||
|
var model = await viewer
|
||||||
|
.loadGlb("file://${testHelper.testDir}/assets/cube.glb");
|
||||||
|
await viewer
|
||||||
|
.loadIbl("file://${testHelper.testDir}/assets/default_env_ibl.ktx");
|
||||||
|
var materialInstance = await viewer.createUbershaderMaterialInstance();
|
||||||
|
await materialInstance.setParameterFloat4(
|
||||||
|
"baseColorFactor", 1.0, 1.0, 0.0, 1.0);
|
||||||
|
await model.setMaterialInstanceAt(materialInstance);
|
||||||
|
await testHelper.capture(
|
||||||
|
viewer, "gltf_replace_material_instance_ubershader");
|
||||||
|
await viewer.destroyAsset(model);
|
||||||
|
await viewer.destroyMaterialInstance(materialInstance);
|
||||||
|
}, bg: kRed);
|
||||||
|
});
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -104,6 +104,23 @@ void main() async {
|
|||||||
await viewer.dispose();
|
await viewer.dispose();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
test('ubershader material with color only', () async {
|
||||||
|
await testHelper.withViewer((viewer) async {
|
||||||
|
var materialInstance = await viewer.createUbershaderMaterialInstance();
|
||||||
|
await viewer
|
||||||
|
.loadIbl("file://${testHelper.testDir}/assets/default_env_ibl.ktx");
|
||||||
|
var cube = await viewer.createGeometry(
|
||||||
|
GeometryHelper.cube(normals: true, uvs: true),
|
||||||
|
materialInstances: [materialInstance]);
|
||||||
|
|
||||||
|
await materialInstance.setParameterFloat4(
|
||||||
|
"baseColorFactor", 0.0, 1.0, 0.0, 1.0);
|
||||||
|
await materialInstance.setParameterInt("baseColorIndex", -1);
|
||||||
|
await testHelper.capture(viewer, "ubershader_material_base_color");
|
||||||
|
await viewer.destroyMaterialInstance(materialInstance);
|
||||||
|
}, bg: kRed, postProcessing: true);
|
||||||
|
});
|
||||||
|
|
||||||
test('apply texture to custom ubershader material instance', () async {
|
test('apply texture to custom ubershader material instance', () async {
|
||||||
var viewer = await testHelper.createViewer();
|
var viewer = await testHelper.createViewer();
|
||||||
await viewer.addLight(LightType.SUN, 6500, 1000000, 0, 0, 0, 0, 0, -1);
|
await viewer.addLight(LightType.SUN, 6500, 1000000, 0, 0, 0, 0, 0, -1);
|
||||||
|
|||||||
Reference in New Issue
Block a user