Jump to content

All Activity

This stream auto-updates

  1. Today
    Very handy tool to have.
  2. Josh

    Python Code

    I don't know if this is correct Python code, but it is kind of interesting to see: # Get the displays displays = GetDisplays() # Create a window window = CreateWindow("Ultra Engine", 0, 0, 1280, 720, displays[1], WINDOW_CENTER | WINDOW_TITLEBAR) # Create a framebuffer framebuffer = CreateFramebuffer(window) # Create a world world = CreateWorld() # Create a camera camera = CreateCamera(world) camera.SetClearColor(0.125) camera.SetPosition(0, 0, -2) # Create a model box = CreateBox(world) box.SetColor(0, 0, 1) # Create a light light = CreateBoxLight(world) light.SetRotation(45, 35, 0) light.SetColor(2) light.SetRange(-5, 5) # Main loop while window.KeyDown(KEY_ESCAPE) == False and window.Closed() == False: # Rotate the model box.Turn(0, 1, 0) # Update the world world.Update() # Render the world to the framebuffer world.Render(framebuffer)
  3. HDR files are stored in linear color space. They always look dark and high-contrast until the sRGB conversion. Here is an example: https://polyhaven.com/a/rosendal_plains_2
  4. Hdri on Ultra Engine cange gama.
  5. Should be fixed now.
  6. 0.9.6 Project manager sync feature should work better now.
  7. Yesterday
  8. This is in the XFORM project currently. If you use multiple cameras for rendering and load in a map with post effects, this will be the result. This is how I'm creating the camera. void FPSWeapon::AttachToPlayer(std::shared_ptr<Component> playercomponent) { // Set up the camera for the viewmodel. Start(); auto entity = GetEntity(); auto world = entity->GetWorld(); auto player = playercomponent->As<FirstPersonControls>(); if (player) { auto playercam = player->GetCamera(); if (playercam != NULL) { if (drawonlayer) { viewmodelcam = CreateCamera(world); viewmodelcam->SetClearColor(0, 0, 0, 0); viewmodelcam->SetClearMode(CLEAR_DEPTH); viewmodelcam->SetMatrix(playercam->GetMatrix(true), true); viewmodelcam->SetFov(viewmodelfov); viewmodelcam->SetRange(0.001f, playercam->GetRange().y); viewmodelcam->SetOrder(RENDERLAYER_VIEWMODEL); viewmodelcam->SetRenderLayers(RENDERLAYER_VIEWMODEL); viewmodelcam->SetParent(playercam); entity->SetParent(viewmodelcam); entity->SetRenderLayers(RENDERLAYER_VIEWMODEL); viewmodel.lock()->SetRenderLayers(RENDERLAYER_VIEWMODEL); } else { playercam->SetRange(0.001f, playercam->GetRange().y); entity->SetParent(playercam); } } playerentity = player->GetEntity(); } } Full code here: XFORM/Source/Components/Weapons/FPSWeapon.cpp at main · UltraEngine/XFORM (github.com)
  9. Sendet you via PN in discord
  10. 0.9.6 CurveValue and CurveAngle are back. Although these are redundant because the same can be done with Mix() I could not actually remember how, and these functions are very intuitive to me. Refraction option removed from the editor for the release of 0.9.6, will be revisited.
  11. I selected the Tools > HDRI to PBR menu item and selected your .hdr file. The results look as I would expect:
  12. Please upload all the code files in your project, including any Visual Studio files, and I will try it out. It's very strange that anything is named $PROJECTNAME because that is a special string the editor replaces with the name of the project when it is created.
  13. "GRUMPY SLIMEBALL FROM OUTER SPACE" is this week's brand new free-to-use-with-attribution music track. You can download it in Mp3 format from my new Sci-Fi 13 page: https://soundimage.org/sci-fi-13/ As always, it's 100% free to use with attribution, just like my thousands of other tracks. And my Ogg music packs are here: https://soundimage.org/ogg-music-packs-2/ Enjoy! :-)
  14. "GRUMPY SLIMEBALL FROM OUTER SPACE" is this week's brand new free-to-use-with-attribution music track. You can download it in Mp3 format from my new Sci-Fi 13 page: https://soundimage.org/sci-fi-13/ As always, it's 100% free to use with attribution, just like my thousands of other tracks. And my Ogg music packs are here: https://soundimage.org/ogg-music-packs-2/ Enjoy! :-)
  15. After a lot of planning and re-designing the process of inserting flying mounts into the UAGC controller I finally came up with a scheme that will work, and work well, with the current system. Once more adding a flying mount to a map is as simple as dropping a prefab on the map and filling in the information it asks. This is by no means complete yet, but I have the skeleton layout in place and I've been busy populating it with code. I've seperated the flying mount controller from the player controller and constructed an entirely new controller that operates dragon flying mounts only then went back over the code and weaved the two controllers to work together. The final results will be - player enters the map, players mounts a dragon, controller control switches to the mounts controller. Player leaves mount - mount controller picks up on it's own. I've added 17 sensor points on the dragons KEY bone/joint sections. These sensors can report back valuable data such as when a foot hits the ground, a wing flaps or when the tail hits a enemy etc.. Also the front sensor points will help me direct the LARGE dragon from walking into walls since the controller collider is so small. It's going to be really interesting to see it all come together later on down the line. I'd like to give out a special thanks to Josh, whom helped in lining out the editor and importers. The dragon contains 106 bones! More later !
  16. Hello, i am unable to update the project. If i do an update he wont find the vs solution anymore its related to the $PROJECTNAME.vcxproj variable.
  17. 2 downloads

    To Install: Extract the downloaded zip file and move/copy the folder "io_mesh_ultra" to Blender 4.0's addon folder. ("Blender/4.0/scripts/addons") Launch Blender and navigate to "Edit->Preferences" Click the add-ons tab look for Import-Export: Ultra Engine MDL and enable it To discuss bugs and further development please comment on the forum here : These are the current default settings: Export Position False (Default) - will not export the objects position. This will be exported as 0,0,0 True - will export position Use Object Name False (Default) - Uses the file name written in the file save dialog to name the exported MDL file True - Uses the object name in blender as the MDL file name Export LODS True (Default) - will search the scene (selected objects or not) for any LOD objects E.g. If you select a model named "Cube", it will search for and export objects that are named; "Cube_LOD1" "Cube_LOD2" etc... False - Does not export LODS Export Collider True (Default) - Searches the scene for an object with a suffix of _PHY E.g. If you select a model named "Cube", it will search for an object named "Cube_PHY" and export that mesh as a collider file. (Embedded colliders coming soon) False - Does not export Collider Convert Textures This is a WIP. It should work, but it is slow sometimes depending on how many and how large your textures are. So if blender hangs and goes non responsive for a few minutes that could be why. False (Default) - will copy textures that the blender materials use to the target directory where you have specified to save the MDL file too. True - Will first convert any non DDS files to DDS with the correct compression, saving them in the same folder as the source image, before then copying the new DDS file over to the target directory where you have specified to save the MDL file too. All DDS file are renamed to the material name appended with the appropriate slot name E.g. If the material name is "Cube" Diffuse textures will be named "Cube_DIFF.dds" Normal textures will be named "Cube_NORM.dds" Ambient occlusion, roughness and metalness maps will be combined into one DDS file name "Cube_AO_ROUGH_METAL.dds" Ultimate the only object you need to select when exporting is the root object. E.g. the LOD0 object. Doesn't currently work if the root object is named LOD0 though. Has to be "Cube" not "Cube_LOD0". I can add support for this if it's needed. You can also batch export be default. All you need to do is select all the root objects that you want to export and it will export them all to the same folder. Best to set "Use Object Name" to true when batch exporting other wise the file names will conflict and each selected object will just overwrite the previous one. Materials are exported to the same directory as the specified MDL path. Here is the only node setup that will be able to collect and export the textures. Please excuse the low resolution image - not sure how I can get blender to render to an image larger than the screen! I'll add some better images later. You don't need all of these images loaded to export the material correctly. From top to bottom on the left hand side, DIFFUSE, AO, METAL, ROUGH & NORM.
  18. 1 download

    Here's a little addon for Blender 4.0 that will export any selected object as a MESH collider for use in Ultra. It may work with other versions of blender but I've not tested it. There are no options for the export process. By default Z is up in Blender so upon export the vertex y and z positions are swapped so that Y is up in Ultra. I could probably add an option to toggle this if it's needed. Any suggestions for improvements are welcome! To Install: Extract the downloaded zip file and move/copy the folder "io_mesh_collider" to Blender 4.0's addon folder. ("Blender/4.0/scripts/addons") Launch Blender and navigate to "Edit->Preferences" Click the add-ons tab look for Import-Export: Ultra Engine Collider and enable it
  19. 0.9.6 Fixed selection outlines in editor when DPI scaling = 100%
  20. Okay, an update is available now that fixes this. It requires a new post-processing shader as well as the editor build. Thanks for reporting this!
  21. Last week
  22. I also discovered something very interesting. Calling textureSamples() in GLSL reveals that a 1x MSAA texture actually stores two samples. That means the engine is currently doing a lot of extra works because 2x MSAA is always enabled, or at least some aspects of it are, at the very least extra post-processing expense and memory bandwidth. So if I use rectangle textures or something, instead of 1x MSAA, it should be faster when MSAA is disabled.
  1. Load more activity
×
×
  • Create New...