View Single Post
  #1  
Old 05-02-2015, 02:16 PM
MissingAFew MissingAFew is offline
Member
 
Join Date: Apr 2015
Posts: 15
Updating a Postprocessing effect

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?
Reply With Quote