Git Product home page Git Product logo

snuggle's Introduction

snuggle's People

Contributors

ds5678 avatar mcmrarm avatar yretenai avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

snuggle's Issues

Migrate Snuggle GUI to Veldrid + ImGUI

This will add a lot of "management bagage" to Snuggle but it's the most reliable route forward for supporting multiple platforms while keeping a good flexibility rate.

This will drop the entire XAML codebase in favor for code-first ImGUI logic.

This will open up the possibility of potentially loading shaders directly into the 3D render view, though unlikely due to me not understanding what shader semantics Unity passes into the shaders.

Key points:

  • Measure performance of ImGUI when listing multiple millions of entries.
  • Use ImGuizmo for 3d controls when a 3D object scene is selected.
  • Mesaure performance of ImGUI when listing GameObject Hierarchy.

Possible benefits of the migration:

  • Piping the Unity VBO and IBO directly into the GPU shader program.
  • DDS Block Compression handled by the GPU.
  • OpenGL/Vulkan Graphics API instead of D3D10.

This milestone will follow closely to the footsteps of a (similarly named) sister project: Cuddle which is the Unreal Engine counterpart to Snuggle and much earlier in development (and therefore complexity.)

Tracking branch: https://github.com/yretenai/Snuggle/tree/veldrid

Investigate migrating Snuggle to MAUI

This will replace the WPF stack for Snuggle and use MAUI.

  • MAUI on Windows uses WinUI3 which is based on XAML but does not have the entire feature spec of the Windows Presentation Foundation.
  • On macOS it uses MacCatalyst to migrate Xamarin.iOS to the platform.
  • Linux is unsupported officially due to the low volume of GUI use cases on Linux and needs to be reviewed what to do here.

Additionally some components in Snuggle are right now exclusively windows:

  • One of the texture converters is AssetStudio's Texture2DConverter which is a native vc++2019 dll. While the library theoretically could be compiled on macOS and Linux, doing so is less than trivial due to the need to convert the vcxproj to a cross platform project system (likely CMake, SCons, or ninja.) Right now this converter is just disabled on non-windows hosts.
  • Snuggle makes use of HelixToolkit, which is built upon SharpDX/DirectX11. This would be impossible to use in the MAUI stack and would need to be migrated to MonoGame.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.