Jump to content

klepto2

Developers
  • Posts

    857
  • Joined

  • Last visited

Everything posted by klepto2

  1. You need to copy the material, shader and maybe the plugin folder from an existing project. The sample is based on a very old beta. Also you need to remove the LoadShaderFamily part in the section where the materials are loaded. (or rename pbr.json to pbr.fam) I have debugged the app with nvidia nsight and the textures are generated correctly.
  2. The swept culling works nicely, but i noticed that it is not working with terrains. As soon as a terrain is visible i get a "vector subscript out of range" exception: > $PROJECTNAME_d.exe!std::vector<class UltraEngine::Vec3,class std::allocator<class UltraEngine::Vec3> >::operator[](unsigned __int64) Unbekannt $PROJECTNAME_d.exe!UltraEngine::Culling::CullingTerrain::Draw(class std::shared_ptr<class UltraEngine::Culling::CameraVisibilityList> &,class std::map<class std::shared_ptr<class UltraEngine::Render::RenderMesh>,class std::shared_ptr<class UltraEngine::Culling::SurfaceBatch>,struct std::less<class std::shared_ptr<class UltraEngine::Render::RenderMesh> >,class std::allocator<struct std::pair<class std::shared_ptr<class UltraEngine::Render::RenderMesh> const ,class std::shared_ptr<class UltraEngine::Culling::SurfaceBatch> > > > &,class std::shared_ptr<class UltraEngine::Culling::CullingWorld>,class std::shared_ptr<class UltraEngine::Culling::CullingBuffer>,class std::shared_ptr<class UltraEngine::Culling::CullingCamera>,class std::shared_ptr<class UltraEngine::Render::RenderCamera>,bool,int) Unbekannt $PROJECTNAME_d.exe!UltraEngine::Culling::CullingOctreeNode::DrawEntities(class std::shared_ptr<class UltraEngine::Culling::CameraVisibilityList> &,class std::map<class std::shared_ptr<class UltraEngine::Render::RenderMesh>,class std::shared_ptr<class UltraEngine::Culling::SurfaceBatch>,struct std::less<class std::shared_ptr<class UltraEngine::Render::RenderMesh> >,class std::allocator<struct std::pair<class std::shared_ptr<class UltraEngine::Render::RenderMesh> const ,class std::shared_ptr<class UltraEngine::Culling::SurfaceBatch> > > > &,class std::shared_ptr<class UltraEngine::Culling::CullingWorld>,class std::shared_ptr<class UltraEngine::Culling::CullingBuffer>,class std::shared_ptr<class UltraEngine::Culling::CullingCamera>,class std::shared_ptr<class UltraEngine::Render::RenderCamera>,class UltraEngine::Vec3 const &,int,int,bool,int) Unbekannt $PROJECTNAME_d.exe!UltraEngine::Culling::CullingOctreeNode::Draw(class std::shared_ptr<class UltraEngine::Culling::CameraVisibilityList> &,class std::map<class std::shared_ptr<class UltraEngine::Render::RenderMesh>,class std::shared_ptr<class UltraEngine::Culling::SurfaceBatch>,struct std::less<class std::shared_ptr<class UltraEngine::Render::RenderMesh> >,class std::allocator<struct std::pair<class std::shared_ptr<class UltraEngine::Render::RenderMesh> const ,class std::shared_ptr<class UltraEngine::Culling::SurfaceBatch> > > > &,class std::shared_ptr<class UltraEngine::Culling::CullingWorld>,class std::shared_ptr<class UltraEngine::Culling::CullingBuffer>,class std::shared_ptr<class UltraEngine::Culling::CullingCamera>,class std::shared_ptr<class UltraEngine::Render::RenderCamera>,class UltraEngine::Vec3 const &,int,bool,bool,int) Unbekannt $PROJECTNAME_d.exe!UltraEngine::Culling::CullingCamera::BuildVisibilityLists(class std::shared_ptr<class UltraEngine::Culling::CullingWorld>,class std::shared_ptr<class UltraEngine::Culling::CullingBuffer>,class std::shared_ptr<class UltraEngine::Culling::VisibilityList>) Unbekannt $PROJECTNAME_d.exe!UltraEngine::Culling::CullingWorld::BuildVisibilityLists(class std::shared_ptr<class UltraEngine::Culling::CullingBuffer>,class std::shared_ptr<class UltraEngine::Culling::CullingWorld>) Unbekannt $PROJECTNAME_d.exe!UltraEngine::Culling::CullingThreadManager::Update(bool) Unbekannt $PROJECTNAME_d.exe!UltraEngine::Core::ThreadManager::EntryPoint(class std::shared_ptr<class UltraEngine::Object>) Unbekannt $PROJECTNAME_d.exe!UltraEngine::Thread::thread_function(void *) Unbekannt ucrtbased.dll!00007ff985793010() Unbekannt kernel32.dll!00007ffa6a8e7344() Unbekannt ntdll.dll!00007ffa6c1026b1() Unbekannt
  3. you might need to change the ComputeHook::TRANSFER to ComputeHook::RENDER Since a few updated the behaviour of the Hooks have changed internally.
  4. if you set the near range of a camera > 0.3 the skybox get clipped by the frustum and if > 0.5 it is not visible at all.
  5. A first sneak peek for an realtime ocean renderer in UltraEngine.  Features: FFT-Waves WhiteCaps Refraction / Transparency PBR Lighting model Quadtree based Frustumn subdivision for endless ocean rendering Todos: Shore and object based waves and foam buoyancy and height readback flow maps
  6. Just some additional ideas: Logic Easing https://easings.net/ Enemy / Player / Motion Flocking / Steering behaviour https://www.red3d.com/cwr/steer/gdc99/
  7. Dragging files into the editors AssetBrowser from the explorer always uses the root folder instead of the current selected one. It doesn't matter if you drop it above the folder directly or in the content section.
  8. If you have many projects it is hard to see which project is currently open in the editor. I would suggest to add the current Project name to the Titlebar like VisualStudio, or in the statusbar.
  9. Just to post a small sample to show you what i mean: brick_wall.zip the left and right wall are both painted with the brick_wall material. The texture data contains the info, that the texture is 4000 millimeters (4m) wide. the left is with scaling of 1.0 and the left is scaled to 0.25 ( 1.0m / 4.0m) to maintain the desired mapping ratio. It would be nice to have something to store this factor in one way or the other. the easiest would be to store it directly in the material, then the normal workflow is not disturbed as the scale is already applied in the shader and the user just need to modify the face if it is really needed. (from the shader sources i can see, that uv scale is already reserved in the material struct, but not used and there is no way to set or get it.
  10. yes, thats what I meant. while the face tool is great to adjust this later. I think, that some properties should be exposed to the initial object creation. Lets assume i want to outline walls and i know that the material needs a scale of 3.0, then i don't want to switch between the tools, but want to create the walls with the correct uv scales immediatly. Regarding my other request with the uv scale stored in the material. Maybe this can be used to do something like here: https://docs.polyhaven.com/en/guides/blender-addon see the section about texture controls. Maybe a default scale of 1.0,1.0 should be stored with each material, but it can be overridden. Now, if it is overridden and a face has a material assigned, you could add something like fix material scale and the uvscale is updated to the one stored in the material.
  11. I already made a request regarding an option to add Material uv-scales. But this time i would like to ask for an option to alter the default texel per meter settings on object creation. It could be an absolute value (but this might be a bit confusing for some people) or a multiplier value. Currently if i need different scales i first need to modify the texel value in the option, add the object and reset the value in the options. Another Request is to edit this on the brush (Object) on the fly. After editing it, the uv coords could be recalculated and stored.
  12. with the info provided by josh you can try the apporach here: https://github.com/nvpro-samples/gl_vk_simple_interop/blob/master/gl_vkpp.hpp
  13. According to https://www.ultraengine.com/learn/World_Update?lang=cpp this should do the trick: world->Update(60.0,1);
  14. if you want something like that, it might be worth looking into: https://www.khronos.org/blog/an-introduction-to-vulkan-video why do you want to use CUDA for this? do you need something special, or just the updated image from a video?
  15. while in theory it is possible to share resources between OpenGL and Vulkan i would not recommend that. You can use this: https://github.com/klepto2/UltraComputeShaderSample it contains a lib which adds ComputeShaders to UltraEngine and a very basic sample. Note: as UltraEngine (as most Vulkan libs) is multithreaded the result of a compute shader is not available immediately but mostly in sync with the render pipeline.
  16. That is exactly what i want to do. But currently there is no way to do it. (no access to most functions or to retreive the actual node which was selected)
  17. No, I want to open a certain window if the file type is of a certain type. (lets just assume its a shader file ) like you do by opening the modelviewer when you double click on a model.
  18. I want to hook directly into the open file action or double-check event and retrieve the path from the object which has triggered the action. ( in the map tab) .
  19. Yeah, I just thought with a single forum it will get be floated soon and I think it would be good to separate actual plugins from the development side. It’s just a cleaner way.
  20. In the editor: Create the Terrain with the specifc size eg: 512 * 512 Select the Terrain and choose the Terrain edit mode (the most left icon, where are also rotate and move controls) In the right view you now have an open Terrain-Tab where you can load or save a heightmap. If the heightmap is not visible there are some things to do. The heightmap imported might not match the dimonsions you have created the terrain with. If the scale is not high enough: Got to the Map-Tab Select the created Terrain Change the y-scale to something like 100.0 or 300.0 depending on your imported heightmap.
  21. I want to add some additional handling to some files. (lets say i want to add support for a certain kind of filetype) I can succesfully hook into the EVENT_WIDGETACTION when the "Open File" menu is clicked, but how do i get the item and the needed info for what this is "Open File"-action is triggered? this is the simple hook i use: function extension.hook(event, extension) if event.id == EVENT_WIDGETACTION then local widget = Widget(event.source) if widget ~= nil and event.text == "Open File" and event.extra ~= nil then local obj = Widget(event.extra) Print(event.text) return true end end end
  22. Integrated gfx cards like the Intel UHD are not supported. Those gfx cards have very limited vulkan support.
×
×
  • Create New...