Page 4 of 7

Re: [BETA] NoesisGUI v2.2.0b6

Posted: 23 Feb 2019, 05:22
by nokola
Patch does not crash - thanks!
However, my images don't load anymore - used to work in the old noesis:

[Error] [None] [noesis] Assets/XAMLs/FantasiaPhone/UnityShared/Resources/TipCopyClone.xaml(57): Image not found 'Assets/icons/open.96.png'

Assets\XAMLs\FantasiaPhone\UnityShared\Resources\TipCopyClone.xaml:
                        
<Image Source="/FantasiaPhone;component/Assets/icons/open.96.png" Stretch="Uniform" Width="40" Height="40" Margin="10"/>
The open.96.png is in this folder: Assets\icons\open.96.png

I also get this, assuming since the root xaml didn't load:
[Exception] NullReferenceException: Object reference not set to an instance of an object
(wrapper dynamic-method) System.Object:lambda_method(System.Runtime.CompilerServices.Closure)
Complete stack trace in new bug: https://www.noesisengine.com/bugs/view.php?id=1408

Re: [BETA] NoesisGUI v2.2.0b6

Posted: 23 Feb 2019, 05:29
by nokola
Thanks! What about this one:
3. NoesisView.TessellationQuality missing
Is there an equivalent setting?
Yes, the equivalent property is NoesisView.TessellationMaxPixelError. It is being exposed as a float, but that's not correct it should be exposed as Noesis.TessellationMaxPixelError that is internally a float but provide constants for low, medium and high values compatible with 2.1. We need to fix it, as a workaround you can assign it this way:
NoesisView.TessellationMaxPixelError = Noesis.TessellationMaxPixelError.MediumQuality.Error;
Thanks! I like the current implementation - would like to try and manually tweak the float Error to see what happens :) Having the float is better than 2.1 imo. Just for reference, I changed to this:
_guiView.TessellationMaxPixelError = TessellationMaxPixelError.HighQuality.Error;

Re: [BETA] NoesisGUI v2.2.0b6

Posted: 24 Feb 2019, 01:05
by nokola
Another issue - fonts with combining characters don't render correctly.
I opened this issue now (instead of 2.1 last week) because I wanted to check if it reproduces with 2.2beta6. It does.
We've got two user reports about it last week for Bengali and Sinhala languages. I'm not sure if Arabic is affected as well (we have less Arabic users.)

Hopefully it's some simple fix in the underlying font library (fingers crossed :)), it seems like something that might be an option if you use standard library for fonts like Freetype.org or Skia (not sure what Noesis uses?)

https://www.noesisengine.com/bugs/view.php?id=1412

Re: [BETA] NoesisGUI v2.2.0b6

Posted: 25 Feb 2019, 15:57
by jsantos
Ligatures are not implemented yet. Sorry about it. There is no easy workaround because we have our own font rendering architecture. It will be implemented after 2.2 is released.

Re: [BETA] NoesisGUI v2.2.0b6

Posted: 25 Feb 2019, 17:56
by alfiare
Looks like a lot of great stuff in this beta, excited to be trying it out in the next couple days! Any word on Unity Scriptable Render Pipeline support? (Especially Lightweight Render Pipeline)
Yes, Scriptable Render Pipeline works without changes in Noesis but we didn't have time to write documentation about it. The trick is manually invoking the OnPreRender and OnPostRender functions in the NoesisView component at the right point. Another unsolved problem we need to figure out is that those Pipelines are not extensible so users need to manually touch the code to inject noesis calls. Any ideas about this?
Interesting, I'll look into making that work locally anyway, any guidance on where the right place to make these calls would be? I'm looking to take the existing lightweight render pipeline and modify it as needed to make NoesisGUI work with it.

Re: [BETA] NoesisGUI v2.2.0b6

Posted: 25 Feb 2019, 22:44
by alfiare
Looks like a lot of great stuff in this beta, excited to be trying it out in the next couple days! Any word on Unity Scriptable Render Pipeline support? (Especially Lightweight Render Pipeline)
Yes, Scriptable Render Pipeline works without changes in Noesis but we didn't have time to write documentation about it. The trick is manually invoking the OnPreRender and OnPostRender functions in the NoesisView component at the right point. Another unsolved problem we need to figure out is that those Pipelines are not extensible so users need to manually touch the code to inject noesis calls. Any ideas about this?
Interesting, I'll look into making that work locally anyway, any guidance on where the right place to make these calls would be? I'm looking to take the existing lightweight render pipeline and modify it as needed to make NoesisGUI work with it.

For anyone that's interested in doing this, I was able to make it work with the Lightweight Render Pipeline by doing the following
- Follow Unity instructions for cloning the SRP repo and customizing render pipelines
- Once you have things in place and working off your own LWRP make the following code changes...

In NoesisView.cs at the start of the OnEnable method put the following:
RenderPipelineManager.beginCameraRendering += RenderPipelineManager_beginCameraRendering;
RenderPipelineManager.endCameraRendering += RenderPipelineManager_endCameraRendering;

Similarly in NoesisView.cs in the OnDisable method put the following (- instead of +):
RenderPipelineManager.beginCameraRendering -= RenderPipelineManager_beginCameraRendering;
RenderPipelineManager.endCameraRendering -= RenderPipelineManager_endCameraRendering;

Within NoesisView.cs add these methods...
private void RenderPipelineManager_beginCameraRendering(ScriptableRenderContext arg1, Camera arg2)
{
OnPreRender();
}

private void RenderPipelineManager_endCameraRendering(ScriptableRenderContext arg1, Camera arg2)
{
OnPostRender();
}

The beginCameraRendering method will fire without any changes to the LWRP. However the endCameraRendering method will not. That's because the current version in package manager for the LWRP is 5.2.3 and that version (within the Render method of LightweightRenderPipeline.cs) doesn't call EndCameraRendering(…). So simply add this line to LightweightRenderPipeline.cs in the Render method right after RenderSingleCamera:
EndCameraRendering(renderContext, camera);

From the git repo for the LWRP it looks like the latest version of it does have a call to EndCameraRendering anyway in that spot so it seems like in the future there won't be a need to actually alter the LWRP. Just the need to alter the NoesisView.cs to link to these.

Re: [BETA] NoesisGUI v2.2.0b6

Posted: 26 Feb 2019, 02:48
by nokola
Nice! Thanks alfiare for the LWRP info - it's useful!
Also thanks Noesis team for responses. I'm now trying to fix two more issues in 2.2 (not reported yet)
1. Styles broke in some user control
2. Few of my app's buttons are not responding
Both used to work in 2.1. Will update this thread or bugs once I have more info

Re: [BETA] NoesisGUI v2.2.0b6

Posted: 26 Feb 2019, 17:01
by jsantos
RenderPipelineManager.beginCameraRendering += RenderPipelineManager_beginCameraRendering;
RenderPipelineManager.endCameraRendering += RenderPipelineManager_endCameraRendering;
Oh! This is much better than the code I was trying. Thanks a lot for sharing this, I think we will find time this week to prepare a small document and sample.

Re: [BETA] NoesisGUI v2.2.0b6

Posted: 26 Feb 2019, 17:02
by jsantos
Nice! Thanks alfiare for the LWRP info - it's useful!
Also thanks Noesis team for responses. I'm now trying to fix two more issues in 2.2 (not reported yet)
Thanks, waiting for your reports to fix those issues!

Re: [BETA] NoesisGUI v2.2.0b6

Posted: 28 Feb 2019, 07:34
by nokola
Opened the font rendering issue: https://www.noesisengine.com/bugs/view.php?id=1416

Still trying to figure out the buttons not responding problem.