Code Monkey home page Code Monkey logo

renderstream-unity's People

Contributors

antiero avatar bbuckley94 avatar chrisnashdisguise avatar eclazi avatar highlyinteractive avatar husberg-disguise avatar jehtblack avatar juliangoldie-disguise avatar philipsodisguise avatar sorob avatar twhittock-disguise avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

renderstream-unity's Issues

Add de/select all to exposed fields UI

It would be nice if there was a de/select all button at the top of the Fields table within the Remote Parameters component. If you add a component that has many parameters as an Exposed Object and you only wish to expose one or a small subset, it can be annoying having to deselect all the fields you do not want.

Post-Processing Layer on Main Camera of '3D (with extras)' scene renders black in RenderStream layer

Tested in Unity 2019.4.24f1, RenderStream 1.23, Designer 18.0.3.

To repro:

-Start a new Unity Project with the '3D (With Extras)' template. (this places Unity Post-process layer on the main camera.
-Build the Unity Project. Move the built project to d3's RenderStream Projects folder.
-Setup d3 with a RenderStream Layer, MR set mapped to main camera as per the README.
-Select your Unity RenderStream Asset and start the workload.

Result: Unity exe launches but the RenderStream content is fully black.
Expected: You should see the Unity 3D Scene with Extras scene content on your projection surface.

Workaround: Disable the Post-process layer component on Main Camera and rebuild, set your new Asset in d3, stop and start the workload. You will now see the scene. This implies that the Post-Process layer on Main Camera is introducing something bad into the RenderStream that d3 doesn't like.

image

Shader error when compiling sample unity template.

Unity Version: 2019.4.32f1
I get this error when compiling the Universal Render Pipeline template from unity. How can I fix this?

Shader error in 'Hidden/Shader/DisguiseColourFramePostProcess': failed to open source file: 'Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderVariables.hlsl' at line 11 (on d3d11)

Compiling Vertex program
Platform defines: UNITY_ENABLE_REFLECTION_BUFFERS UNITY_USE_DITHER_MASK_FOR_ALPHABLENDED_SHADOWS UNITY_PBS_USE_BRDF1 UNITY_SPECCUBE_BOX_PROJECTION UNITY_SPECCUBE_BLENDING UNITY_ENABLE_DETAIL_NORMALMAP SHADER_API_DESKTOP UNITY_LIGHT_PROBE_PROXY_VOLUME UNITY_LIGHTMAP_RGBM_ENC

New streams not detected if starting with 0 streams

If the first call to CreateStreams returns 0 streams, there is nothing running to detect the stream configuration changing (ie. awaitFrameData returning RS_ERROR_STREAMS_CHANGED)

This can happen if the network is slow/jittery on startup and Unity loads before the the stream configuration arrives.

Implement ability to group exposed parameters through the GUI

Summary:
It would be nice if we could implement the ability to assign exposed parameters to groups through the GUI. Currently all exposed parameters are placed under the 'Properties' section along with the Scene selection.
The user is able to modify the RenderStreamRemoteParameters script themselves to add custom groups but it would be nice if they could do this through the UI.

Steps to reproduce:

  1. Create Unity project
  2. Add plugin to Assets folder
  3. Select a light source
  4. Add 'Disguise RenderStream (Remote Parameters)' component
  5. Expand 'Fields' and choose options

Differentiate between exposed objects of the same type

If you expose different objects of the same type, the exposed fields will all have the same name making it difficult to know what you're keyframing. Prefix the field's name or category with the object's name so it's easier to differentiate them.

'Transform' field written to JSON regardless of exposed value

Summary:
6-DOF object parameters were implemented in r1.26. When adding a Transform component as the 'Exposed Object' in a Remote Parameters component: even if the "Transform" field's Exposed value is set to False, the parameter is written to the JSON file and therefore exposed to d3.

Bug reduction:

  • Seen with r1.26_beta1.
  • Seen regardless of the 'Exposed' value.
  • Not seen with any other field. All other fields respect their 'Exposed' value.

Steps to reproduce:

  1. Create a new Unity project
  2. Place plugin the Assets folder
  3. Add a new gameobject
  4. Add the Remote Parameters component to the gameobject
  5. Add the Transform component as the 'Exposed Object' in the Remote Parameters component
  6. Disable the 'Transorm' field
  7. Build executable
  8. Open the JSON file (notice Transform written)

IndexOutOfRangeException when playing in editor

Build callbacks are being called when starting play mode in the editor. Prevent or handle these cases instead of allowing them to throw.

IndexOutOfRangeException: Index was outside the bounds of the array. DisguiseRenderStream.OnPostProcessScene () (at Assets/DisguiseUnityRenderStream/DisguiseCameraCapture.cs:94) System.Reflection.MonoMethod.Invoke (System.Object obj, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) (at <eae584ce26bc40229c1b1aa476bfa589>:0) Rethrow as TargetInvocationException: Exception has been thrown by the target of an invocation. System.Reflection.MonoMethod.Invoke (System.Object obj, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) (at <eae584ce26bc40229c1b1aa476bfa589>:0) System.Reflection.MethodBase.Invoke (System.Object obj, System.Object[] parameters) (at <eae584ce26bc40229c1b1aa476bfa589>:0) UnityEditor.Build.BuildPipelineInterfaces+AttributeCallbackWrapper.OnProcessScene (UnityEngine.SceneManagement.Scene scene, UnityEditor.Build.Reporting.BuildReport report) (at <c9b5231e365148a4bc210cc4e439206d>:0) UnityEditor.Build.BuildPipelineInterfaces+<>c__DisplayClass16_0.<OnSceneProcess>b__1 (UnityEditor.Build.IProcessSceneWithReport spp) (at <c9b5231e365148a4bc210cc4e439206d>:0) UnityEditor.Build.BuildPipelineInterfaces.InvokeCallbackInterfacesPair[T1,T2] (System.Collections.Generic.List1[T] oneInterfaces, System.Action1[T] invocationOne, System.Collections.Generic.List1[T] twoInterfaces, System.Action1[T] invocationTwo, System.Boolean exitOnFailure) (at <c9b5231e365148a4bc210cc4e439206d>:0) UnityEditor.Build.BuildPipelineInterfaces:OnSceneProcess(Scene, BuildReport)

Request: Support Vertical Lens Shift

Physical Camera properties are lost when RS duplicates channel cameras. We particularly rely on vertical lens shifting to correct perspective while maintaining alignment at corner seams for large projection mapped space.

Attn: Jos and Peter

Do not show unsupported fields in Exposed Object

Reported internally (DSOF-17009) by @bbuckley94:
Currently, when you add an Exposed Object to a Remote Parameters component, all parameters for the exposed object component are added as fields. There are many types that are unsupported by d3 and RenderStream and therefore are not written to the JSON file even if they are enabled. It would be nice if we could add a whitelist of supported types so that when we add an exposed object component only those that are supported appear within the 'Fields' list.
Having less options always makes things less complicated for the end-user and avoids any potential confusion.

Disable cameras that have been cloned

The Unity application window still renders the view of the (main) camera that has been cloned for streaming. This is a waste of resources, so it should be disabled.

Stretch goal: blit a multi-view of all streams' camera views so the window isn't empty?

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.