Comments (13)
Seems like a plain Schlick is being used for IBL reflection, instead of DFG term.
I suggest to bake DFG lookup table for IBL, or use approximations (ie. https://www.unrealengine.com/en-US/blog/physically-based-shading-on-mobile).
After replacing the Schlick with the EnvBRDFApprox
in the article you linked:
from wickedengine.
I'm having problems with Blender, I couldn't really find a way to adjust roughness easily. But I agree that Blender renders it differently, as if it doesn't have fresnel effect.
The model has a roughness map, if you go on the material settings, and click on the dot at roughness ("separate color") you can then choose "remove link" in the menu. After that you can modify the roughness value globally. Wicked and Blender are close for low values, but begin to differ after 0.4 or so.
from wickedengine.
Here is another white furnace example with the tree model illustrating the issue.
https://github.com/turanszkij/WickedEngine/assets/37701550/f8d5de59-0e4b-4ff6-919b-b5cf7857c24c
from wickedengine.
Right now it mostly matches Windows 3D Viewer result
(I had to remove vertex colors from the model, otherwise it's mostly balck)
from wickedengine.
I'm having problems with Blender, I couldn't really find a way to adjust roughness easily. But I agree that Blender renders it differently, as if it doesn't have fresnel effect.
from wickedengine.
Gestaltor reference GLTF viewer:
I think it's pretty close.
from wickedengine.
Seems like a plain Schlick is being used for IBL reflection, instead of DFG term.
I suggest to bake DFG lookup table for IBL, or use approximations (ie. https://www.unrealengine.com/en-US/blog/physically-based-shading-on-mobile).
from wickedengine.
Right now it mostly matches Windows 3D Viewer result
(I had to remove vertex colors from the model, otherwise it's mostly balck)
I see that, however the visual output here is definitely wrong. A bark material with those rough properties should have that metallic sheen. Therefore I would say that the PBR model in the windows 3D viewer is probably flawed as well (which isn't terribly surprising considering its a very basic viewer that isn't designed for accuracy or production rendering).
I therefore think taking orientation against both other renderers who don't exude this behaviour and real-life reference is probably better.
LVutner may be onto something with the usage of Schlick for IBL reflection.
from wickedengine.
Cool. The minor differences comes from DFG itself.
from wickedengine.
That looks a lot better! Can't wait to try it and see if it improves things :)
from wickedengine.
Some more notes on IBL DFG terms:
https://knarkowicz.wordpress.com/2014/12/27/analytical-dfg-term-for-ibl/
https://github.com/TheRealMJP/DXRPathTracer/blob/master/SampleFramework12/v1.02/Shaders/BRDF.hlsl#L209
from wickedengine.
Added this in the PR: #737
Let me know if this is matching expectations.
from wickedengine.
The following fixes were made since this issue was opened:
- applying Unreal Engine's Environment BRDF approximation for surface.F value in PBR shaders
- environment map prefiltering improvements: NdotL normalization, dynamic miplod determination
- environment map filtering only goes down to 16x16 mip level as recommended by some graphics people, also as in
EXT_lights_image_based
GLTF sample
from wickedengine.
Related Issues (20)
- Bad performance with terrain and surfel GI or DDGI HOT 3
- [Feature] allow individual renderpaths to enable wireframe, and other currently global renderer settings. HOT 2
- Cant print screen in windows when wicked engine runs in steam even minimized HOT 3
- Transform component scale decreasing in editor with certain rotations. HOT 1
- Terrain crash on Linux HOT 5
- Additive Animation Request HOT 5
- Reverb Submix fails to initialize with bluetooth earbuds. HOT 2
- Incorrect conditional in wiGraphicsDevice_Vulkan.cpp HOT 1
- [Bug] Win 11 & Vulkan & example imgui project ocean not work.
- [feature] SDL2 visual studio project for Windows OS with DX12 & Vulkan
- Incorrect assertion in video parser HOT 1
- Does the `config.ini` have some font-size setting? HOT 2
- scale and rotation drifting HOT 1
- [feature] USD importer HOT 4
- Issues using WickedEngine as submodule HOT 5
- Linux: segfault on window-close / quit HOT 1
- Crash with: DXGI_ERROR_INVALID_CALL
- FSR 2.2 HOT 1
- [Feature], Convert position of the 3d world to position to 2d pixel in the texture. HOT 3
- Vulkan Synchronization Error HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from wickedengine.