Jump to content

All Activity

This stream auto-updates

  1. Today
  2. If you have posteffects assigned to a camera, the wireframe mode is not rendering correctly. The only thing which is visible when using wireframe seems to be the pfx quad which is rendered. #include "UltraEngine.h" #include "ComponentSystem.h" //#include "Steamworks/Steamworks.h" using namespace UltraEngine; const WString remotepath = "https://raw.githubusercontent.com/UltraEngine/Documentation/master/Assets"; int main(int argc, const char* argv[]) { #ifdef STEAM_API_H if (not Steamworks::Initialize()) { RuntimeError("Steamworks failed to initialize."); return 1; } #endif RegisterComponents(); auto cl = ParseCommandLine(argc, argv); //Load FreeImage plugin (optional) auto fiplugin = LoadPlugin("Plugins/FITextureLoader"); //Get the primary display auto displays = GetDisplays(); //Create a window auto window = CreateWindow("Ultra Engine", 0, 0, 1280, 720, displays[0], WINDOW_CENTER | WINDOW_TITLEBAR); //Create a rendering framebuffer auto framebuffer = CreateFramebuffer(window); //Create a world auto world = CreateWorld(); world->SetAmbientLight(0); //Create a camera auto camera = CreateCamera(world); camera->SetPosition(0, 0, -1); camera->SetFov(70); camera->SetClearColor(0.125); camera->SetTessellation(4); //Create a light auto light = CreateBoxLight(world); light->SetRange(-10, 10); light->SetRotation(35, 35, 0); light->SetColor(4); //Display material auto model = CreateCubeSphere(world, 0.5, 8, MESH_QUADS); auto mtl = LoadMaterial(remotepath + "/Materials/Ground/rocks_ground_02.json"); mtl->SetTessellation(true); mtl->SetDisplacement(0.075f); model->SetMaterial(mtl); bool isWireFrame = false; bool pfxEnabled = false; //Main loop while (window->Closed() == false and window->KeyDown(KEY_ESCAPE) == false) { if (window->KeyDown(KEY_DOWN)) camera->Move(0, 0, -0.01); if (window->KeyDown(KEY_UP)) camera->Move(0, 0, 0.01); if (window->KeyHit(KEY_F1)) { isWireFrame = !isWireFrame; camera->SetWireframe(isWireFrame); } if (window->KeyHit(KEY_F2)) { pfxEnabled = !pfxEnabled; if (pfxEnabled) { camera->AddPostEffect(LoadPostEffect("Shaders/SSAO.fx")); } else { camera->ClearPostEffects(); } } world->Update(); world->Render(framebuffer); #ifdef STEAM_API_H Steamworks::Update(); #endif } #ifdef STEAM_API_H Steamworks::Shutdown(); #endif return 0; }
  3. Made own icon for Quake Tactics.exe: New weapon - Laser rifle. Long range, special piercing shot damage all units in the shot line New enemy - Enforcer. Slow but fully armored and has a laser rifle as a long range weapon. Enforcer can be now blew up by attacking his back (orange bar shows HP for backpack) Changed area weapon trigger zone shape a bit for better detection Bot’s unit can now keep its turn if detect something if bot team turn was not ended yet Grunts will shoot if can’t came close enough for point blank Now weapon distance is also shown with a circle when action dialog is up Arrow under units to show in which way they will be pushed and potential damage in unit bars from bump damage Fixed outlines A lot of fixes for GUI and controls
  4. I would suggest a shortcut (toolbar icon) to the world/scene settings which are currently located under Edit/World Settings like this:
  5. Yeah, but that will require an entirely separate terrain system, and it's not something important to worry about right now.
  6. I recall you rotated six terrains to make a cube, then used a vertex callback to position all the vertices at a constant radius from the centre. Or has this changed?
  7. How do terrains make a sphere anyways?
  8. Wouldn't this break the idea of making sphereical worlds?
  9. I can convert the local matrix to a quaternion. I've been looking over the Leadwerks mdl exporter too, although half the stuff no longer works the same in blender 4.0.
  10. I am considering moving terrain back to work the way it did in Leadwerks, where it was always centered around the origin and did not respond to rotation or positioning. This would simplify vegetation system quite a lot because I can handle all coordinates in world space. Otherwise, you have to do a lot of transformations and it is hard to get things to line up correctly. I think it also makes a better experience in the editor. Movable terrains can be prone to accidental movements, and having them selectable degrades the performance because the outline effect is quite expensive since it requires rendering the object twice.
  11. Can you get the local rotation as a quaternion? You might look at the old Leadwerks exporter and see what the author did there.
  12. Temporarily removed drag to select area, since it was interfering with some mouse tools. Added terrain texture size field in creation parameters box
  13. There is a local matrix that has the bones position local to its parent. I've since disabled converting the matrices to Y up so I'm left with raw blender data. I think I understand what's going on now.... we'll see.
  14. There is nothing like bone.local_position or bone.position?
  15. So blender only gives you a bone's orientation in global space? You have to multiply that by the inverse of the parent's 4x4 matrix to get the local orientation.
  16. Josh

    Nice Trees

    These actually look better in Ultra than they do in the modeling program. https://www.cgtrader.com/3d-models/exterior/landscape/broadleaf-pack-1
  17. I don't quite understand the exactly what's needed in the bone data. I think that's the only issue I have left. This is going to be hard to explain, so bare with me. I understand that both bone position and rotation should be local to their parent. What I was doing is getting the local bone position like this. bone_local_pos = bone.global_position - bone.parent.global_postition However that only works if the quaternions are left as this. I knew from the start this probably wasn't correct. quat.x = 0.0 quat.y = 0.0 quat.z = 0.0 quat.w = 1.0 I think what I need to is rather than setting the bone position to the "yellow dot" relative to the "red dot." I need to calculate the "blue dot", and then the "quaternion will be the "orange angle". The "blue dot" will basically be the normal the parent bone is pointing * the length of the child bone. This is the only way I see Ultra being able to give the correct bone position with bone rotation. Am I on the right track or have I utterly confused you?
  18. Yesterday
  19. This extension can help eliminate the planar appearance of a lot of trees and plants. You can adjust the minimum Y normal to get the effect you want. Foliage Normals.lua Tested with this model: https://www.turbosquid.com/3d-models/tree_057-519628 Before: After:
  20. Can you post a screenshot that shows the error you are getting or the problem, please?
  21. Everytime I try to create a new project it fails to find a folder. And a name of my user folder is shown in strange symbols. What should I do?
  22. 0.9.6 Added Delete option when you right-click on a mesh in the asset editor. Probably fixed bindless texture sampler uniforms. Exposed Object:AddHook to Lua (experimental!). Added some string functions for Lua. Component updates now happen after animation is updated.
  23. I wouldn't miss something like this, trust me. I will try again and try to provide you with more detailed information.
  24. Perhaps a dumb question, but have you been here?: https://www.nvidia.com/download/index.aspx?lang=en-us
  25. I had a guy in the Ultra discord server ask me how to do parkour after I showed a video.. While it's really not a technique to explain over discord, I told him I would post a video and a short description on how I went about doing it. I'm certain there are other methods but I really wanted preformat over drop-dead accuracy. In the video, I attached 2 cubes to the parkour solvers as to better show what's happening behind closed doors. The light blue, or cyan cube is the 'collector' and the purple or magenta, cube is the 'feeler'. What happens here is the feeler tests the area around the player at different update frequencies, it then reports back data to the collector. The collector then decides which data is relevant based off the players location and angle. Once the 'useable' data is determined, it is sent to the player controller where, based off user configurable settings, it is interpolated into an action (hurdling over a box for example). You'll have to pay close attention to see the feeler and the collector in action, the cubes hardly show everything they are doing but at least you'll get an idea. Most geometry sensor systems use up to 14 feelers, while that makes for a very realistic simulation I find it not so practical for game use. I originally was going to use just 'a one pass sample' of the geometry around the player for speed purposes but I found I couldn't do everything I wanted to do with that system. So after reading up on the process I went with a 2 sensor system at little to NO cost on performance. Now that the system is in place I can do a lot more with it rather than just simple vaulting ( as this video demonstrates ), so over the next few months you'll probably see a lot more stuff in my videos based off this system and you won't even know it! Wall runs is on the horizon ! One thing to keep in mind, the map is not staged in any way, this is straight csg brushes made with Ultra editor and dropped into the scene. The system is completely dynamic so there's no extra map configuring required (which is a major plus in my book). I cannot wait until I have time to build a real map with texturing and imported mesh, that's when this system will truly shine I believe, and yes. the system will work with imported geometry. Thanks to Ultra Engine for making this possible! ( and Josh with his emergency bug fixes and API additions. ).
  26. By the way, the program does not seem to render the black color. When I run the game, the program stops responding. No matter how long I wait, it stays that way.
  1. Load more activity
×
×
  • Create New...