Monday, July 9, 2012

Mass Effect 3 Depth of field / Blur Removal V.2

Comparison Gallery.

Removed: Blur
Depth of Field

I apoligize for going "image crazy". Depth of field in the mass effect series seriously bothers me especially in 3D. Most people who played through the games in 3D did DepthofField=False. Which kills so much of the games beautiful graphics(disables all post processing effects). However whenever I mention it to anyone who did DepthofField=False they dont know what I am talking about. Its easier to show then explain, so I did. Click any of the images magnifying glass to increase resolution then navigate through comparisons. Well anywho try it out and if you enjoy/run into issues let me know in comments section.

Download and install the Helix Mass Effect 3 patch

Put the following files into your ..\Mass Effect 3\Binaries\Win32\ShaderOverride\PixelShaders\  Folder

Special Thanks: Helix(for making the game so amazing), Smarteck(check out his thread!Mass Effect 3 Enhanced Textures, FXAA Mod, Voice Support),Mana84(always helpful), Eincrou(same), ddorpm.
 DHR, 3D4DD 
If you like this fix I accept Paypal Donations at EQZITARA@YAHOO.COM or my PATREON.
Please keep in mind I am only one person at helixmod and all donations will go only towards myself.
Thank you for your support.


  1. I vow to play the ME series now...Thanx for all the work...It sounds like I have a huge epic waiting for me with the trilgy.

  2. ...Also, can you put the nail'd .zip on the S3 server? I left my login info on the NV forums so I have to wait till they are back up.

  3. Hi eqzitara! Great to know you've finally get rid of that dof effect :)
    I'm still too much busy with the exams but I hope to return of being of help asap... I think next month I should have a little less pressure...

    1. Yea, thanks for trying to help. Solution was very simple just took forever to find the shaders since I had to manually dump them then sort through. Will probably turn this into a DOF removal page for all Unreal 3.0 Games that go heavy on the DOF when I get a chance.

      Good luck on your exams.

    2. Completely forgot to mention.
      Big thanks for helping me understand Unreal Engine 3.0. Should be a spec ops: The line patch tommorrow(game has a new funky version which made it very difficult unfortunatelty)
      If I do A depth of field removal patch for ME2. Can I put a seperate link on your page?(won't be any time soon probably). ME2 isnt as bad as ME3 with Depth of field and the color lose from doing depth of field = false isnt as bad. I will probably playthrough of it again sometime and will be doing it for myself anyway.

    3. I just went to check how helix didnt have any issues with removing self shadows from ME3. While we did with other games. I went into me3 with no shaderoverride and I deleted the worked perfectly lol. Its like the only Unreal Engine 3.0 game that lets you do that. I spent so many hours because I knew it was possible, turns out it just works in that game lol.

    4. Hey mana,
      Do you know anything about this issue where you put anything thats BONEMATRICES(character models/any model) in your shaderoverride folder and It literally breaks.(Without changing code).

    5. I figured out how to disable self shadows without flickering..... It was so obvious it was funny. We tried to disable the vertexshader texcoord because thats what helix did for me3. That works, other games it doesnt.

      Have to disable the pixelshader texcoord. Vertexshader is just saying where to draw it. The pixelshader is the shadow itself. If you disable the pixelshader it cant be drawn.

    6. Nm....
      It blurs the model a tiny bit. At least for game I am working on.

    7. This comment has been removed by the author.

    8. I'm sorry about replying ages later...

      About ME2, feel free to add anything you like in my page! We all are a "team" and we should help each others ;)

      About bonematrices that breaks Spec Ops, it seems to be an override issue... have you tried with "OverrideMethod = 1" into dx9Settings.ini? I don't have the game but I could download the demo and give it a look as soon as I can... I'm unable to help you more without seeing the game.

    9. Its actually a ton of games. It seems like 1/2 games that deal with bonematrices do it(not even just unreal games). I tried override idea as well. Was first thing I though of. It honestly would not surprise me if this a GTX 680 issue. Which would make me laugh.
      When you blank a vertex shader. You can do just vs_3_0
      I cant. I will literally crash my computer.
      I have to do
      dcl_position v0
      dcl_position o0
      That was the issue that one user had with your mass effect fix and I thought he was crazy and when I tried it, same thing.

    10. I remember that gtx680 issue... such a strange thing!
      Anyway if I remember well when I tried to fix risen2 I had to put "OverrideMethod = 2" to make it work... I can't know how helix implemented the override thing but when I get strange behaviors with shaders I always try to change it.
      Tomorrow I should have a little of free time, so I'll try spec ops and make you know if I came into something good.

    11. Whenever you have time, no rush.
      Thanks for always helping me. I have been seriously getting frustrated over this issue. Had this happen with like 5 games. Not all of them are unreal engine either. I was actually looking at space marine because I am pretty sure the issue is "light-reflecting" off the the models not having W information. Then I went to inject a shader and its looks like they grew random limbs. I deactivate 3d vision with shader still injected. It goes back to normal. Reactivate...random limbs. This is part of the reason why I been only really looking at Unreal Games, less frustration.

    12. I've just tried specops and it works correctly with your fix, selfshadows are removed without cause any other issue (in the demo at least) with my gtx570... unfortunately you've probably right about the fact it could be a 600 series issue :(
      Have you tried to put zeroes into texcoord output registers instead of comment them? You could try something like that:
      def c200 0, 0, 0, 0
      move o5, c200
      move o6, c200
      I'm really sorry, I'd like to help you but I haven't got a gtx6xx to test with.
      ...Btw, do you know when nvidia's forum will return up?

    13. Ah you misunderstand, my fix works because I disabled those shaders.
      You see how I disabled the texcoord / output for shaders I marked as SELF SHADOWS?
      Renable them. That should make the shader as it was unchanged.
      Like this
      // mad o6, c3, r0.w, r1
      mad, r0, -c4.w, c4
      // mov o5, r0
      If you renable all them by removing the //
      mad o6, c3, r0.w, r1
      mad, r0, -c4.w, c4
      mov o5, r0

      What I mean is when I inject/add a shader that deals with bone matrices(unchanged). Whether its just a game model/ shadow. For many games this would glitch it where lets say I am dealing with the model for the head of a character. A jagged spike will shoot out of the head.
      Had this happen in like 6 games now.

    14. I forgot to mention in some games this happens only on 1 or maybe 2 models the whole game. I am not sure if paul has a 600 series video card. I actually noticed it in your mass effect 2 fix as well when I watch the music video by paul
      Luckily it doesnt happen often in ME2. But look at 2:40 and you should see a jagged spike comming of a model.

    15. Sorry for posting so many times. I just want to make sure you understand what I am saying. I am a very poor writer.
      Delete the shaderoverride you have already for Spec. Ops
      Install this one instead
      These are just models/shadow shaders taken straight from my dump folder. Then put in shaderoverride/vertexshaders. The code in them has not been changed.

    16. Ugh last post I promise. Well I dont think its a 600 series issue anymore. Ive only tested one shader at a time till now and all together I think I know why we had issues seperateing self shadows from models. I am just posting this message so you dont miss it and understand what I am talking about. The shaders flicker, though nothings changed. It looks like your ME2, When you leave shadows on. Like what I am saying is, its not removing the texcoord thats causing the flickering. Its the shaders themselves. Like if this issue didnt happen, besides stuff sprouting out of models. We'd be able to seperate self shadows from models. Like your ME2 black with camera adjustment/movement. My hunted did same thing when I removed the texcoords. This game does same thing BUT I didnt even change the code at all.

      Here is a 30 sec clip of what it looks like for me on CHAPTER 2. Right off the helicopter.

      Also I saw your post and compeletely got caught up in writing and forgot to answer. I dont know when nvidia forum is coming up. I dont nvidia even knows.

  4. ops ok sorry I misunderstood something before...
    I understood correctly that injecting a shader (untouched) that deals with bone matrices caused issues (I encountered this issues as well in some other games i.e. risen2)... what I probably confused before, is that I believed that disabling output texcoord to disable selfhshadow caused flickering issues... so I said it worked good for me just becouse I tried your fix and had no flickering issues.
    Now, trying your "" I get the same "jagged spike" issue... although as I said before, I believe that should mean there's something "wrong" related dll's overriding method, since the shaders' code is untouched... I'd try with a different ini settings or with an older dll to see if something changes. If I remember well, Helix wrote something about different compatibility with any newer dlls..

  5. Another strange issue I had injecting a untouched shader is for example in nfs shift 2 unleashed, where the shader caused a car self shadow shifting to the side like a sort of faint... in that case I believe I solved using another dll, but I'm not really sure about that. Btw if I get into something I'll make you know ;)

  6. This comment has been removed by the author.

  7. sorry for another post (we don't have edit functionaliy like in the nv forum)... nevermind I've just tried all dlls and it's the same :( before, I'll make you know if I discover something..

    looking at your "SpecOpsTheLine+2012-07-26+19-05-39-76.mkv" I've noticed the selfshadow flicker you were talking about... yeah I confirm that it seems to be the same issue of me2 when you leave selfshadow active. I tried to fix that issue before in past (instead of disabling) but I didn't succeded. I could retry now to see if I can obtain something... but like you said we should solve the "jagged spikes" issue somehow at first.

    1. I have no idea how to fix this, I think its something that only helix would know. I just wanted to confirm it wasnt just me especially before bringing it up to helix.
      Yeah it looks like removing texcoord for selfshadow worked all along but this glitch is what makes the flicker. My fix only works because I disabled the shader(output) rather then texcoord, it luckily worked out that way but most games dont.

      Yea, this no editing is a real pain.

    2. It looks like someone just ran into the issue in Grand theft auto as well. But it only happens in a wierd situation.

      The "jagged spikes" only happen as long as you enable 3d vision but I think both issues are related since they occur from the same shaders. Ive thought about it before and this only explanation I can come up with.
      You see how it keeps flickering. It looks like its flickering between the two opposites. In Daylight/ In darkness. Like the shader we add is for whatever models it controls of. There are multiples versions of each model where its in darkness/in front of a dynamic light/ in front of the sun. However when we add the shader to override it cant "connect" to the index that tells it what version of the model to use.
      Like when we add the shader for a model to our override folder. We are adding a "book" to our override. Except it doesnt have the tables of contents and it has no idea what page we are on.

      My ONLY theory is we need to find a shader that controls all models and add it to our shaderoverride along with these files

    3. OOO thought up a better way to explain it.
      Models go two ways. World to local.
      Local to World.
      Its connecting world to local but not local to world. Its "receiving information" but not "giving information"

      Here is a picture of hunted demons forge, this one only happens when removing the texcoord while the other games are just from adding the shader without even changing code. This is the best example I could find though and i spent most time on this one trying to figure it out.

      Using debugger I am able to darken the "box" that controls self shadows.

      Here is a picture of the flicker. Without my code that renders shadows in 3D.Be sure to look at this closely. Close one eye and open the other. Then switch.

      Here is a picture of the flicker. WITH my code that renders shadows in 3D.

      Notice how the flicker is in both eyes when shadows are 2D. Yet the the flicker is in both eyes when 3D.

    4. If you read my last post before I deleted it ignore it.

      I tried the game without those texture settings and nothing changed. I think for some reason ME3/any game didnt run into any of the issues I ran into this with every game where I tried to fix shadows. Unfortunately I have to give up. I spent to much time on this and its way beyond me.

    5. this "flickering" issue seems to be the same I noticed for example with mass effect1&2 and last remnant, it's very common... this issue is related to how the shadow effect is implemented. Game engines has usually more than a method to render shadows in realtime (i.e. I read somewhere that Unreal Engine had like 3 different methods). I haven't studied how shadows are rendered in the real practice (yet), since in the only opengl game I made months ago I didn't used any advanced effects and shaders at all (only models, textures, lights and particles). Btw I believe that issue isn't really a flicker... it's only a sort of shadow volume rendered at wrong depth. The issue is caused by the fact that shadow volumes coords are generated using a matrix that is related to the camera view, so when you enable stereo3d the camera is split into two cameras but the effect remains related only to the first one. With some contrasty backgrounds you can see the issue better, it appears like a sort of "black and white ghost"(they should be enlightened and the darkened part of the model exposed to the light), and it could be solved by moving this volume coords in the right place, but I gave up because I noticed that I was able to only "cut" the caracter's shadow volume but I cannot move it... in that case, reading only the shader's code isn't of help for me becouse I can't know how the shadow matrices are built in the game and although I don't know any shadow algorithm actually.
      Coordinate values are not "universal"... if you move a vertex by a certain number on the 'x' axis, the result depends by the choice of coordinate origin. Matrices are used to translate, rotate or scale the origin so that the vertexes you are drawing are in the needed position. For example a projection matrix is used to make i.e. an object that in the world coordinates is drawn like a cube, appearing on the screen like a truncated pyramid.

    6. Definitely way beyond me.

      This is important: I need to reach you on email. Can I contact you using the email I have listed for your blog spot address? Everything may be changing in a good way -_o .That's all I can say here.

    7. ok np you can use that email ;)

  8. This comment has been removed by the author.

  9. I started in the 3d and I do not understand how watching 3D pictures on your site with the w1070 benq and 3dtv play.
    Also, I cannot remove the DOF in mass effect 3 using your fix.
    Can someone give me a simple way to use both links ? I put the two text files named 54AB3D07.txt and EC55A930.txt in the folder "Mass Effect 3\Binaries\Win32\ShaderOverride\PixelShaders\" and the DOF in cinematic are still there .

    1. You need to use the steps specified above. The secondary files don't work without the helixmod installed. If you need more support, go to the geforce 3D vision forums.

    2. i did that , of course , but DOF is still there . Can i have a direct link for downloading the text files instead of having a link towards http pages. Sorry for my bad english ,i'm french :)
      And for the photos , which plugin i need ? i've installed 3dtv play and it works well with movies and games .

      The experience in 3d is incredible !!!

      Thx for your support bo3b

    3. don't bother ,it's ok with the DOF ; and for the photos, i gonna learn , i'm not in a hurry ... Thx

  10. Hi everyone,

    I personally like the DoF effect, what I do NOT like is the insane black levels. ME2 had this same issue but this was easy to solve by changing a line in shader file UberPostProcessBlendPixelShader.usf

    this: float3 x = max(0,InLinearColour-0.004);
    to: float3 x = max(0,InLinearColour);

    And all crushed blacks are gone, now I want this effect for ME3, can someone help me explain which file to change for this effect? It seems like they used the same dumb black crushing effect only harder to edit.