I'd like to be able to modify and update a postprocessing effect in a loop for a particular effect. Specifically, I'm wanting to modify BulgeAmount such that it loops and interpolates between -0.5 and 0.5:
Code:
effect = BulgeEffect(BulgeAmount)
vizfx.postprocess.addEffect(effect)
I tried using the director function to create a new thread and have it loop separately from the main thread but it crashed. This is the code I tried:
Code:
import viz
import viztask
import vizfx.postprocess
from vizfx.postprocess.distort import PincushionEffect
def UpdateDrunkEffect():
DrunkValue = 0
Modulate = True
Length = 60
while True:
if DrunkValue <= 0:
Modulate = True
if DrunkValue >= 1:
Modulate = False
Length -= 1
if Modulate:
DrunkValue += .01
else:
DrunkValue -= .01
effect = PincushionEffect(DrunkValue)
vizfx.postprocess.addEffect(effect)
if Length == 0:
effect = PincushionEffect(0)
vizfx.postprocess.addEffect(effect)
break
viz.director( UpdateDrunkEffect )
Is there a better way to do this that I'm just not thinking of? How can I go about changing the postprocessing effect in a loop without it freezing the application?