0
$\begingroup$

The goal: to animate blinking emission materials (Christmas Lights from a distance) in viewport materials view.

My attempt: When I manually change the emission strength, the changes are visibly reflected in the viewport. Therefore I keyframed the emmission strength to blink on and off every few seconds.

The problem: The changes in emmision strength are not reflected in an OpenGL render. This approach works beautifully in cycles, but not in OpenGL.

Cheers, Dan

$\endgroup$
  • $\begingroup$ I believe the same applies here $\endgroup$ – Duarte Farrajota Ramos Oct 31 '18 at 2:12
  • $\begingroup$ Obviously I'm missing something here but blinking lights rendered in OpenGL is something I do frequently. There are no nodes or other controls used other than the sliders in the Material slots. Am I misunderstanding the question? $\endgroup$ – Edgel3D Nov 3 '18 at 2:47
  • $\begingroup$ @Edgel3D do you have an example? It wasn't working for me. $\endgroup$ – dan_envadiv Nov 4 '18 at 16:16
  • $\begingroup$ @dan_envadiv I'll give you the Blend file and place an answer up here, Watch this space... $\endgroup$ – Edgel3D Nov 5 '18 at 17:41
1
$\begingroup$

Note - Everything here is with reference to rendering, using OpenGL...

Method 1 -

The Diffuse intensity slider cannot be keyframed in my version (2.77a) but the Colour circle's slider can. (See the note below)

Set the slider at the desired colour and level and keyframe each setting using "Constant Interpolation" (Select all it's keyframes in the Dope sheet and press T)

Unlit bulbs will then be seen in their reflective (specular) state.-

Method 2 -

Bulbs can be rendered invisible intermittently by keyframing the 'master' bulb's eye icon in the outliner.
Simply copy/paste one master-bulb's keyframes into any others. Displace as required.

This method can still provide an unlit bulb by duplicating it and shrinking that a little so it's a separate and unlit version. Each time the illuminated bulb becomes visible, it's unlit counterpart is hidden just inside it's circumference -

The reflection on the ground plane is actually coming from a point lamp located inside both bulbs. Keyframes from the outer and illuminated bulb are copied into the point lamp. (See "For Newbies" below)

Method 3 -

When multiple sequences are involved, sometimes it's simpler to just block bulb(s) from view using a large slotted mask, or individual (cubes?) around each bulb. They can be switched from mask to invisible, or simply moved out of the way. A slotted plane was used here...

Method 4 -

Use the "Noise" feature in the Graph Editor. The curves are more a graduated flickering though, although this affects reflection (specular) more than the bulb itself.

For Newbies - referring to method 2 -

Initially, the point lamp won't have an appearance in the Dope sheet for copy/pasting. Step the timeline cursor to frame zero and keyframe it's eye icon in the Outliner first.

Repetitive keyframes can either be 'cycled' in the Dopesheet or duplicated and those moved on to the end of the original sequence. Select all of those and duplicate them again so you then have 4 sets of keyframes, then 8, then 16, 32, 64 etc.
Within a minute, an impressive number of repetitive keyframes can be produced.

-================-

NOTE - For Method 1 above -

When switching between full emission and none in the Material slot -

Don't tick the shadeless box. Instead use zero and maximum values in the "Emit" slider and set interpolation (T) to "Constant" for all keyframes.

If the lights don't flash when animation is playing, stop the playback, select the lazy bulb and advance the timeline cursor. When it's in a switched-on phase, tick the Shadeless box on and off. In my machine and Blender vers (2.77a) this kickstarts the blinking process.

The attached Blend file can be used to test if the Diffuse sliders suggested will work on your own machine and version of Blender. Use the kickstart suggestion to get Layer 1 working properly. Layer 6 uses a slotted plane.

Both are best viewed through the camera. (np Ins key)

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.