fixed emitter energy, fixed renames from oom, fixed removed emitter blocker

This commit is contained in:
Harvey Fong 2025-04-18 16:04:18 -06:00
parent 6d18cb8e7c
commit beeb9a709d

View File

@ -185,18 +185,25 @@ The 't' field in the snapshot's 's.id' dictionary indicates the type of snapshot
#include <sys/wait.h> // For waitpid #include <sys/wait.h> // For waitpid
#endif #endif
// oomer's helper utility code to make main cpp smaller
#include "../oom/oom_bella_long.h" #include "../oom/oom_bella_long.h"
#include "../oom/oom_bella_scene.h"
#include "../oom/oom_misc.h" // common misc code #include "../oom/oom_misc.h" // common misc code
#include "../oom/oom_license.h" // common misc code #include "../oom/oom_license.h" // common misc code
#include "../oom/oom_voxel_vmax.h" // common vmax voxel code and structures #include "../oom/oom_voxel_vmax.h" // common vmax voxel code and structures
#include "../oom/oom_voxel_ogt.h" // common opengametools voxel conversion wrappers #include "../oom/oom_voxel_ogt.h" // common opengametools voxel conversion wrappers
#include "../oom/oom_bella_long.h" // more oomer's helper code for bella, but has long data
#include "../oom/oom_bella_premade.h" // oomer's helper code for bella scenes
#include "../oom/oom_bella_misc.h" // oomer's hlper code for bella misc code
#define OGT_VOX_IMPLEMENTATION #define OGT_VOX_IMPLEMENTATION
#include "../opengametools/src/ogt_vox.h" #include "../opengametools/src/ogt_vox.h"
//==============================================================================
// GLOBAL VARIABLES AND FUNCTIONS
//==============================================================================
// oomer helper functions from ../oom // oomer helper functions from ../oom
dl::bella_sdk::Node oom::bella::defaultScene2025(dl::bella_sdk::Scene& belScene); //dl::bella_sdk::Node oom::bella::defaultSceneVoxel(dl::bella_sdk::Scene& belScene);
dl::bella_sdk::Node add_ogt_mesh_to_scene( dl::String bellaName, dl::bella_sdk::Node add_ogt_mesh_to_scene( dl::String bellaName,
ogt_mesh* ogtMesh, ogt_mesh* ogtMesh,
dl::bella_sdk::Scene& belScene, dl::bella_sdk::Scene& belScene,
@ -210,6 +217,10 @@ dl::bella_sdk::Node addModelToScene(dl::Args& args,
const std::vector<oom::vmax::RGBA>& vmaxPalette, const std::vector<oom::vmax::RGBA>& vmaxPalette,
const std::array<oom::vmax::Material, 8>& vmaxMaterial); const std::array<oom::vmax::Material, 8>& vmaxMaterial);
//==============================================================================
// MAIN FUNCTION
//==============================================================================
int DL_main(dl::Args& args) { int DL_main(dl::Args& args) {
int s_oomBellaLogContext = 0; int s_oomBellaLogContext = 0;
@ -223,20 +234,17 @@ int DL_main(dl::Args& args) {
args.add("tp", "thirdparty", "", "prints third party licenses"); args.add("tp", "thirdparty", "", "prints third party licenses");
args.add("li", "licenseinfo", "", "prints license info"); args.add("li", "licenseinfo", "", "prints license info");
// If --help was requested, print help and exit
if (args.helpRequested()) { if (args.helpRequested()) {
std::cout << args.help("vmax2bella © 2025 Harvey Fong","vmax2bella", "1.0") << std::endl; std::cout << args.help("vmax2bella © 2025 Harvey Fong","vmax2bella", "1.0") << std::endl;
return 0; return 0;
} }
// If --licenseinfo was requested, print license info and exit
if (args.have("--licenseinfo")) if (args.have("--licenseinfo"))
{ {
std::cout << oom::license::printLicense() << std::endl; std::cout << oom::license::printLicense() << std::endl;
return 0; return 0;
} }
// If --thirdparty was requested, print third-party licenses and exit
if (args.have("--thirdparty")) if (args.have("--thirdparty"))
{ {
std::cout << oom::license::printBellaSDK() << "\n====\n" << std::endl; std::cout << oom::license::printBellaSDK() << "\n====\n" << std::endl;
@ -258,7 +266,15 @@ int DL_main(dl::Args& args) {
// Create a new scene // Create a new scene
dl::bella_sdk::Scene belScene; dl::bella_sdk::Scene belScene;
belScene.loadDefs(); belScene.loadDefs();
auto belWorld = belScene.world(true);
auto [ belWorld,
belMeshVoxel,
belLiqVoxel,
belVoxel,
belEmitterBlockXform ] = oom::bella::defaultSceneVoxel(belScene);
//auto belWorld = belScene.world(true);
// scene.json is the toplevel file that hierarchically defines the scene // scene.json is the toplevel file that hierarchically defines the scene
// it contains nestable groups (containers) and objects (instances) that point to resources that define the object // it contains nestable groups (containers) and objects (instances) that point to resources that define the object
@ -495,12 +511,12 @@ dl::bella_sdk::Node addModelToScene(dl::Args& args,
{ {
dl::bella_sdk::Scene::EventScope es(belScene); dl::bella_sdk::Scene::EventScope es(belScene);
auto belVoxel = belScene.findNode("oomerVoxel"); auto belVoxel = belScene.findNode("oomVoxel");
auto belLiqVoxel = belScene.findNode("oomerLiqVoxel"); auto belLiqVoxel = belScene.findNode("oomLiqVoxel");
auto belMeshVoxel = belScene.findNode("oomerMeshVoxel"); auto belMeshVoxel = belScene.findNode("oomMeshVoxel");
auto belVoxelForm = belScene.findNode("oomerVoxelXform"); auto belVoxelForm = belScene.findNode("oomEmitterBlockXform");
auto belLiqVoxelForm = belScene.findNode("oomerLiqVoxelXform"); //auto belLiqVoxelForm = belScene.findNode("oomLiqVoxelXform");
auto belBevel = belScene.findNode("oomerBevel"); auto belBevel = belScene.findNode("oomBevel");
auto modelXform = belScene.createNode("xform", canonicalName, canonicalName); auto modelXform = belScene.createNode("xform", canonicalName, canonicalName);
modelXform["steps"][0]["xform"] = dl::Mat4 {1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1}; modelXform["steps"][0]["xform"] = dl::Mat4 {1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1};
@ -534,7 +550,7 @@ dl::bella_sdk::Node addModelToScene(dl::Args& args,
} else if(vmaxMaterial[material].emission > 0.0f) { } else if(vmaxMaterial[material].emission > 0.0f) {
belMaterial["type"] = "emitter"; belMaterial["type"] = "emitter";
belMaterial["emitterUnit"] = "radiance"; belMaterial["emitterUnit"] = "radiance";
belMaterial["emitterEnergy"] = vmaxMaterial[material].emission*1.0f; belMaterial["emitterEnergy"] = vmaxMaterial[material].emission*100.0f;
} else if(vmaxMaterial[material].roughness > 0.8999f) { } else if(vmaxMaterial[material].roughness > 0.8999f) {
belMaterial["type"] = "diffuse"; belMaterial["type"] = "diffuse";
} else { } else {