Jump to content

SpiderPig

Members
  • Posts

    2,333
  • Joined

  • Last visited

Posts posted by SpiderPig

  1. There's bloom.lua in the posteffects folder under the shaders folder in your project.  I think you add that to your camera as a post effect.

    For an emission shader I think you just need to change the shader from diffuse.shader to emission.shader in the material editor.  I haven't used Leadwerks in a while though.

    • Like 1
  2. I thought I'd better post this here as I think it's a bug.  Though I'm not sure...  I can't seem to get the mesh to collide with the falling cube - I think I got the collider in the right spot to catch the cube.

    #include "UltraEngine.h"
    #include "Components/Mover.hpp"
    
    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 world
        auto world = CreateWorld();
    
        //Create a framebuffer
        auto framebuffer = CreateFramebuffer(window);
    
        //Create a camera
        auto camera = CreateCamera(world);
        camera->SetClearColor(0.125);
        camera->SetFov(70);
        camera->SetPosition(0, 1, -5);
    
        camera->SetDebugPhysicsMode(true);
    
        //Create a light
        auto light = CreateBoxLight(world);
        light->SetRotation(35, 45, 0);
        light->SetRange(-10, 10);
    
        bool flip = true;
        float extents = 3.0f;
        vector<Vec3> verts;
        if (flip == false) {
            verts.push_back(Vec3(-extents, 0.0f, -extents));
            verts.push_back(Vec3(extents, 0.0f, -extents));
            verts.push_back(Vec3(0.0f, 0.0f, extents));
        }
        else {
            verts.push_back(Vec3(-extents, 0.0f, -extents));
            verts.push_back(Vec3(0.0f, 0.0f, extents));
            verts.push_back(Vec3(extents, 0.0f, -extents));
        }
    
        auto c = CreateMeshCollider();
        c->AddFace(verts);
        c->Finalize();
    
        auto pivot = CreateModel(world);//Works
        // auto pivot = CreatePivot(world);//Dosn't Work
        pivot->SetCollider(c);
        pivot->SetCollisionType(COLLISION_SCENE);
    
        world->SetCollisionResponse(COLLISION_SCENE, COLLISION_PROP, COLLISION_COLLIDE);
    
        //Main loop
        vector<shared_ptr<Entity>> cubes;
        while (window->Closed() == false and window->KeyDown(KEY_ESCAPE) == false) {
            if (window->KeyHit(KEY_SPACE) == true) {
                auto cube = CreateBox(world);
                cube->SetPosition(0.0f, 10.0f, 0.0f, true);
                cube->SetMass(1.0f);
                cube->SetCollisionType(COLLISION_PROP);
    
                cubes.push_back(cube);
            }
    
            world->Update();
            world->Render(framebuffer);
        }
        return 0;
    }

     

  3. The collider is not visible on a pivot.  I use pivots as the hubs for Collison patches on voxel terrain, mainly due to the fact it doesn't need a visible model.  The code below shows the problem but I have just found out it will work on a model even if it doesn't have a mesh.

    Should a pivot be used like this?  Or is is there any harm in using a model without a mesh assigned to it this way?

    #include "UltraEngine.h"
    #include "Components/Mover.hpp"
    
    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 world
        auto world = CreateWorld();
    
        //Create a framebuffer
        auto framebuffer = CreateFramebuffer(window);
    
        //Create a camera
        auto camera = CreateCamera(world);
        camera->SetClearColor(0.125);
        camera->SetFov(70);
        camera->SetPosition(0, 1, -5);
    
        camera->SetDebugPhysicsMode(true);
    
        //Create a light
        auto light = CreateBoxLight(world);
        light->SetRotation(35, 45, 0);
        light->SetRange(-10, 10);
    
        vector<Vec3> verts;
        verts.push_back(Vec3(-3.0f, 0.0f, -3.0f));
        verts.push_back(Vec3(3.0f, 0.0f, -3.0f));
        verts.push_back(Vec3(3.0f, 0.0f, 3.0f));
    
        auto c = CreateMeshCollider();
        c->AddFace(verts);
        c->Finalize();
    
        auto pivot = CreateModel(world);//Works
       // auto pivot = CreatePivot(world);//Dosn't Work
        pivot->SetCollider(c);
        pivot->SetCollisionType(COLLISION_SCENE);
    
        world->SetCollisionResponse(COLLISION_SCENE, COLLISION_PROP, COLLISION_COLLIDE);
    
        //Main loop
        vector<shared_ptr<Entity>> cubes;
        while (window->Closed() == false and window->KeyDown(KEY_ESCAPE) == false) {
            if (window->KeyHit(KEY_SPACE) == true) {
                auto cube = CreateBox(world);
                cube->SetPosition(0.0f, 10.0f, 0.0f, true);
                cube->SetMass(1.0f);
                cube->SetCollisionType(COLLISION_PROP);
    
                cubes.push_back(cube);
            }
    
            world->Update();
            world->Render(framebuffer);
        }
        return 0;
    }

     

  4. enum UserPath
    {
    	PATH_DESKTOP,
    	PATH_DOCUMENTS,
    	PATH_PROGRAMDATA,
    	PATH_APPDATA = PATH_PROGRAMDATA
    };

    I see PATH_APPDATA is currently defined as program data.  Should it be?  If yes... can we get a path to the Local or Roaming Appdata path for game saves?

×
×
  • Create New...