Jump to content

SpiderPig

Members
  • Posts

    2,285
  • Joined

  • Last visited

Everything posted by SpiderPig

  1. Yeah that's a good approach. Personally I like the idea of selecting which entities should have fixed visibily, especially for UI. But enlarging the frustrum may have uses too.
  2. Soooo back to my original question. Is possible to turn off frustum culling?
  3. I just figured that if the UI follows the camera then turning culling off would nip the issue it in the bud.
  4. Haven't tested that in a while due to the version mismatch thing but I remember it being a lot better in Release, but still noticeable.
  5. Oh I just have some simple meshes rendering to the UI camera, and I move them about, in and out of view for reasons too complex to explain. I've mentioned before that especially in debug mode the culling is quite slow at the moment. I thought If I could turn off culling for the UI camera it would probably solve the small issue, that's all.
  6. It's for Ultra. Not sure if I'll make it work for Leadwerks yet.
  7. Still churning away at this. Working on the geometry shader at the moment and custom outputs.
  8. Can I turn off culling for a particular camera?
  9. 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.
  10. A bloom post effect maybe? Or if your talking about the lens of the light you'll need an emission material.
  11. 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; }
  12. Can a texture be saved to a stream and then loaded back again with LoadTexture(stream)? auto stream = WriteFile(filename); //Write some stuff texture->Save(stream); stream.Close();
  13. I made a bug report for the Collison thing.
  14. It needs refining, but currently I create a collider per voxel. This can be up to 5 or so triangles in total per collider. It worked the old way because I was able to set the indices as well.
  15. I think the answer is yes... would it be practical to add the ability to set the indices? Just that going through this and adding vertices in order is going to be a headache to figure out.
  16. 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; }
  17. So I should take care to add them in a certain order? Like a triangle_strip in GLSL, otherwise I might get overlapping faces...?
  18. Can AddFace() only take 3 vertices in the array?
  19. Can we enable physics shape visualization from within code yet?
  20. Ah awesome! I had a little freak-out when it didn't compile, but that way sounds much better, thanks.
  21. Hmm, that doesn't seem to have worked for me. @reepblue Did it work for you?
×
×
  • Create New...