GithubHelp home page GithubHelp logo

pramberg / devicergb Goto Github PK

View Code? Open in Web Editor NEW
8.0 1.0 0.0 476 KB

๐ŸŒˆ Plugin for UE4 that lets you control RGB devices using materials and textures

License: MIT License

C# 4.71% C++ 93.47% Batchfile 0.02% Python 1.74% C 0.06%
plugin ue4 ue4-plugin rgb rgb-led corsair icue razer razer-chroma logitech

devicergb's People

Contributors

pramberg avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

devicergb's Issues

Set transform of devices

Description

Currently all UVs go between 0-1 regardless of their physical size. This doesn't necessarily make sense, and it would be nice to be able to change the transform on a per device basis. Due to how Razer's SDK works, it may have to be on a per device type basis, instead of all/any connected devices unfortunately.

Requirements

  • Some way of editing the UVs on a per device basis (probably a project setting)
    • Support for changing location, rotation and scale
  • Reasonable default values for all devices

Implement multisampling

Description

The final color should be the average of multiple pixels, in order to more accurately represent the source material. Since the device is usually very low resolution, only sampling once often leads to an inaccurate sample, and/or sporadic colors, depending on the source. To alleviate this, add support for multisampling in some way. How this should be implemented is not entirely straight forward, since sampling every pixel in the "area" of a LED is probably not the way to go...

Requirements

  • Ability to take multiple samples for each LED
  • (Project?) setting for changing the number of samples

Investigate readback performance

Description

Measure the current cost of reading the colors back from the GPU, and check if it needs to be optimized.

Requirements

  • Measure
  • Update this issue with more info

Move rendering until after tonemapping

Description

This should lead to more accurate colors and more temporally stable colors. Currently, the colors from SceneTextures seem off, and I hope this will fix it. It should be an easy fix, so it's bang for the buck. It just needs to be tested, so it doesn't cause any other issues. An alternative is that the Post Process Material setting that determines blend location also does this? Might be feasible, but probably overkill.

Requirements

  • Move all rendering code to happen after tonemapping
  • Verify that everything still works as expected

Layer system

Description

A basic layer system would be a nice feature in this plugin. The layer system should be able to only be applied to select keys (WASD for example).

Requirements

  • Basic layer support
  • Isolating a layer to certain keys
    • So you can choose WASD and have an effect only on those four keys
  • Blend modes
    • Alpha Blend
    • Additive
    • Multiply

Improve SDK loading

Description

SDKs just works in the editor at the moment. The are also assumed to exist, even though the Corsair SDK isn't in the repo. I'm not sure we can distribute some SDKs, so a user would have to download it themselves, and place it in the ThirdParty directory. This in turn requires that the build system detects available SDKs.

Requirements

  • Detect supported SDKs with the build system
  • Ensure required files (DLLs) get copied to a location that works for both editor and package builds
  • Ensure the plugin works correctly in package builds
  • Investigate best way to disable plugin for unsupported platforms
  • Write documentation for how to "install" supported SDKs

Add a DeviceRGB create menu that creates a new material with correct settings

Description

I realized that it is error prone to make the user deal with all the material settings when creating a new material. It would be easier if that is done automatically. I don't think it should be too difficult to add, IIRC

Requirements

  • New item in the Add new asset menu called "DeviceRGB Material" or something like that
  • The created material should have the Material Domain set to Post Process
  • The created material should have Output Alpha set to True
  • Update the Getting Started guide with the simplified steps

Ensure the view extension only runs one time every frame in the editor

Description

When using the material editor in a separate window, so both the level editor and the material editor viewports are visible, the view extension is run twice. This causes the colors to behave sporadically. The optimal solution would probably be to use the viewport/window the use last interacted with, but I'm unsure if that's possible. Regardless, this needs to be fixed in some way, because it makes testing more difficult than it has to be.

Requirements

  • The view extension is only run for one view each frame

Plugin crashes on startup when run with Razer Synapse 2

Callstack

LogOutputDevice: Error: === Handled ensure: ===
LogOutputDevice: Error: 
LogOutputDevice: Error: Ensure condition failed: Init && InitSDK && UnInit && CreateEffect && CreateKeypadEffect && CreateMouseEffect && CreateHeadsetEffect && CreateMousepadEffect && CreateKeypadEffect && SetEffect && DeleteEffect && QueryDevice [DeviceRGB\Source\Controllers\Razer\RazerController.h] [Line: 93]
LogOutputDevice: Error: 
LogOutputDevice: Error: Stack: 
LogOutputDevice: Error: [Callstack] 0x00007ffd484873a8 UE4Editor-RazerController.dll!UnknownFunction []
LogOutputDevice: Error: [Callstack] 0x00007ffd484825fc UE4Editor-RazerController.dll!UnknownFunction []
LogOutputDevice: Error: [Callstack] 0x00007ffd48483ff1 UE4Editor-RazerController.dll!UnknownFunction []
LogOutputDevice: Error: [Callstack] 0x00007ffd86731322 UE4Editor-Core.dll!UnknownFunction []
LogOutputDevice: Error: [Callstack] 0x00007ffd867303b9 UE4Editor-Core.dll!UnknownFunction []
LogOutputDevice: Error: [Callstack] 0x00007ffd5d338bf2 UE4Editor-DeviceRGB.dll!UnknownFunction []
LogOutputDevice: Error: [Callstack] 0x00007ffd6dff86d0 UE4Editor-Engine.dll!UnknownFunction []
LogOutputDevice: Error: [Callstack] 0x00007ffd6e02034a UE4Editor-Engine.dll!UnknownFunction []
LogOutputDevice: Error: [Callstack] 0x00007ffd6e0ff237 UE4Editor-Engine.dll!UnknownFunction []
LogOutputDevice: Error: [Callstack] 0x00007ffd6aca5f02 UE4Editor-UnrealEd.dll!UnknownFunction []
LogOutputDevice: Error: [Callstack] 0x00007ffd6aca549b UE4Editor-UnrealEd.dll!UnknownFunction []
LogOutputDevice: Error: [Callstack] 0x00007ffd6b5a90c1 UE4Editor-UnrealEd.dll!UnknownFunction []
LogOutputDevice: Error: [Callstack] 0x00007ff740b12f54 UE4Editor.exe!UnknownFunction []
LogOutputDevice: Error: [Callstack] 0x00007ffd6b5792d1 UE4Editor-UnrealEd.dll!UnknownFunction []
LogOutputDevice: Error: [Callstack] 0x00007ff740b30ffb UE4Editor.exe!UnknownFunction []
LogOutputDevice: Error: [Callstack] 0x00007ff740b3125a UE4Editor.exe!UnknownFunction []
LogOutputDevice: Error: [Callstack] 0x00007ff740b452bd UE4Editor.exe!UnknownFunction []
LogOutputDevice: Error: [Callstack] 0x00007ff740b47fea UE4Editor.exe!UnknownFunction []
LogOutputDevice: Error: [Callstack] 0x00007ffde7807034 KERNEL32.DLL!UnknownFunction []
LogOutputDevice: Error: [Callstack] 0x00007ffde97e2651 ntdll.dll!UnknownFunction []

Description

I think this might be because InitSDK wasn't available in Synapse 2.

Write a getting started guide

Description

This project needs a getting started guide, since it's not entirely straight forward what is required from the material.

Requirements

  • Describe how to create a new material
    • Domain - Post Process
    • Opacity - Enable Alpha
    • Are there more oddities?..
  • Blueprint interface
    • Likely to change
    • DeviceRGB Subsystem - The hub for all things related to this plugin

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.