Pbr

Great work!
I guess that urho soon got an pbr renderer?)

No active IBL in these images (which is practically the most important part)
if i’m right this maps must be attached to urho’s Zones and lerp between few Zones

Amazing work !
Is the PBR currently roughly compatible with mobile ?

Nice! :slight_smile:

That’s looking really nice !

Looks really good. Is there currently an option for Linear workflow a way to set gamma 2.2 .

Glad to see progress on this, Sinoid! This will benefit a lot of people, I’d like to test it out when I get the chance.

This might not be the best for runtime games but for VFX visualisation I stumbled upon this:
https://github.com/syoyo/tinyexr
In the same vein as stb_image, so no need to include IlmBase+OpenEXR as a dependency to get EXR I/O. Unfortunately tiled loading isn’t supported yet, which might be fun to experiment with, combined with ARB_sparse_texture (I’d like to one day make a simple turntable viewer using Urho3D and PBR that can load in very large EXR’s out of Mari/Mudbox out-of-core style).

Let me know and I’ll make a patch to Urho3D which incorporates this, should be simple to do.

-Alex

Thanks for your hard work on this ! I’m definitely going to try it out and compare against some old work I have laying about.

Specifically cubemaps must be able to load mipmaps from a DDS file

if you need manual created mips then use NvTools, it have a

detach.exe - extracts the MIP maps from a .DDS file
stitch.exe - stitches together multiple MIP levels to form one .DDS file

see this developer.nvidia.com/gameworksd … ities-8-31

Looks cool but it s a bit off from this one : vimeo.com/96235208
Would be interesting to see how it works in different conditions with these HDRs : hdrlabs.com/sibl/archive.html
I think his code is a good reference too: github.com/derkreature/IBLBaker

1 Like

Very cool Sinoid!

I’m primarily using OpenGL so I can look into porting it over as I’d like to move to PBR sooner rather than later. I’d like to try it out against some offline renderers when I get the chance as well.

For my use case though I prefer a more accurate gbuffer (16-bit float) rather than doing compression with things like YCoCg, but like you said it should be an easy port to GL.

For area lights I have GPU Pro 5 to work off of, but my math notation-fu is a bit lacking. A bit of a shame they can’t just talk in C/GLSL terms… :slight_smile:

Hi Sinoid I’ll take a look at the github repo, thanks!

I still would like to make accurate area lights as I wanted to make something which matches VRay 3/PRman RIS light rigs as close as possible for faster previews of assets (as light rigs are all like that now + a HDRI). Same for just doing everything with 16-bit float gbuffers (and possibly upping the MRT setting from 4 to 8 to store other things like motion vectors, I’m not worried too much about memory usage or uber high framerates)… :slight_smile:

I’m a fan of the YCoCg stuff though, but probably more for better compression in DXT5 like what ID Tech 5 did for Rage/Wolfenstein for better quality DXT transcoding. There shouldn’t be any loss in colour quality from what I remember though?

Thanks for repo! I currently try these shaders and tech just coped they in usual dirs where are other shaders and tech placed in urho.
when i’m set option to editor RenderPath - PBRDeferred.xml and trying to load some std models, but they not visible. Only UI and debug renderer things are visible.
maybe i’m missing something? also i’m add graphics.sRGB = true in start procedure of editor but view port it’s still black.

log is clear

2d grid also missing

Check that the material’s MatSpecColor is something real

i’m load a standard scene example with cubes. last master (just compiled) with your shaders within.
You may own reproduce this with clear master + put pbr shaders & tech into std urho’s folders.

I am also getting same problem. After doing some testing it appears to be invisible models when using any of the PBR materials. i have messed around with changing setting on the zone and changing the material. There was no error being printed until i changed the technique to PBRRoughNormalSpecAOIBL where i got the error undeclared identifier ‘ZoneCubeMap’

The latest commit works for IBL materials all the other PBR materials are sill not working

That’s cool I will give it a try on mobile.

The others all appear to functioning as intended
You want to say what other objects what not have a PBR-material would not to be rendered in PBRRenderPath, and it’s normal ?
Currently am testing last changes in both renders - DX9 and DX11, with PBRRenderPath with loading std “cubes scene” it’s still not visible, all are black.
also I trying add zone with maximized ambient color and change all colors in mats of these objects to maximum but it’s not helped.

maybe need do some additional tweak or setup for engine ? sRGB is really needed ? and if it really needed, if am turn-on sRGB in editor startup it’s enough?

Need an example of any scene. I cannot make to work the shaders correctly.


In the log no information except

...
[Wed Aug 05 14:45:35 2015] DEBUG: Allocated new screen buffer size 388x100 format 113
[Wed Aug 05 14:45:35 2015] DEBUG: Allocated new screen buffer size 388x100 format 113
[Wed Aug 05 14:45:35 2015] DEBUG: Allocated new screen buffer size 388x100 format 114
[Wed Aug 05 14:45:36 2015] DEBUG: Removed unused screen buffer size 388x100 format 113
[Wed Aug 05 14:45:36 2015] DEBUG: Removed unused screen buffer size 388x100 format 113
[Wed Aug 05 14:45:36 2015] DEBUG: Removed unused screen buffer size 388x100 format 114
[Wed Aug 05 14:45:45 2015] DEBUG: Allocated new screen buffer size 388x100 format 113
[Wed Aug 05 14:45:45 2015] DEBUG: Allocated new screen buffer size 388x100 format 113
[Wed Aug 05 14:45:45 2015] DEBUG: Allocated new screen buffer size 388x100 format 114
[Wed Aug 05 14:45:48 2015] DEBUG: Removed unused screen buffer size 388x100 format 113
[Wed Aug 05 14:45:48 2015] DEBUG: Removed unused screen buffer size 388x100 format 113
[Wed Aug 05 14:45:48 2015] DEBUG: Removed unused screen buffer size 388x100 format 114
...

Use forward rendering
Oh, thanks for note. i’m thinking that it works only with PBRDeferred RenderPath.

Now I see something. i’m using PBRRoughNormalSpec.xml for this.

Donwload model and textures from this site
artisaverb.info/PBT.html

Then
Resample textures to 2048
and merge Roughness & Metalness into one texture (R channel - Roughness, G - Metalness) this is right ?

Also I found that all material’s lights better keep maximized and ambient color of Zone too. Add value for bright multipler of light also helped to bring black areas to normal visible.

And this, why they(triggers) are still black on counters ? if around model i placed two directional light for both side lighting

Codingmonkey, thanks for the tip about the color channels :slight_smile:

Codingmonkey, u need necessarily set zone texture (Textures/Skybox.xml, NOT Materials/Skybox.xml)