Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeroen Bakker <j.bakker@atmind.nl>2012-07-09 19:21:43 +0400
committerJeroen Bakker <j.bakker@atmind.nl>2012-07-09 19:21:43 +0400
commitbfe776cd1d1e9036bd389469d74984d6f5ce81fb (patch)
tree1f8b1b2975fb78b01d09672df8b258629faafe8a /source/blender/compositor/operations/COM_ConvertDepthToRadiusOperation.cpp
parent0dafa97ea3f6d9662299579e5be1875cd28baaae (diff)
removed depth aware defocus
add blur to radius buffer
Diffstat (limited to 'source/blender/compositor/operations/COM_ConvertDepthToRadiusOperation.cpp')
-rw-r--r--source/blender/compositor/operations/COM_ConvertDepthToRadiusOperation.cpp7
1 files changed, 6 insertions, 1 deletions
diff --git a/source/blender/compositor/operations/COM_ConvertDepthToRadiusOperation.cpp b/source/blender/compositor/operations/COM_ConvertDepthToRadiusOperation.cpp
index 91b68a90126..b4319d25d13 100644
--- a/source/blender/compositor/operations/COM_ConvertDepthToRadiusOperation.cpp
+++ b/source/blender/compositor/operations/COM_ConvertDepthToRadiusOperation.cpp
@@ -32,6 +32,7 @@ ConvertDepthToRadiusOperation::ConvertDepthToRadiusOperation() : NodeOperation()
this->m_fStop = 128.0f;
this->m_cameraObject = NULL;
this->m_maxRadius = 32.0f;
+ this->m_blurPostOperation = NULL;
}
float ConvertDepthToRadiusOperation::determineFocalDistance()
@@ -68,6 +69,10 @@ void ConvertDepthToRadiusOperation::initExecution()
this->m_aperture = 0.5f * (this->m_cam_lens / (this->m_aspect * 32.0f)) / this->m_fStop;
float minsz = MIN2(getWidth(), getHeight());
this->m_dof_sp = (float)minsz / (16.f / this->m_cam_lens); // <- == aspect * MIN2(img->x, img->y) / tan(0.5f * fov);
+
+ if (this->m_blurPostOperation) {
+ m_blurPostOperation->setSigma(m_aperture*128.0f);
+ }
}
void ConvertDepthToRadiusOperation::executePixel(float *outputValue, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[])
@@ -88,7 +93,7 @@ void ConvertDepthToRadiusOperation::executePixel(float *outputValue, float x, fl
#endif
radius = 0.5f * fabsf(this->m_aperture * (this->m_dof_sp * (this->m_inverseFocalDistance - iZ) - 1.f));
// 'bug' #6615, limit minimum radius to 1 pixel, not really a solution, but somewhat mitigates the problem
- if (radius < 0.5f) radius = 0.5f;
+ if (radius < 0.0f) radius = 0.0f;
if (radius > this->m_maxRadius) {
radius = this->m_maxRadius;
}