Jump to content

Ultra Engine testing


Josh
 Share

Recommended Posts

Ah I see.  I thought I'd be doing something silly for that not too work.  Did you notice that hovering over the custom widget doesn't change the texture?  The draw event is triggered and hover is set to true so it should use texture 't1' and turn pink but it remains blue.

Link to comment
Share on other sites

12 hours ago, SpiderPig said:

Essentially a repost of the problem I posted earlier but with an additional problem.  The panel on the right has a border drawn on the pixmap itself but it is not visible on the panel.  The panels here are sized 64x64 and the textures are 128x128.  I might be making the wrong assumption that the widgets texture coords are 0 to 1 respectively regards of their size?

There's also the alpha issue here too.

The default pixmap position mode is PIXMAP_CENTER. This places the image in the center of the widget, but does not stretch or squeeze the image to fill the widget. There are other options that can be used to change the size the image is displayed at. However, if you were to fit the image into a panel half its size, the one-pixel border on the edges would likely not be visible. When the panel is sized to the same size as the image, the image border is visible.

image.thumb.png.04bf1d30397b39abe389c6e11f5f5803.png

This example also shows that the panel on the left, which uses the PANEL_BORDER style, has an error in its drawing, as the border is one pixel off where it should be. However, these small artifacts are the lowest priority to solve right now.

  • Thanks 1

My job is to make tools you love, with the features you want, and performance you can't live without.

Link to comment
Share on other sites

18 minutes ago, SpiderPig said:

Ah I see.  I thought I'd be doing something silly for that not too work.  Did you notice that hovering over the custom widget doesn't change the texture?  The draw event is triggered and hover is set to true so it should use texture 't1' and turn pink but it remains blue.

This is because the system doesn't see that anything it is looking for has changed. The system uses currently pixmaps, not textures, although I can certainly see the usefulness for textures in 3D interfaces.

I will need to think about this.

  • Upvote 1

My job is to make tools you love, with the features you want, and performance you can't live without.

Link to comment
Share on other sites

Update

  • Modifying a widgetblock texture will now work correctly
  • Removed a lot of unimplemented camera methods, including fog commands
  • There is a "z'" member of the widget class now that stores the Z-position of the first widget block's sprite. This is a temporary hack and it will eventually go away
  • Thanks 1

My job is to make tools you love, with the features you want, and performance you can't live without.

Link to comment
Share on other sites

Some more progress:

Realtime Shader editing while the program is running:

image.thumb.gif.5bef374d648364d849880715c4e31637.gif

It uses the FindCachedAsset function together with the FileSystemWatcher. Another feature: it even supports the editing of includes on the fly. So when you edit for example the Lightning.glsl file, the code will find all dependent main shaders and recompile them on the fly.

  • Like 2
  • Intel® Core™ i7-8550U @ 1.80 Ghz 
  • 16GB RAM 
  • INTEL UHD Graphics 620
  • Windows 10 Pro 64-Bit-Version
Link to comment
Share on other sites

4 hours ago, Josh said:

@reepblue I'm not sure what I am looking for. Everything looks okay if I use this code to load a map:

One issue happens when you load the scene, delete it, and then reload the map (or load a different map) on the same pointer. You're looking for missing ball catchers and pedestal buttons (the switches) after the reload. These are the only two models in the game (minus the view model) that have a skeleton. 

The fog issue can be seen if you stick the camera outside the map. All lvl# have fog applied to them and it seems to be missing. I'm not sure if this is because fog isn't finished or the map loader isn't applying it to the camera. You can notice this by flying backwards out of the map and notice the brush work not being coved by the gold fog color. That glitch I've posted only happened once in lvl8.

Last issue that I had noticed was wrong UVs on some CSG based prefabs. Happens if they were rotated. 

Working late this week but I'll try to get comparison screenshots if needed. It's probably easier for me to notice these things because they were my maps that I've spent a lot of time on.

 

5 hours ago, Josh said:

I notice the signs have a strange error in their cubemap reflections. If I recall correctly, this is caused by texture assignment in a custom shader...there's a texture being used for a normal map that isn't a normal map, something like that.

Yeah, my signage used a custom shader for adjusting the emission mask. If I were to "reimagine" the game, I think I could get away using the stock shaders emission mask.

Cyclone - Ultra Game System - Component PreprocessorTex2TGA - Darkness Awaits Template (Leadwerks)

If you like my work, consider supporting me on Patreon!

Link to comment
Share on other sites

2 hours ago, reepblue said:

One issue happens when you load the scene, delete it, and then reload the map (or load a different map) on the same pointer. You're looking for missing ball catchers and pedestal buttons (the switches) after the reload. These are the only two models in the game (minus the view model) that have a skeleton. 

I'm not able to see any errors with the code below: got it!

#include "UltraEngine.h"
#include "ComponentSystem.h"

using namespace UltraEngine;

int main(int argc, const char* argv[])
{
    //Get the displays
    auto displays = GetDisplays();

    //Create a window
    auto window = CreateWindow("Ultra Engine", 0, 0, 1280, 720, displays[0], WINDOW_CENTER | WINDOW_TITLEBAR);

    //Create a framebuffer
    auto framebuffer = CreateFramebuffer(window);

    //Create a world
    auto world = CreateWorld();

    //Create a camera
    auto camera = CreateCamera(world);
    camera->SetPosition(0, 0, -4);
    camera->SetClearColor(0, 0, 1);

    auto actor = CreateActor(camera);
    actor->AddComponent<CameraControls>();

    auto scene = LoadScene(world, "maps/lvl8.map");

    auto box = CreateBox(world);

    while (window->Closed() == false and window->KeyDown(KEY_ESCAPE) == false)
    {
        if (window->KeyHit(KEY_SPACE))
        {
            scene = NULL;// works with or without this line
            scene = LoadScene(world, "maps/lvl8.map");
        }

        world->Update();
        world->Render(framebuffer);
    }
    return 0;
}

image.thumb.jpeg.7350d12a0997cffe1d4c4ecef88236f3.jpeg

2 hours ago, reepblue said:

The fog issue can be seen if you stick the camera outside the map. All lvl# have fog applied to them and it seems to be missing. I'm not sure if this is because fog isn't finished or the map loader isn't applying it to the camera. You can notice this by flying backwards out of the map and notice the brush work not being coved by the gold fog color. That glitch I've posted only happened once in lvl8.

Fog isn't supported yet. I can't see any other apparent problems in level 8.

2 hours ago, reepblue said:

Last issue that I had noticed was wrong UVs on some CSG based prefabs. Happens if they were rotated. 

This should be solved, but since it is a fairly simple cosmetic issue I'd like to try to focus on other things first.

My job is to make tools you love, with the features you want, and performance you can't live without.

Link to comment
Share on other sites

It's a lot easier just to test the one model like this:

#include "UltraEngine.h"
#include "ComponentSystem.h"

using namespace UltraEngine;

int main(int argc, const char* argv[])
{
    //Get the displays
    auto displays = GetDisplays();

    //Create a window
    auto window = CreateWindow("Ultra Engine", 0, 0, 1280, 720, displays[0], WINDOW_CENTER | WINDOW_TITLEBAR);

    //Create a framebuffer
    auto framebuffer = CreateFramebuffer(window);

    //Create a world
    auto world = CreateWorld();

    //Create a camera
    auto camera = CreateCamera(world);
    camera->SetPosition(0, 0, -4);
    camera->SetClearColor(0, 0, 1);

    auto actor = CreateActor(camera);
    actor->AddComponent<CameraControls>();

    auto box = CreateBox(world);
    box->SetPosition(0, -1, 0);

    auto model = LoadModel(world, "Models/props/energycatcher.mdl");

    while (window->Closed() == false and window->KeyDown(KEY_ESCAPE) == false)
    {
        if (window->KeyHit(KEY_SPACE))
        {
            model = LoadModel(world, "Models/props/energycatcher.mdl");
        }

        world->Update();
        world->Render(framebuffer);
    }
    return 0;
}

 

My job is to make tools you love, with the features you want, and performance you can't live without.

Link to comment
Share on other sites

In fact, just creating an instance of the model is enough to destroy the original. It must be a problem with the skeleton...

#include "UltraEngine.h"
#include "ComponentSystem.h"

using namespace UltraEngine;

int main(int argc, const char* argv[])
{
    //Get the displays
    auto displays = GetDisplays();

    //Create a window
    auto window = CreateWindow("Ultra Engine", 0, 0, 1280, 720, displays[0], WINDOW_CENTER | WINDOW_TITLEBAR);

    //Create a framebuffer
    auto framebuffer = CreateFramebuffer(window);

    //Create a world
    auto world = CreateWorld();

    //Create a camera
    auto camera = CreateCamera(world);
    camera->SetPosition(0, 0, -4);
    camera->SetClearColor(0, 0, 1);

    auto actor = CreateActor(camera);
    actor->AddComponent<CameraControls>();

    auto model = LoadModel(world, "Models/props/energycatcher.mdl");
    shared_ptr<Entity> inst;

    while (window->Closed() == false and window->KeyDown(KEY_ESCAPE) == false)
    {
        if (window->KeyHit(KEY_SPACE))
        {
            inst = model->Instantiate(world);
            inst->SetPosition(0, 0, 2);
        }

        world->Update();
        world->Render(framebuffer);
    }
    return 0;
}

 

My job is to make tools you love, with the features you want, and performance you can't live without.

Link to comment
Share on other sites

And if you manually set the skeleton it fixes the problem...

#include "UltraEngine.h"
#include "ComponentSystem.h"

using namespace UltraEngine;

int main(int argc, const char* argv[])
{
    //Get the displays
    auto displays = GetDisplays();

    //Create a window
    auto window = CreateWindow("Ultra Engine", 0, 0, 1280, 720, displays[0], WINDOW_CENTER | WINDOW_TITLEBAR);

    //Create a framebuffer
    auto framebuffer = CreateFramebuffer(window);

    //Create a world
    auto world = CreateWorld();

    //Create a camera
    auto camera = CreateCamera(world);
    camera->SetPosition(0, 0, -4);
    camera->SetClearColor(0, 0, 1);

    auto actor = CreateActor(camera);
    actor->AddComponent<CameraControls>();

    auto model = LoadModel(world, "Models/props/energycatcher.mdl");
    shared_ptr<Entity> inst;

    auto skel = model->skeleton;

    while (window->Closed() == false and window->KeyDown(KEY_ESCAPE) == false)
    {
        if (window->KeyHit(KEY_SPACE))
        {
            inst = LoadModel(world, "Models/props/energycatcher.mdl");;
            inst->SetPosition(0, 0, 2);
            model->SetSkeleton(skel);
            inst->As<Model>()->SetSkeleton(skel);
        }

        world->Update();
        world->Render(framebuffer);
    }
    return 0;
}

 

My job is to make tools you love, with the features you want, and performance you can't live without.

Link to comment
Share on other sites

I know I sent you down a rabbit hole with the skeleton issue, but when you're done with that, I'm gonna ask you to zip up the contents and load the maps with everything packaged. Prefabs, and materials assigned to models don't seem to be loading. 

This map is bugcheck.map. As you can see, materials for brushes are fine, but the materials for models aren't there. Also, prefabs don't seem to load.

image.thumb.png.4dfb86b4653e56c20de0aca37156fdcd.png

Skipping Plugin Loading...
cyclone_imported
Loading package "D:/UltraGame/game/cyclone_imported/data_maps.zip"
Loading package "D:/UltraGame/game/cyclone_imported/data_materials.zip"
Loading package "D:/UltraGame/game/cyclone_imported/data_models.zip"
Loading package "D:/UltraGame/game/core/data_everything.zip"
Creating World...
Loading shader family "Shaders/PBR.json"
Loading font "D:/UltraGame/game/sampleapp/Fonts/arial.ttf"
Loading shader family "Shaders/unlit.json"
Game has started!
Loading shader family "Shaders/Sky.json"
Loading posteffect "Shaders/PostEffects/Refraction.json"
Loading scene "Maps/bugcheck.map"
Loading material "materials/developer/defaultmeshface.mat"
Loading shader family "Shaders/Classic.json"
Loading texture "materials/developer/defaultmeshface.tex"
Loading material "materials/concrete/concrete_modular_floor001a.mat"
Loading texture "materials/concrete/concrete_modular_floor001a.tex"
Loading texture "materials/concrete/concrete_modular_floor001a_normal.tex"
Loading texture "materials/concrete/concrete_modular_floor001a_spec.tex"
Loading material "materials/concrete/concrete_modular_wall001b.mat"
Loading texture "materials/concrete/concrete_modular_wall001b.tex"
Loading texture "materials/concrete/concrete_modular_wall001a_normal.tex"
Loading texture "materials/concrete/concrete_modular_wall001a_spec.tex"
Loading material "materials/concrete/concrete_modular_ceiling001a.mat"
Loading texture "materials/concrete/concrete_modular_ceiling001a.tex"
Loading material "materials/concrete/concrete_modular_wall001a.mat"
Loading texture "materials/concrete/concrete_modular_wall001a.tex"
Loading model "models/characters/generic/generic.mdl"
Loading scene "prefabs/test/test_brushparent.pfb"
Error: Failed to load scene "prefabs/test/test_brushparent.pfb"
Loading scene "prefabs/lights/lightpanel_widehuge_warm.pfb"
Error: Failed to load scene "prefabs/lights/lightpanel_widehuge_warm.pfb"
Loading scene "prefabs/lights/lightpanel_widehuge_cool.pfb"
Error: Failed to load scene "prefabs/lights/lightpanel_widehuge_cool.pfb"
Loading material "materials/concrete/concrete_modular_wall002a.mat"
Loading texture "materials/concrete/concrete_modular_wall002a.tex"
Loading material "materials/plaster/observation_plasterceiling001a.mat"
Loading texture "materials/plaster/observation_plasterceiling001a.tex"
Loading material "materials/concrete/concrete_modular_wall001f.mat"
Loading texture "materials/concrete/concrete_modular_wall001f.tex"
Loading material "materials/plaster/observation_plasterwall001a.mat"
Loading texture "materials/plaster/observation_plasterwall001a.tex"
Loading scene "prefabs/lights/lightpanel_widehuge_cool.pfb"
Error: Failed to load scene "prefabs/lights/lightpanel_widehuge_cool.pfb"
Loading scene "prefabs/lights/lightpanel_widehuge_cool.pfb"
Error: Failed to load scene "prefabs/lights/lightpanel_widehuge_cool.pfb"
Loading scene "prefabs/frames/observationframe_512.pfb"
Error: Failed to load scene "prefabs/frames/observationframe_512.pfb"
Loading scene "prefabs/gameplay/floorbutton.pfb"
Error: Failed to load scene "prefabs/gameplay/floorbutton.pfb"
Loading material "materials/signage/hazard_boarder.mat"
Loading texture "materials/signage/hazard_boarder.tex"
Loading texture "materials/signage/hazard_boarder_emission.tex"
Loading material "materials/concrete/concrete_modular_floor001e.mat"
Loading texture "materials/concrete/concrete_modular_floor001e.tex"
Loading material "materials/nature/toxicsime01.mat"
Loading texture "materials/nature/toxicsime01.tex"
Loading texture "materials/nature/toxicsime01_normal.tex"
Loading texture "materials/nature/toxicsime01_spec.tex"
Loading material "materials/metal/metalwall_tiled001a_lrg.mat"
Loading texture "materials/metal/metalwall_tiled001a_lrg.tex"
Loading texture "materials/metal/metalwall_tiled001a_lrg_normal.tex"
Loading texture "materials/metal/metalwall_tiled001a_lrg_spec.tex"
Loading material "materials/metal/metalwall_tiled001a.mat"
Loading texture "materials/metal/metalwall_tiled001a.tex"
Loading texture "materials/metal/metalwall_tiled001a_normal.tex"
Loading texture "materials/metal/metalwall_tiled001a_spec.tex"
Loading material "materials/metal/metalwall_tiled001a_med.mat"
Loading texture "materials/metal/metalwall_tiled001a_med.tex"
Loading texture "materials/metal/metalwall_tiled001a_med_normal.tex"
Loading texture "materials/metal/metalwall_tiled001a_med_spec.tex"
Loading material "materials/concrete/concrete_modular_wall001e.mat"
Loading texture "materials/concrete/concrete_modular_wall001e.tex"
Loading material "materials/concrete/concrete_modular_wall001c.mat"
Loading texture "materials/concrete/concrete_modular_wall001c.tex"
Loading material "materials/metal/metalfloor_tiled001a.mat"
Loading texture "materials/metal/metalfloor_tiled001a.tex"
Loading texture "materials/metal/metalfloor_tiled001a_spec.tex"
Loading material "materials/plastic/plastictrim001a.mat"
Loading texture "materials/plastic/plastictrim001a.tex"
Loading scene "prefabs/gameplay/squaredoor.pfb"
Error: Failed to load scene "prefabs/gameplay/squaredoor.pfb"
Loading model "models/props/lightplatform_end.mdl"
Loading material "materials/plaster/observation_carpetfloor001a.mat"
Loading texture "materials/plaster/observation_carpetfloor001a.tex"
Loading scene "prefabs/gameplay/eballlauncher.pfb"
Error: Failed to load scene "prefabs/gameplay/eballlauncher.pfb"
Loading scene "prefabs/gameplay/switch.pfb"
Error: Failed to load scene "prefabs/gameplay/switch.pfb"
Loading scene "prefabs/gameplay/eballcatcher.pfb"
Error: Failed to load scene "prefabs/gameplay/eballcatcher.pfb"
Loading model "models/signage/signage_frame.mdl"
Loading scene "prefabs/gameplay/puzzlebox.pfb"
Error: Failed to load scene "prefabs/gameplay/puzzlebox.pfb"
Loading scene "prefabs/gameplay/cycloneframe.pfb"
Error: Failed to load scene "prefabs/gameplay/cycloneframe.pfb"
Loading scene "prefabs/gameplay/cleanser_256.pfb"
Error: Failed to load scene "prefabs/gameplay/cleanser_256.pfb"
Loading scene "prefabs/gameplay/flashchamberdoor.pfb"
Error: Failed to load scene "prefabs/gameplay/flashchamberdoor.pfb"
Loading scene "prefabs/gameplay/hexdoor.pfb"
Error: Failed to load scene "prefabs/gameplay/hexdoor.pfb"
Loading scene "prefabs/gameplay/switch.pfb"
Error: Failed to load scene "prefabs/gameplay/switch.pfb"
Loading scene "prefabs/lights/observationroom_pointlght.pfb"
Error: Failed to load scene "prefabs/lights/observationroom_pointlght.pfb"
Loading model "models/environment/pillar_mid.mdl"
Loading material "materials/metal/metallift001a.mat"
Loading texture "materials/metal/metallift001a.tex"
Loading model "models/environment/pillar_top.mdl"
Loading material "materials/developer/invisibleramp.mat"
Loading texture "materials/developer/defaultgrid.tex"
Loading material "materials/developer/defaultgrid.mat"
Loading model "models/props/item_dropper.mdl"
Loading model "models/props/item_dropper_cover.mdl"
Loading material "materials/glass/itemdropper_glass.mat"
Loading texture "materials/glass/glasswindow01.tex"
Loading material "materials/developer/invisible.mat"
Loading material "materials/concrete/concrete_modular_ceiling001b.mat"
Loading texture "materials/concrete/concrete_modular_ceiling001b.tex"
Loading material "materials/developer/caulk.mat"
Loading texture "materials/developer/caulk.tex"
Loading material "materials/metal/metalbeam001a.mat"
Loading texture "materials/metal/metalbeam001a.tex"
Loading material "materials/metal/metalwall_backstage001a.mat"
Loading texture "materials/metal/metalwall_backstage001a.tex"
Loading texture "materials/metal/metalwall_backstage001a_dot3.tex"
Loading material "materials/metal/metalwall_backstage001a_gradient.mat"
Loading texture "materials/effects/lightgradient.tex"
Loading material "materials/lights/light_backstage.mat"
Loading scene "prefabs/gameplay/lightplatform.pfb"
Error: Failed to load scene "prefabs/gameplay/lightplatform.pfb"
Loading scene "prefabs/gameplay/switch.pfb"
Error: Failed to load scene "prefabs/gameplay/switch.pfb"
Loading scene "prefabs/gameplay/puzzlebox.pfb"
Error: Failed to load scene "prefabs/gameplay/puzzlebox.pfb"
Loading scene "prefabs/gameplay/puzzlebox.pfb"
Error: Failed to load scene "prefabs/gameplay/puzzlebox.pfb"
Deleting material "materials/developer/caulk.mat"
Deleting texture "materials/developer/caulk.tex"

On a side note, can we get a Widget::SetFont() method if possible? I was manually assigning the font member to change a font of a widget for my splash window, but I had to comment it out on the latest build.

  • Upvote 2

Cyclone - Ultra Game System - Component PreprocessorTex2TGA - Darkness Awaits Template (Leadwerks)

If you like my work, consider supporting me on Patreon!

Link to comment
Share on other sites

I have the skeleton issue solved, I think.

Unrelated, it looks like textures are not being properly deallocated, so it runs out of slots after loading the scene a few times...stay tuned...

My job is to make tools you love, with the features you want, and performance you can't live without.

Link to comment
Share on other sites

A small update on the shader reload: 

In this gif you can see, that i am editing an included file (Fragment.glsl) This file is used by many shaders so changing this file needs to recompile all dependent main shader files, which you see here. (i changed the lod lookup to a fixed value of 0 which leads to a clear representation of the reflection (just for demonstration) )  I also have improved the compile times as i have moved the Compilation to Multithreading, which makes it much faster than the batch file approach. I am now working on a better error handling, As you can see in the gif, currently the same error is printed for each compiled shader. I want to make it more streamlined, The idea is to create an error log at the end, after all files are compiled. When this is finished i will make this piece of code open source, so Josh and others can include this if they need it.

image.thumb.gif.27b8012157769c155f4dba604b190554.gif

  • Like 3
  • Intel® Core™ i7-8550U @ 1.80 Ghz 
  • 16GB RAM 
  • INTEL UHD Graphics 620
  • Windows 10 Pro 64-Bit-Version
Link to comment
Share on other sites

15 hours ago, reepblue said:

I know I sent you down a rabbit hole with the skeleton issue, but when you're done with that, I'm gonna ask you to zip up the contents and load the maps with everything packaged. Prefabs, and materials assigned to models don't seem to be loading. 

It's working okay in my current build so maybe it was a small issue I fixed since then...

My job is to make tools you love, with the features you want, and performance you can't live without.

Link to comment
Share on other sites

This is what I am working with now. It will crash after a few seconds:

#include "UltraEngine.h"
#include "ComponentSystem.h"

using namespace UltraEngine;

int main(int argc, const char* argv[])
{
    //Get the displays
    auto displays = GetDisplays();

    //Create a window
    auto window = CreateWindow("Ultra Engine", 0, 0, 1280, 720, displays[0], WINDOW_CENTER | WINDOW_TITLEBAR);

    //Create a framebuffer
    auto framebuffer = CreateFramebuffer(window);

    //Create a world
    auto world = CreateWorld();

    //Create a camera
    auto camera = CreateCamera(world);
    camera->SetPosition(0, 0, -4);
    camera->SetClearColor(0, 0, 1);

    auto light = CreateSpotLight(world);
    //auto tb = CreateTextureBuffer(512, 512);

    while (window->Closed() == false and window->KeyDown(KEY_ESCAPE) == false)
    {
        world->Update();
        world->Render(framebuffer);

        //tb = NULL;
        //tb = CreateTextureBuffer(512, 512);
        light = NULL;
        light = CreateSpotLight(world);
    }
    return 0;
}

 

My job is to make tools you love, with the features you want, and performance you can't live without.

Link to comment
Share on other sites

Important Update

  • Fixed some problems with skinned models. Not completely sure if the bone starting positions are correct or not, but other than that it should be good.
  • Fixed problem where probe and light textures never got released.
  • Was unable to see any problems loading scenes from a zip package, may be fixed.

My job is to make tools you love, with the features you want, and performance you can't live without.

Link to comment
Share on other sites

  • Josh locked this topic
Guest
This topic is now closed to further replies.
 Share

×
×
  • Create New...