Jump to content

klepto2

Developers
  • Posts

    854
  • Joined

  • Last visited

Posts posted by klepto2

  1. Another option (which would be IMHO more convenient) would be to add Import and Eport menues. This way you can later support multiple map formats without breaking the original save and save as workflow. 

    Load/Save/Save as -> only for UltraEngine files

    Import/Export -> reserved for plugins or fixed imports/exports in the engine.

  2. If you load a leadwerks map with a terrain (lets say the-zone.map) , resave it as a .ultra map and reload the saved ultra scene, then the terrain layers are there, but all shown as empty. I assume that might be as the materials for these layers are generated on the fly by the leadwerks map loader (you can see that, if you try to edit a layer material in the imported leadwerks map) and the new scene can't find the materials. 

  3. A small addition to the idea: 

    the new Environment-Object should have an option to mark it as the default for the editor. So you can see the settings in the editor

    viewrange in the Perspective viewport should be dependent on the camera settings (maybe add an option to specify a camera to the rendering viewport)

  4. Just an idea: 

    • rename the Environment group in the root node to World-Settings and remove all settings which are actually belonging to the camera
    • add a new Environment Object (which may be added initially by default, but where you can have multiple Environments in one scene)
    • then there might be 2 options
      1.  add the possibility to link one scene object to a previous defined object (like the add link to file in Visual studio
      2. or add the possibility to specify an existing Environment for each camera. 

     

  5. Hi,

    i get this with the latest update as soon as i add any PostEffect or activate SSR on a camera:

    >	ucrtbased.dll!00007ffece0e2fb5()	Unbekannt
     	ucrtbased.dll!00007ffece0e3153()	Unbekannt
     	ucrtbased.dll!00007ffece0fae2d()	Unbekannt
     	ucrtbased.dll!00007ffece0f9db0()	Unbekannt
     	ucrtbased.dll!00007ffece1deee9()	Unbekannt
     	ntdll.dll!00007fff9df1221f()	Unbekannt
     	ntdll.dll!00007fff9dec14b4()	Unbekannt
     	ntdll.dll!00007fff9df10d2e()	Unbekannt
     	KernelBase.dll!00007fff9bb6cf19()	Unbekannt
     	vcruntime140d.dll!00007fff4aa8b760()	Unbekannt
     	PfxTest_d.exe!UltraEngine::RuntimeError(class UltraEngine::WString const &)	Unbekannt
     	PfxTest_d.exe!UltraEngine::Assert(bool)	Unbekannt
     	PfxTest_d.exe!UltraEngine::Render::RenderTexture::Initialize(enum UltraEngine::TextureType,int,int,int,int,int,bool,int,enum UltraEngine::TextureFlags,int,int)	Unbekannt
     	PfxTest_d.exe!UltraEngine::Render::RenderBuffer::Initialize(int,int,int,int,int,bool,int,bool,int,int,bool)	Unbekannt
     	PfxTest_d.exe!UltraEngine::Render::RenderCamera::PrepareBuffers(class std::shared_ptr<class UltraEngine::Render::RenderContext>,class std::shared_ptr<class UltraEngine::Culling::CameraVisibilityList>)	Unbekannt
     	PfxTest_d.exe!UltraEngine::Render::RenderingThreadManager::Update(bool)	Unbekannt
     	PfxTest_d.exe!UltraEngine::Core::ThreadManager::EntryPoint(class std::shared_ptr<class UltraEngine::Object>)	Unbekannt
     	PfxTest_d.exe!UltraEngine::Thread::thread_function(void *)	Unbekannt
     	ucrtbased.dll!00007ffece103010()	Unbekannt
     	kernel32.dll!00007fff9dd87344()	Unbekannt
     	ntdll.dll!00007fff9dec26b1()	Unbekannt
    

    Code:

    #include "UltraEngine.h"
    #include "Components/Motion/Mover.hpp"
    #include "Components/Player/CameraControls.hpp"
    
    using namespace UltraEngine;
    
    int main(int argc, const char* argv[])
    {
        RegisterComponent<Mover>();
        RegisterComponent<CameraControls>();
    
        //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, 0, -3);
        camera->SetSSR(true);
    
        //Create a light
        auto light = CreateBoxLight(world);
        light->SetRotation(35, 45, 0);
        light->SetRange(-10, 10);
    
        //Create a box
        auto box = CreateBox(world);
        box->SetColor(0,0,1);
    
        //Entity component system
        auto component = box->AddComponent<Mover>();
        component->rotationspeed.y = 45;
    
        //Main loop
        while (window->Closed() == false and window->KeyDown(KEY_ESCAPE) == false)
        {
            world->Update();
            world->Render(framebuffer);
        }
        return 0;
    }

     

  6. I hope you don't mind for hijacking this thread, but i would like to add some things (Having this all-in-one thread, might be easier for Josh to keep track of it):

    • More viewport Configuration options (e.g.: view range for large terrain editing)
    • Missing Primitives (Sphere, etc.)
    • Global posteffect system (I know it's on the to-do list)
    • Filter in the Project tab (filtering for scripts/textures/materials etc.) (optionally a filter system like in Visual Studio for CPP projects)
    • Batch functions for folders (convert all textures, or create all materials in a folder)
    • A folder like node in the Map Browser
    • A way to extract meshes from bigger meshes
      • A lot of 3rd party meshes come as one big mesh, and it would be nice to extract the individual meshes into new ones
    • Advanced Terrain editing options
      • Masked brushes
      • Visibility brush
      • Predefined layers (import and export multiple layers)
      • Fill all in the added order (currently you can only fill one layer at a time)
    • Advanced documentation for editor scripting (it is currently hard to guess)

     

    • Upvote 4
  7. @Josh: My issue was caused by a windows update which corrupted the nvidia driver. A reinstall of the nvidia drivers fixed it. 

    The rendering looks much smoother now and nearly no artifacts are there. Only when resizing the viewport, then the viewports are not updated, otherwise a great enhancement.

  8. Ok, here is a first list of spinners: 

    • Map/Environment
      • Gravity (should be in 0.01 steps at least) 
      • FogRanges and Angles (maybe both to 0.1 ranges)
    • Transform
      • All properties for position, scale and rotation should be with a lower increment. (position could maybe adjusted to the grid snap)
    • Physics
      • Mass should be float instead of int
      • Friction/Damping and Elastacity should have at least 0.1 steps
    • Light
      • Range (at least 0.1)
    • Probe
      • Fades should be 0.01 or 0.1
    • Camera
      • Ranges ( should be 0.1 steps)
    • Navigation
      • All float values should be at least 0.1 (some maybe better 0.01)
    • Options:
      • General
        • Texel size should be 0.1
      • Viewport
        • Gridsize should be 0.01

    Additionally i would suggest to add some functionality to the spinners eg:

    • holding ctrl while clicking increases the increment
    • holding shift decreases the increment
    • some editors add some timing to the spinners:
      •  if you do a single click it uses the lowest increment possible
      • if you hold down the button it starts with the lowest increment, but raises the increment in time steps eg, after every second the increment goes up by one digit.
    • also some editors support some dragging features to alter the value in the textboxes
  9. @Josh, as UltraEngine uses Vulkan you might consider using the Vulkan Video extensions ( researched since 2018 and integrated since 2021 )

    https://www.khronos.org/blog/an-introduction-to-vulkan-video

    It enables you to decode and encode H264 (mp4) and maybe other formats (don't know exactly) directly on the gpu and use the frames as normal VKImageViews / VKImages and VkBuffers. 

    A good sample of the integration is located here: 

    https://wickedengine.net/2023/05/07/vulkan-video-decoding/

    • Like 1
    • Upvote 2
  10. I know you @Josh are still working in these things, but i think to document them here is practical as well:

    These are some minor bugs i encountered while using the Editor:

    • The Spinner needs some adjustments, currently the up/down buttons in-/decrement in 1.0 steps, which is annoying on some properties like material displacement or near ranges
    • The Generate-Material Option stores the textures relative to the material, not relative to the base path
      • leads to empty materials when opened in editor
    • some elements using a Scrollable area are initially not drawn correctly. (options-> Viewports(tab)) After first resize of the parent the items are displayed correctly
    • Tab cycling through controls doesn't work
    • Delete key is not supported in input controls
    • Input-Boxes with spinning loose value if you first enter the a value in the textbox and directly use the array buttons without leaving the control prior to the button press.
    • ColorControl:
      • Using the spinner doesn't update the "color icon" (first click updates the button)
      • Selecting a color via the dropdown and using the spinners afterwards resets the value to the previous one

    Thais it for know ;) more to come.

    • Like 1
    • Thanks 1
  11. A good starting point might be this topic: 

     

    I haven't worked with LE since the UltraEngine Early Access, but the essential methods should all be located in Terrain.h and Vegetation.h .

    If i remember correctly it is also possible to use camera picking to get the actual instance, but that is not for sure.

×
×
  • Create New...