by HAL9000 » Thu Jul 12, 2018 3:48 pm
Now, that the PBR is supportd by the engine, and its activated under dynamic lights, Is it possible to add Environment maps to the PBR workflow in future GZD Builds?
Current PBR looks good, but it have several issues,
Albedo looks ok, but only if directly close to dynamic lights, and materials look "washed out" especially from the 1st person view, if you are not close to dynamic light source.
Using Environment maps
(In Addition to existing Dynamic lights) could fix that issue and vastly improved the PBR shader.
I had to bake fake light into albedo to replace it in addition to Metalness/Roughness to mimic the PBR look I would get for example in substance.
This could be improved by adding Environment maps and Light point to those Environment maps.
Idea:
Users could define the Environment map image in the GLDEFS (or in some new definition file) for map you want to use it
Users could define the intensity(brightness) of the Environment map
Users could define extra X/Y points on that map (it will use the pixel color from that point) and the light intensity with maximum of 10 Light points.
Comparison between Albedo and Albedo with fake baked Light (both are PBR)
Fake/Baked Albedo looks better than Classic Albedo in GZDoom (NOTE*** PBR with fake albedo still uses Roughness/Metallness/AO/Normal Map)
Model Textures were directly exported from Substance painter for PBR (metal/rough workflow), They were prepared correctly.
Spoiler:
For Comparison here is the Original Model I made with Loaded Environment/Sky Map and 3 Lights
(Normal Albedo, Metalness, Roughness, Normalmap, AO)
Spoiler:
Code Example /Idea
Spoiler:
Code: Select all
Environment "E1M1" { //Map name
Environment "Environments/Indoors1.png"
EnvBrightness [number] //in range from 0 to 100
Lightbrightness [number] //in range from 0 to 100
Rotation [degrees] //0-360 degrees ENV map rotation
//takes the color info from X/Y coordinates on the Env image
Light1 [Xcord],[Ycord],[brightness],[distance]
Light2 [Xcord],[Ycord],[brightness],[distance]
...
Light10 [Xcord],[Ycord],[brightness],[distance]
//Or you can define custom lights
Customlight1 [brightness],[distance],[ColorHEX]
Customlight2 [brightness],[distance],[ColorHEX]
...
Customlight10 [brightness],[distance],[ColorHEX]
}
PM me for Example MOD files, models and textures , to see/test what I'm talking about.
Thanks
Now, that the PBR is supportd by the engine, and its activated under dynamic lights, Is it possible to add Environment maps to the PBR workflow in future GZD Builds?
[img]https://i.imgur.com/5RTiIyy.jpg[/img]
Current PBR looks good, but it have several issues,
Albedo looks ok, but only if directly close to dynamic lights, and materials look "washed out" especially from the 1st person view, if you are not close to dynamic light source.
Using Environment maps [b][u](In Addition to existing Dynamic lights) [/u][/b]could fix that issue and vastly improved the PBR shader.
I had to bake fake light into albedo to replace it in addition to Metalness/Roughness to mimic the PBR look I would get for example in substance.
This could be improved by adding Environment maps and Light point to those Environment maps.
Idea:
Users could define the Environment map image in the GLDEFS (or in some new definition file) for map you want to use it
Users could define the intensity(brightness) of the Environment map
Users could define extra X/Y points on that map (it will use the pixel color from that point) and the light intensity with maximum of 10 Light points.
Comparison between Albedo and Albedo with fake baked Light (both are PBR)
[img]https://i.imgur.com/w8PBsJh.gif[/img]
Fake/Baked Albedo looks better than Classic Albedo in GZDoom (NOTE*** PBR with fake albedo still uses Roughness/Metallness/AO/Normal Map)
Model Textures were directly exported from Substance painter for PBR (metal/rough workflow), They were prepared correctly.
[spoiler][img]https://i.imgur.com/OJqQgCT.gif[/img][/spoiler]
For Comparison here is the Original Model I made with Loaded Environment/Sky Map and 3 Lights
(Normal Albedo, Metalness, Roughness, Normalmap, AO)
[spoiler][img]https://i.imgur.com/WmtECdx.gif[/img][/spoiler]
Code Example /Idea
[spoiler][code]Environment "E1M1" { //Map name
Environment "Environments/Indoors1.png"
EnvBrightness [number] //in range from 0 to 100
Lightbrightness [number] //in range from 0 to 100
Rotation [degrees] //0-360 degrees ENV map rotation
//takes the color info from X/Y coordinates on the Env image
Light1 [Xcord],[Ycord],[brightness],[distance]
Light2 [Xcord],[Ycord],[brightness],[distance]
...
Light10 [Xcord],[Ycord],[brightness],[distance]
//Or you can define custom lights
Customlight1 [brightness],[distance],[ColorHEX]
Customlight2 [brightness],[distance],[ColorHEX]
...
Customlight10 [brightness],[distance],[ColorHEX]
}
[/code][/spoiler]
PM me for Example MOD files, models and textures , to see/test what I'm talking about.
Thanks