Jump to content


Photo

Blur To Black (Eliminate Nan Pixels)


  • Please log in to reply
8 replies to this topic

#1 treeloy

treeloy

    Flying Pig

  • Adv Members
  • PipPipPipPipPip
  • 91 posts

Posted 02 November 2011 - 07:06 AM

I'm using a 0.1 Blur on an OpenEXR image sequence that was rendered out of a 3D scene in Fusion to reduce the hard edges a bit. Some frames are rendering black with no error message. When I remove the blur, it renders out fine so I can only assume it has something to do with the blur or at least the blur in combination with something else. Anyone have this happen before? I unfortunately cannot yet supply a scene/example.

#2 protean

protean

    Flying Pig

  • Adv Members
  • PipPipPipPipPip
  • 230 posts

Posted 02 November 2011 - 07:58 AM

Try not using Gaussian. I've had issues where some glow and blur types on float images give strange results on intermittent frames. Maybe something to do with negative values I'm not really sure

J

#3 ChadCapeland

ChadCapeland

    Flying Pig

  • Adv Members
  • PipPipPipPipPip
  • 1,975 posts

Posted 02 November 2011 - 09:08 AM

Verify that none of the pixels are NaN or QNaN.

#4 Tilt

Tilt

    Flying Pig

  • Adv Members
  • PipPipPipPipPip
  • 2,137 posts

Posted 02 November 2011 - 09:32 AM

yep, it's probably the dreaded NaN pixels. I use this to detect them:

{
Tools = ordered() {
  Detect_Gremlins = Custom {
   CtrlWZoom = false,
   NameSet = true,
   Inputs = {
    LUTIn1 = Input {
	 SourceOp = "Detect_GremlinsLUTIn1",
	 Source = "Value",
    },
    LUTIn2 = Input {
	 SourceOp = "Detect_GremlinsLUTIn2",
	 Source = "Value",
    },
    LUTIn3 = Input {
	 SourceOp = "Detect_GremlinsLUTIn3",
	 Source = "Value",
    },
    LUTIn4 = Input {
	 SourceOp = "Detect_GremlinsLUTIn4",
	 Source = "Value",
    },
    Intermediate1 = Input { Value = "max(r1, max(g1, b1))", },
    RedExpression = Input { Value = "if(i1 <=  0 | i1 > 0, r1/3 , 1)", },
    GreenExpression = Input { Value = "g1/3", },
    BlueExpression = Input { Value = "b1/3", },
    AlphaExpression = Input { Value = "if(i1 <=  0 | i1 > 0, 0 , 1)", },
    ShowNumber1 = Input { Value = 0, },
    ShowNumber2 = Input { Value = 0, },
    ShowNumber3 = Input { Value = 0, },
    ShowNumber4 = Input { Value = 0, },
    ShowNumber5 = Input { Value = 0, },
    ShowNumber6 = Input { Value = 0, },
    ShowNumber7 = Input { Value = 0, },
    ShowNumber8 = Input { Value = 0, },
    ShowPoint1 = Input { Value = 0, },
    ShowPoint2 = Input { Value = 0, },
    ShowPoint3 = Input { Value = 0, },
    ShowPoint4 = Input { Value = 0, },
    Comments = Input { Value = "Detects render errors (pixels with \"infinite\" float values). They are tinted red for debugging and the alpha channel is an error mask.", },
   },
   ViewInfo = OperatorInfo { Pos = { 275, 115.5, }, },
  },
  Detect_GremlinsLUTIn1 = LUTBezier {
   KeyColorSplines = {
    [0] = {
	 [0] = { 0, RH = { 0.333333333333333, 0.333333333333333, }, Flags = { Linear = true, }, },
	 [1] = { 1, LH = { 0.666666666666667, 0.666666666666667, }, Flags = { Linear = true, }, },
    },
   },
   SplineColor = { Red = 204, Green = 0, Blue = 0, },
   NameSet = true,
  },
  Detect_GremlinsLUTIn2 = LUTBezier {
   KeyColorSplines = {
    [0] = {
	 [0] = { 0, RH = { 0.333333333333333, 0.333333333333333, }, Flags = { Linear = true, }, },
	 [1] = { 1, LH = { 0.666666666666667, 0.666666666666667, }, Flags = { Linear = true, }, },
    },
   },
   SplineColor = { Red = 0, Green = 204, Blue = 0, },
   NameSet = true,
  },
  Detect_GremlinsLUTIn3 = LUTBezier {
   KeyColorSplines = {
    [0] = {
	 [0] = { 0, RH = { 0.333333333333333, 0.333333333333333, }, Flags = { Linear = true, }, },
	 [1] = { 1, LH = { 0.666666666666667, 0.666666666666667, }, Flags = { Linear = true, }, },
    },
   },
   SplineColor = { Red = 0, Green = 0, Blue = 204, },
   NameSet = true,
  },
  Detect_GremlinsLUTIn4 = LUTBezier {
   KeyColorSplines = {
    [0] = {
	 [0] = { 0, RH = { 0.333333333333333, 0.333333333333333, }, Flags = { Linear = true, }, },
	 [1] = { 1, LH = { 0.666666666666667, 0.666666666666667, }, Flags = { Linear = true, }, },
    },
   },
   SplineColor = { Red = 204, Green = 204, Blue = 204, },
   NameSet = true,
  },
},
ActiveTool = "Detect_Gremlins",
}

Then you can clamp them and fill them with surrounding pixels using the RankFilter.

#5 redoddity

redoddity

    Flying Pig

  • Adv Members
  • PipPipPipPipPip
  • 190 posts

Posted 02 November 2011 - 09:36 AM

We've had those too on occasion, i believe we fix those with a Custom Tool with max(-99999,min(c1,99999)) in each channel, or when float data above 1 doesn't have to be preserved a BC with clip black and white.

#6 treeloy

treeloy

    Flying Pig

  • Adv Members
  • PipPipPipPipPip
  • 91 posts

Posted 02 November 2011 - 09:57 AM

Thanks all. That solved it.
Tilt: Detect Gremlins......is that the standard name or yours? I had to laugh.

#7 Kristof

Kristof

    Flying Pig

  • Adv Members
  • PipPipPipPipPip
  • 263 posts

Posted 30 November 2011 - 12:49 PM

yep, it's probably the dreaded NaN pixels. I use this to detect them


Clever trick and yes, it is a funny yet appropriate name for such a tool. :) Thanks.

#8 Tilt

Tilt

    Flying Pig

  • Adv Members
  • PipPipPipPipPip
  • 2,137 posts

Posted 30 November 2011 - 01:36 PM

just don't feed it after midnight :-)

#9 Kristof

Kristof

    Flying Pig

  • Adv Members
  • PipPipPipPipPip
  • 263 posts

Posted 30 November 2011 - 01:43 PM

Hehe, and never get those gremlins wet! Instant NaN multiplication.




0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users