Doubts on Post Processing Effects

How to set autofocus in DepthOfField in Default Rendering Pipeline.
For Example, Once I go near to any objects in the scene, its focus needs to be changed automatically and make the object clear. Is It Possible?

Did you try to walk through this example? -


Hey this is 100% possible. In addition to following the guide above I’d recommend adding a function to scene.onAfterRenderObservable() to get the updated distance value after every frame.

In my case below, I have a mesh I wish to target and I use the built it meshDistanceToCamera function to calculate the distance. It’s calculated in meters and babylon’s default render pipeline DOF expects millimeters, so we have to multiply it by 1000.

I hope this helps!

  • note SceneManager.Meshes is just a dictionary of meshes.

      const DOFFactor = 1000;
      defaultPipeline.depthOfFieldEnabled = true; // false by default
      if (
        defaultPipeline.depthOfFieldEnabled &&
      ) {
        defaultPipeline.depthOfFieldBlurLevel = 0; 
        defaultPipeline.depthOfField.fStop = 1.4; 
        defaultPipeline.depthOfField.focalLength = 35; 
        scene.onAfterRenderObservable.add(() => {
          const topLevelMsh =
          let distancefromCamera =
            DOFFactor *
          if (defaultPipeline) {
            defaultPipeline.depthOfField.focusDistance = distancefromCamera;
        defaultPipeline.depthOfField.lensSize = 100;