Jump to content

Parallax Occlusion Mapping for SSE proof of concept


Recommended Posts

There is a proof of concept parallax shader floating around that demonstrates that parallax occlusion mapping is indeed possible with Skyrim SE. This shader also works with Fallout 4 even though FO4 doesn't really need it. I wanted to get it out there because I know a lot of people love the parallax effect and are discouraged from running SSE because they will lose some eye candy. This thing even in its super shitty form still adds a level of depth to rocks and armor that looks pretty nice.

 

Background:

 

Parallax Occlusion Mapping is done by a shader. Always. In Oblivion it was done by a shader (unpack the shaders in TES4 and you will find the Bethesda parallax shaders). In the ENB for the original Skyrim it was done by means of a shader built into the ENB.  Either way, still a shader.

 

So since ENB for SSE doesn't seem to be getting anywhere with parallax occlusion mapping in DX11, this shader is written for ReShade 3.0 which is fully DX11 and 64-bit compatible.

 

A few notes about this shader:

  • I didn't write it.
  • I don't know exactly who wrote it but I have a hunch.
  • It is safe, it is in source code form and will only compile as a shader via ReShade, which is a shader compiler. It simply alters pixels on the screen.
  • It does not work with Oldrim *_p.dds parallax files. Those existed because that was the method that the ENB used to calculate parallax data.
  • This shader uses a method similar to what Oblivion used in that it reads pixel information from the diffuse and normal maps to calculate parallax.
  • This is not going to exactly like the parallax in Skyrim ENBs because of the different method. This is not a limitation of the engine, It is a limitation of this pre-alpha, proof-of-concept shader. Maybe someone will see it and improve it.
  • I haven't noticed a performance hit but I have a 1080.

How to use:

  1. Install ReShade 3.0. There are several ReShade packs on the Nexus that are ReShade based but may not be Reshade 3.0. Make certain you are using ReShade 3.0. My testing was done with the Reshade 3.0 edition of Nyclix's ENB from the SSE Nexus (Nyclix knows nothing of this shader so do not bother him/her).
  2. Download the shader from: https://mega.nz/#!YWZ1VJLA!u1B71uloADnqlrC5Qn3GYbm5uOO12yI4G9FrSB6OsXY
  3. Copy the ParallaxOcclusionMapping.fx file into your Skyrim Special Edition folder, or in the same folder where the file "ReShade.fxh" exists.
  4. Load Skyrim SE. Watch the top bar to make sure all of the shaders compile. if they do not,  you did something wrong. Sorry I cannot assist you with this as everyone's system is different.
  5. Hit Shift+F2 to open the ReShade Overlay.
  6. You should see the Parallax shader listed at the bottom of your list. PIck a hotkey for enabling this shader in-game. I use the "End" key.

Settings

  • Depth Angle Check - samples the normal map/depth info to avoid artifacts at object borders.
  • Depth cutoff - preserves object edges to prevent artifacts
  • Power - strength of the parallax effect
  • Offset - the pixel offset of the parallax pixels. This is hard to explain but it somewhat controls the pixel shift of the parallax, some laterally, some on the Z plane.
  • Angle - controls the angle of the parallax. I recommend sticking to 45/90/180. Adjust to your taste.

I hope you enjoy this and hope that it spurs someone to write a better one.

Link to comment

Not bad. I played with it a bit and got some interesting (promising?) results.

 

Screens:

 

 

Load screen normal

post-64070-0-60086000-1498318846_thumb.jpg

 

Load screen with the parallax shader enabled

post-64070-0-53013400-1498318855_thumb.jpg

 

Riverview (I use JK's Riverwood) normal

post-64070-0-01140700-1498318878_thumb.jpg

 

Riverwood + parallax shader

post-64070-0-21540600-1498318886_thumb.jpg

 

Dragonsreach - Pillar normal

post-64070-0-21424300-1498318901_thumb.jpg

 

Dragonsreach pillar  + parallax shader

post-64070-0-40719200-1498318908_thumb.jpg

 

Moon normal

post-64070-0-41738400-1498318933_thumb.jpg

 

Moon + parallax shader

post-64070-0-24517000-1498319386_thumb.jpg

 

Map in Dragonsreach Normal

post-64070-0-60255900-1498318973_thumb.jpg

 

Map in Dragonsreach + parallax shader

post-64070-0-35061700-1498318940_thumb.jpg

 

 

 

I had to tinker with the settings a bit to get a good depth effect. Here's what I used

[ParallaxOcclusionMapping.fx]
bParallaxDoDepthCheck=1.000000
fParallaxDepthCutoff=0.000000
iParallaxAngle=90.000000
fParallaxPower=2.000000
fParallaxOffset=0.700000

Pretty nifty

Link to comment
  • 1 month later...

Bring this to Reddit community too. Might help get the world out about this. It might get more people interested in wanting to move forward and improve it. Might even get some interest in subsurface which is the one I would like to see the most, but I'll take what we can get. By the way it looks sweet. Might try it myself. 

Link to comment

Bring this to Reddit community too. Might help get the world out about this. It might get more people interested in wanting to move forward and improve it. Might even get some interest in subsurface which is the one I would like to see the most, but I'll take what we can get. By the way it looks sweet. Might try it myself. 

I just tipped firemanaf off about this.He's going to look into it. 

Link to comment
  • 1 month later...
  • 4 months later...

Ok, so first of all this isn't POM. Not at all, it's just embossing pixel values and creating a shadowing - directional sharpening if you will. POM actually modifies which colors are grabbed - it IS possible on ReShade, just super buggy as on ReShade we cannot access the data needed to properly implement the shader. Proof of concept which I made a good while ago:

 

https://scontent-frt3-2.xx.fbcdn.net/v/t31.0-8/11224507_900373876667233_1311474259885901337_o.jpg?oh=6767f69a28d90be5db611434670aed6a&oe=5B15D9C1

 

Second, this is a (badly done) ReShade 3.0 port of an old emboss filter I posted here:

 

https://reshade.me/forum/shader-suggestions/898-simple-emboss-shader

 

Which in turn was a port from QeffectsGL, a tool for Doom and other old games.

Here's a fixed up version with working depth check (no more mixed preprocessor and inline code) and a depth fade out. I also made the offset somewhat depth dependant so you get smaller offset with distance, only a little though.

 

https://pastebin.com/Dgm0yfAb

 

 

 

 

Link to comment

Archived

This topic is now archived and is closed to further replies.

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. For more information, see our Privacy Policy & Terms of Use