use both ubershader/unlit material provider

This commit is contained in:
Nick Fisher
2023-03-12 14:01:26 +08:00
parent 9c7e138a02
commit f99d2d0ad3
2 changed files with 15 additions and 12 deletions

View File

@@ -136,7 +136,8 @@ namespace polyvox {
Texture* _iblTexture = nullptr;
IndirectLight* _indirectLight = nullptr;
MaterialProvider* _materialProvider = nullptr;
MaterialProvider* _ubershaderProvider = nullptr;
MaterialProvider* _unlitProvider = nullptr;
gltfio::ResourceLoader* _resourceLoader = nullptr;
gltfio::TextureProvider* _stbDecoder = nullptr;

View File

@@ -73,7 +73,7 @@
#include "ResourceManagement.hpp"
extern "C" {
#include "material/image_material.h"
#include "material/image.h"
#include "material/unlit_opaque.h"
}
@@ -154,11 +154,11 @@ FilamentViewer::FilamentViewer(void* context, LoadResource loadResource,
_view->setScene(_scene);
_view->setCamera(_mainCamera);
// ToneMapper *tm = new LinearToneMapper();
// colorGrading = ColorGrading::Builder().toneMapper(tm).build(*_engine);
// delete tm;
ToneMapper *tm = new LinearToneMapper();
colorGrading = ColorGrading::Builder().toneMapper(tm).build(*_engine);
delete tm;
// _view->setColorGrading(colorGrading);
_view->setColorGrading(colorGrading);
_cameraFocalLength = 28.0f;
_mainCamera->setLensProjection(_cameraFocalLength, 1.0f, kNearPlane,
@@ -192,15 +192,16 @@ FilamentViewer::FilamentViewer(void* context, LoadResource loadResource,
// auto materialRb = _loadResource("file:///mnt/hdd_2tb/home/hydroxide/projects/filament/unlit.filamat");
// Log("Loaded resource of size %d", materialRb.size);
// _materialProvider = new FileMaterialProvider(_engine, (void*) materialRb.data, (size_t)materialRb.size);
//_materialProvider = new UnlitMaterialProvider(_engine);
_materialProvider = gltfio::createUbershaderProvider(
_unlitProvider = new UnlitMaterialProvider(_engine);
_ubershaderProvider = gltfio::createUbershaderProvider(
_engine, UBERARCHIVE_DEFAULT_DATA, UBERARCHIVE_DEFAULT_SIZE);
Log("Created material provider");
EntityManager &em = EntityManager::get();
_ncm = new NameComponentManager(em);
_assetLoader = AssetLoader::create({_engine, _materialProvider, _ncm, &em});
_assetLoader = AssetLoader::create({_engine, _ubershaderProvider, _ncm, &em});
_resourceLoader = new ResourceLoader({.engine = _engine,
.normalizeSkinningWeights = true });
_stbDecoder = createStbProvider(_engine);
@@ -268,7 +269,7 @@ void FilamentViewer::createImageRenderable() {
_imageMaterial =
Material::Builder()
.package(IMAGE_MATERIAL_PACKAGE, IMAGE_MATERIAL_IMAGE_SIZE)
.package(IMAGE_PACKAGE, IMAGE_IMAGE_SIZE)
.build(*_engine);
_imageVb = VertexBuffer::Builder()
@@ -530,7 +531,8 @@ FilamentViewer::~FilamentViewer() {
clearAssets();
delete _sceneAssetLoader;
_resourceLoader->asyncCancelLoad();
_materialProvider->destroyMaterials();
_ubershaderProvider->destroyMaterials();
_unlitProvider->destroyMaterials();
AssetLoader::destroy(&_assetLoader);
for(auto it : _lights) {
_engine->destroy(it);