[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [48079] branches/soc-2011-tomato: svn merge ^/trunk/blender -r48070:48078
Campbell Barton
ideasman42 at gmail.com
Tue Jun 19 15:48:29 CEST 2012
Revision: 48079
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=48079
Author: campbellbarton
Date: 2012-06-19 13:48:19 +0000 (Tue, 19 Jun 2012)
Log Message:
-----------
svn merge ^/trunk/blender -r48070:48078
Revision Links:
--------------
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=48070
Modified Paths:
--------------
branches/soc-2011-tomato/source/blender/compositor/nodes/COM_BokehBlurNode.cpp
branches/soc-2011-tomato/source/blender/compositor/nodes/COM_DefocusNode.cpp
branches/soc-2011-tomato/source/blender/compositor/operations/COM_ScreenLensDistortionOperation.cpp
branches/soc-2011-tomato/source/blender/compositor/operations/COM_VariableSizeBokehBlurOperation.cpp
branches/soc-2011-tomato/source/blender/compositor/operations/COM_VariableSizeBokehBlurOperation.h
Property Changed:
----------------
branches/soc-2011-tomato/
branches/soc-2011-tomato/source/blender/editors/interface/interface.c
branches/soc-2011-tomato/source/blender/editors/space_outliner/
Property changes on: branches/soc-2011-tomato
___________________________________________________________________
Modified: svn:mergeinfo
- /branches/ge_harmony:42255,42279-42282,42286,42302,42338,42349,42616,42620,42698-42699,42739,42753,42773-42774,42832,44568,44597-44598,44793-44794
/branches/soc-2011-cucumber:37517,38166-38167,38177,38179-38180,38187,38242,38384,38387,38403-38404,38407,38968,38970,38973,39045,40845,42997-42998,43439
/branches/vgroup_modifiers:38694-39989
/trunk/blender:36831-48070
+ /branches/ge_harmony:42255,42279-42282,42286,42302,42338,42349,42616,42620,42698-42699,42739,42753,42773-42774,42832,44568,44597-44598,44793-44794
/branches/soc-2011-cucumber:37517,38166-38167,38177,38179-38180,38187,38242,38384,38387,38403-38404,38407,38968,38970,38973,39045,40845,42997-42998,43439
/branches/vgroup_modifiers:38694-39989
/trunk/blender:36831-48078
Modified: branches/soc-2011-tomato/source/blender/compositor/nodes/COM_BokehBlurNode.cpp
===================================================================
--- branches/soc-2011-tomato/source/blender/compositor/nodes/COM_BokehBlurNode.cpp 2012-06-19 13:20:06 UTC (rev 48078)
+++ branches/soc-2011-tomato/source/blender/compositor/nodes/COM_BokehBlurNode.cpp 2012-06-19 13:48:19 UTC (rev 48079)
@@ -37,24 +37,24 @@
void BokehBlurNode::convertToOperations(ExecutionSystem *graph, CompositorContext *context)
{
- Object *camob = context->getScene()->camera;
+// Object *camob = context->getScene()->camera;
- if (this->getInputSocket(2)->isConnected()) {
- VariableSizeBokehBlurOperation *operation = new VariableSizeBokehBlurOperation();
- ConvertDepthToRadiusOperation *converter = new ConvertDepthToRadiusOperation();
- converter->setfStop(this->getbNode()->custom3);
- converter->setCameraObject(camob);
- operation->setMaxBlur((int)this->getbNode()->custom4);
- operation->setQuality(context->getQuality());
- this->getInputSocket(0)->relinkConnections(operation->getInputSocket(0), 0, graph);
- this->getInputSocket(1)->relinkConnections(operation->getInputSocket(1), 1, graph);
- this->getInputSocket(2)->relinkConnections(converter->getInputSocket(0), 2, graph);
- addLink(graph, converter->getOutputSocket(), operation->getInputSocket(2));
- graph->addOperation(operation);
- graph->addOperation(converter);
- this->getOutputSocket(0)->relinkConnections(operation->getOutputSocket());
- }
- else {
+// if (this->getInputSocket(2)->isConnected()) {
+// VariableSizeBokehBlurOperation *operation = new VariableSizeBokehBlurOperation();
+// ConvertDepthToRadiusOperation *converter = new ConvertDepthToRadiusOperation();
+// converter->setfStop(this->getbNode()->custom3);
+// converter->setCameraObject(camob);
+// operation->setMaxBlur((int)this->getbNode()->custom4);
+// operation->setQuality(context->getQuality());
+// this->getInputSocket(0)->relinkConnections(operation->getInputSocket(0), 0, graph);
+// this->getInputSocket(1)->relinkConnections(operation->getInputSocket(1), 1, graph);
+// this->getInputSocket(2)->relinkConnections(converter->getInputSocket(0), 2, graph);
+// addLink(graph, converter->getOutputSocket(), operation->getInputSocket(2));
+// graph->addOperation(operation);
+// graph->addOperation(converter);
+// this->getOutputSocket(0)->relinkConnections(operation->getOutputSocket());
+// }
+// else {
BokehBlurOperation *operation = new BokehBlurOperation();
this->getInputSocket(0)->relinkConnections(operation->getInputSocket(0), 0, graph);
this->getInputSocket(1)->relinkConnections(operation->getInputSocket(1), 1, graph);
@@ -63,5 +63,5 @@
operation->setQuality(context->getQuality());
graph->addOperation(operation);
this->getOutputSocket(0)->relinkConnections(operation->getOutputSocket());
- }
+// }
}
Modified: branches/soc-2011-tomato/source/blender/compositor/nodes/COM_DefocusNode.cpp
===================================================================
--- branches/soc-2011-tomato/source/blender/compositor/nodes/COM_DefocusNode.cpp 2012-06-19 13:20:06 UTC (rev 48078)
+++ branches/soc-2011-tomato/source/blender/compositor/nodes/COM_DefocusNode.cpp 2012-06-19 13:48:19 UTC (rev 48079)
@@ -96,6 +96,7 @@
operation->setThreshold(data->bthresh);
addLink(graph, bokeh->getOutputSocket(), operation->getInputSocket(1));
addLink(graph, radiusOperation->getOutputSocket(), operation->getInputSocket(2));
+ addLink(graph, radiusOperation->getInputSocket(0)->getConnection()->getFromSocket(), operation->getInputSocket(3));
if (data->gamco) {
GammaCorrectOperation *correct = new GammaCorrectOperation();
GammaUncorrectOperation *inverse = new GammaUncorrectOperation();
Modified: branches/soc-2011-tomato/source/blender/compositor/operations/COM_ScreenLensDistortionOperation.cpp
===================================================================
--- branches/soc-2011-tomato/source/blender/compositor/operations/COM_ScreenLensDistortionOperation.cpp 2012-06-19 13:20:06 UTC (rev 48078)
+++ branches/soc-2011-tomato/source/blender/compositor/operations/COM_ScreenLensDistortionOperation.cpp 2012-06-19 13:48:19 UTC (rev 48079)
@@ -47,9 +47,9 @@
drg = 4.f * (kg - kr);
dgb = 4.f * (kb - kg);
- kr4 = kr * 4;
+ kr4 = kr * 4.f;
kg4 = kg * 4.f;
- kb4 *= kb * 4.f;
+ kb4 = kb * 4.f;
cx = 0.5f * (float)getWidth();
cy = 0.5f * (float)getHeight();
Modified: branches/soc-2011-tomato/source/blender/compositor/operations/COM_VariableSizeBokehBlurOperation.cpp
===================================================================
--- branches/soc-2011-tomato/source/blender/compositor/operations/COM_VariableSizeBokehBlurOperation.cpp 2012-06-19 13:20:06 UTC (rev 48078)
+++ branches/soc-2011-tomato/source/blender/compositor/operations/COM_VariableSizeBokehBlurOperation.cpp 2012-06-19 13:48:19 UTC (rev 48079)
@@ -31,15 +31,17 @@
{
this->addInputSocket(COM_DT_COLOR);
this->addInputSocket(COM_DT_COLOR, COM_SC_NO_RESIZE); // do not resize the bokeh image.
- this->addInputSocket(COM_DT_VALUE);
+ this->addInputSocket(COM_DT_VALUE); // radius
+ this->addInputSocket(COM_DT_VALUE); // depth
this->addOutputSocket(COM_DT_COLOR);
this->setComplex(true);
this->inputProgram = NULL;
this->inputBokehProgram = NULL;
this->inputSizeProgram = NULL;
+ this->inputDepthProgram = NULL;
this->maxBlur = 32.0f;
- this->threshold = 0.0f;
+ this->threshold = 1.0f;
}
@@ -48,6 +50,7 @@
this->inputProgram = getInputSocketReader(0);
this->inputBokehProgram = getInputSocketReader(1);
this->inputSizeProgram = getInputSocketReader(2);
+ this->inputDepthProgram = getInputSocketReader(3);
QualityStepHelper::initExecution(COM_QH_INCREASE);
}
@@ -56,6 +59,7 @@
float readColor[4];
float bokeh[4];
float tempSize[4];
+ float tempDepth[4];
float multiplier_accum[4] = {0.0f, 0.0f, 0.0f, 0.0f};
float color_accum[4] = {0.0f, 0.0f, 0.0f, 0.0f};
@@ -64,33 +68,36 @@
int minx = x - maxBlur;
int maxx = x + maxBlur;
{
+ inputSizeProgram->read(tempSize, x, y, COM_PS_NEAREST, inputBuffers);
+ inputDepthProgram->read(tempDepth, x, y, COM_PS_NEAREST, inputBuffers);
inputProgram->read(readColor, x, y, COM_PS_NEAREST, inputBuffers);
- color_accum[0] += readColor[0];
- color_accum[1] += readColor[1];
- color_accum[2] += readColor[2];
- color_accum[3] += readColor[3];
add_v4_v4(color_accum, readColor);
- add_v3_fl(multiplier_accum, 1.0f);
+ add_v4_fl(multiplier_accum, 1.0f);
+ float sizeCenter = tempSize[0];
+ float centerDepth = tempDepth[0]+threshold;
for (int ny = miny; ny < maxy; ny += QualityStepHelper::getStep()) {
for (int nx = minx; nx < maxx; nx += QualityStepHelper::getStep()) {
if (nx >= 0 && nx < this->getWidth() && ny >= 0 && ny < getHeight()) {
+ inputDepthProgram->read(tempDepth, nx, ny, COM_PS_NEAREST, inputBuffers);
inputSizeProgram->read(tempSize, nx, ny, COM_PS_NEAREST, inputBuffers);
float size = tempSize[0];
-// size += this->threshold;
- float dx = nx - x;
- float dy = ny - y;
- if (nx == x && ny == y) {
- /* pass */
+ if (tempDepth[0] < centerDepth) {
+ if ((sizeCenter > threshold && size > threshold) || size <= threshold) {
+ float dx = nx - x;
+ float dy = ny - y;
+ if (nx == x && ny == y) {
+ }
+ else if (size >= fabsf(dx) && size >= fabsf(dy)) {
+ float u = 256 + dx * 256 / size;
+ float v = 256 + dy * 256 / size;
+ inputBokehProgram->read(bokeh, u, v, COM_PS_NEAREST, inputBuffers);
+ inputProgram->read(readColor, nx, ny, COM_PS_NEAREST, inputBuffers);
+ madd_v4_v4v4(color_accum, bokeh, readColor);
+ add_v4_v4(multiplier_accum, bokeh);
+ }
+ }
}
- else if (size >= fabsf(dx) && size >= fabsf(dy)) {
- float u = 256 + dx * 256 / size;
- float v = 256 + dy * 256 / size;
- inputBokehProgram->read(bokeh, u, v, COM_PS_NEAREST, inputBuffers);
- inputProgram->read(readColor, nx, ny, COM_PS_NEAREST, inputBuffers);
- madd_v4_v4v4(color_accum, bokeh, readColor);
- add_v4_v4(multiplier_accum, bokeh);
- }
}
}
}
@@ -132,6 +139,10 @@
if (operation->determineDependingAreaOfInterest(&bokehInput, readOperation, output) ) {
return true;
}
+ operation = getInputOperation(3);
+ if (operation->determineDependingAreaOfInterest(&newInput, readOperation, output) ) {
+ return true;
+ }
operation = getInputOperation(0);
if (operation->determineDependingAreaOfInterest(&newInput, readOperation, output) ) {
return true;
Modified: branches/soc-2011-tomato/source/blender/compositor/operations/COM_VariableSizeBokehBlurOperation.h
===================================================================
--- branches/soc-2011-tomato/source/blender/compositor/operations/COM_VariableSizeBokehBlurOperation.h 2012-06-19 13:20:06 UTC (rev 48078)
+++ branches/soc-2011-tomato/source/blender/compositor/operations/COM_VariableSizeBokehBlurOperation.h 2012-06-19 13:48:19 UTC (rev 48079)
@@ -32,6 +32,7 @@
SocketReader *inputProgram;
SocketReader *inputBokehProgram;
SocketReader *inputSizeProgram;
+ SocketReader *inputDepthProgram;
public:
VariableSizeBokehBlurOperation();
Property changes on: branches/soc-2011-tomato/source/blender/editors/interface/interface.c
___________________________________________________________________
Modified: svn:mergeinfo
- /branches/ge_candy/source/blender/editors/interface/interface.c:45070-46163
@@ Diff output truncated at 10240 characters. @@
More information about the Bf-blender-cvs
mailing list