Video texture / Image Sequence not refreshing under eevee #57457
Labels
No Label
Interest
Alembic
Interest
Animation & Rigging
Interest
Asset Browser
Interest
Asset Browser Project Overview
Interest
Audio
Interest
Automated Testing
Interest
Blender Asset Bundle
Interest
BlendFile
Interest
Collada
Interest
Compatibility
Interest
Compositing
Interest
Core
Interest
Cycles
Interest
Dependency Graph
Interest
Development Management
Interest
EEVEE
Interest
EEVEE & Viewport
Interest
Freestyle
Interest
Geometry Nodes
Interest
Grease Pencil
Interest
ID Management
Interest
Images & Movies
Interest
Import Export
Interest
Line Art
Interest
Masking
Interest
Metal
Interest
Modeling
Interest
Modifiers
Interest
Motion Tracking
Interest
Nodes & Physics
Interest
OpenGL
Interest
Overlay
Interest
Overrides
Interest
Performance
Interest
Physics
Interest
Pipeline, Assets & IO
Interest
Platforms, Builds & Tests
Interest
Python API
Interest
Render & Cycles
Interest
Render Pipeline
Interest
Sculpt, Paint & Texture
Interest
Text Editor
Interest
Translations
Interest
Triaging
Interest
Undo
Interest
USD
Interest
User Interface
Interest
UV Editing
Interest
VFX & Video
Interest
Video Sequencer
Interest
Virtual Reality
Interest
Vulkan
Interest
Wayland
Interest
Workbench
Interest: X11
Legacy
Blender 2.8 Project
Legacy
Milestone 1: Basic, Local Asset Browser
Legacy
OpenGL Error
Meta
Good First Issue
Meta
Papercut
Meta
Retrospective
Meta
Security
Module
Animation & Rigging
Module
Core
Module
Development Management
Module
EEVEE & Viewport
Module
Grease Pencil
Module
Modeling
Module
Nodes & Physics
Module
Pipeline, Assets & IO
Module
Platforms, Builds & Tests
Module
Python API
Module
Render & Cycles
Module
Sculpt, Paint & Texture
Module
Triaging
Module
User Interface
Module
VFX & Video
Platform
FreeBSD
Platform
Linux
Platform
macOS
Platform
Windows
Priority
High
Priority
Low
Priority
Normal
Priority
Unbreak Now!
Status
Archived
Status
Confirmed
Status
Duplicate
Status
Needs Info from Developers
Status
Needs Information from User
Status
Needs Triage
Status
Resolved
Type
Bug
Type
Design
Type
Known Issue
Type
Patch
Type
Report
Type
To Do
No Milestone
No project
No Assignees
33 Participants
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: blender/blender#57457
Loading…
Reference in New Issue
No description provided.
Delete Branch "%!s(<nil>)"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
{F5282778}System Information
Mac OSX and gtx 980 ti
Blender Version
Broken: 2.80.0
3bc8bc0709
When navigating in timeline, shader with video texture doesn't refresh with eevee , but it's working when I switch to cycles
EDIT: same result in viewport or render (ctrl F12)
Added subscriber: @Ericserpi
#61680 was marked as duplicate of this issue
#60878 was marked as duplicate of this issue
#60728 was marked as duplicate of this issue
#60716 was marked as duplicate of this issue
#60644 was marked as duplicate of this issue
#56715 was marked as duplicate of this issue
#60414 was marked as duplicate of this issue
#60371 was marked as duplicate of this issue
#60297 was marked as duplicate of this issue
#59394 was marked as duplicate of this issue
#60255 was marked as duplicate of this issue
#60035 was marked as duplicate of this issue
#60026 was marked as duplicate of this issue
#59148 was marked as duplicate of this issue
#59277 was marked as duplicate of this issue
#59139 was marked as duplicate of this issue
#58418 was marked as duplicate of this issue
#58804 was marked as duplicate of this issue
#58724 was marked as duplicate of this issue
#58052 was marked as duplicate of this issue
Added subscriber: @lichtwerk
Please always provide a simple .blend file that demonstrates the issue.
(It takes time setting these up -- also it makes sure we are all on the same page then)
also: is this about viewport rendering (or F12?)?
Marking as incomplete until we have these...
Added subscriber: @fclem
Confirmed.
Before digging deeper: @fclem: is this a known limitation atm.?
Nope. It's something that seems to have been remove when removing the BGE. I know nothing on how it was done before and what would be the best way to reimplement this.
Well I hoped something like that would work:
But GPU_texture_from_blender does not do anything with
time
...Will also have a look tomorrow [cycles seems to be updating -- in rendered view...]
Added subscriber: @MarceloBeck
Added subscriber: @mhcall
Added subscriber: @al.mijn.email
Hi Philipp,
I have added a testfile Kati_test.blend.
The Clip I could not pack into blender, so I add the mp4 clip in addition (zip).
The Video texture is 2009 12 26 Kati 2_1.zip.
No timeline reresh and no frame refresh with Ctrl+F12.
Added subscriber: @vistula_waves
Added subscriber: @zanqdo
Hi, any update or workaround on this issue? We're being hit by it :)
Well in case anyone else needs it urgently, for now I've hacked it with a frame change handler. It works in viewport and render but only if the image editor is present :p
Hi Daniel,
Thank you very much for taking care!
The script runs well in the Image Editor, however I couldn't manage to run it in the render view, please see my test Image added here.
May be I made a mistake…?
Added subscriber: @Zacc
@mhcall You have a typo in line 4.
Thanks, Daniel!
Repaired… nevertheless… no Ctrl+F12 result… stucks at one Frame.
Scrolling timeline, the Image Editor refreshes well, though.
and.. which built is in use at your site?
@mhcall It does work with rendering animation for me
@mhcall I see you have 2 copies of the movie, the one your referencing in the script is Kati.mp4, the one in the image editor is Kati.mp4.001
The image editor has to have the same movie displayed.
Yes, you're right. I reloaded the orgingal 'Kati.mp4'.. however, it won't seem to work in the render view.
This is my current blender Version
And this was - at least at my place here - the last 2.8x blender Version, which worked well with animated textrues:
Eventually this hint might help to locate the "bug" (?)....t.
for easy copy paste:
Added subscribers: @VFX_Man, @StephenSwaney
I don't know what else to say :) The hack works for me. Did you actually execute the script? In my original screenshot I have the Register option enabled. This makes it so that the script is executed automatically on load. Also the Auto Run Python Scripts preference must be enabled..
This comment was removed by @zanqdo
OK I found a hack for the hack :) When rendering doesn't work, you can render a "Playblast" with View/Viewport Render Animation.
The problem is the viewport render doesn't respect sample settings..
Added subscriber: @jmekiff
Added subscriber: @MarcelLegindi
Added subscriber: @ReljaTrajkovic
Added subscriber: @ArsenMikitov
Thank you, great man! This way works for me! At first there were problems, but I saw the "Register" switch in the text editor. When I turned it on, the script worked. Now I see animated textures :) Super.
Blender 2.80 beta. Linux Ubuntu x64. Eevee. RTX-2080Ti.
Added subscriber: @VladimirKunyansky
@zanqdo , I tried your option and it works, thanks!
BUT!
Having tested several versions (now checked on the last
1fc75dbbce
) and video texture is updating only when several conditions is true:only the active object is updated, but not selected (provided that there are several objects with different video textures in the scene);
the texture is updated only if a node with a texture is selected in the shader settings window;
the texture is updated only when the N-panel is open (in shader window) and when the "Properties" tab is expanded.
If all conditions are met, the texture is updated even when rendered.
Update:
Oh. Sorry. "If the image editor is present" - i see.
The working variant for several objects with video textures is to open several working windows with image editors and in each of them open different textures.
Added subscriber: @De3n
I don't know, if this can help, but i finded deleted code from internal render for update image sequences and movies in (https://developer.blender.org/rB51b796ff1528c52cc8b4079fab1003671652a4d9):
file: source/blender/render/intern/source/render_texture.c
line: 3827
Added subscriber: @technoendo
I grabbed Blender 2.80
0661bcba32
from 12/27/2018 and was having some problems with an h264/mov video file used as a texture in Eevee when I was pleased to see a bug was already filed. I tried the frame change handler workaround mentioned by zanqdo, which did update the image viewer + 3d view but ctrl+f12 rendering out animations behaves strangely. Usually the first frame will render out as expected, so rendering out 1 frame (f12) does work, but subsequent frames in an animation will be black in the areas where the movie texture should be.Next, I used ffmpeg to extract every frame of the h264/mov video as png images. In this case the frame change handler workaround is not needed. I still get similar results: I can scrub through my timeline and see the entire video updating with each frame update as expected (in eevee 3d viewport and in the image viewer), but again... when I render the first frame renders OK but subsequent frames have bright pink where the image sequence should be.
Rendering individual frames (f12) does yield the expected output in the render buffer which can be saved to a file. This is a painful way to render an animation doing this manually in the UI.
This made me wonder if I could do some command line render tricks, run a bash while loop to iterate on every frame, and run blender -b file.blend -f $frame? This did not work and the video frames were always the first frame from the video/image sequence. I also tried "-a" to render out the entire animation instead of specifying it frame by frame and also had the same problem of only the first frame of the video/image sequence being used.
I tried 4 other builds of Blender 2.80 from late November through today and results were all consistent. In reading this thread I think I'm in the same spot as @mhcall. That a bit of python is required to get the 3d viewport updated so its in sync with the image viewer, which fixes f12 renders, but this does not allow ctrl-f12 animations to render.
Yes, I was also happy at first that the texture works, but Ctrl+F12 gives a texture with blinking black images.
@Ian-117 Garrison's and @Arsen Mikitiov's expereinces are correct.
Unfortunately the Ctrl+F12 coommand results in wierd animations with partly pink Frames and "Blackout" all over.
My personal workaround since is this:
I take all respective objects incl. the camera + paths into Cycles 2.7.94 (in my opinion the best and fastest Cycles build ever, #bae880d as from 2018-05-25). Then I apply a HOLDOUT material to all objects that might hide or partly cover the movie clip texture plane. The rendered sequence I put as an additional layer on top of the original sequence (into After Effects for example)…. and this works smoothly.
The time loss with this workaround is half way acceptable. However it would be so great if the 2.8x beta would be "healed"....
Guys what I had to do is rendering with the Render OGL way from the viewport, it lacks quality controls but it works with movies with my workaround. Hope that helps!
Added subscriber: @Gie
Added subscriber: @antoine.clenet
@fclem , if you give a hint, then I can help with finding a problem. In my opinion, this is due to BKE_image_user_check_frame_calc, since I found a similar problem:
https://lists.blender.org/pipermail/bf-blender-cvs/2013-May/056122.html
Added subscriber: @KyleAustin
Added subscribers: @gigi-4, @Serra1973, @Kavukamari
Added subscriber: @MikeFutcher
Thanks for that excellent little script quick-fixing this bug, Daniel Salazar (zanqdo). You'll be pleased to know it works for videos in environment textures as well. Do you mind if I include it in a tutorial I have planned? How would you like to be credited?
Ahh.. but it doesn't work for looping videos.
And for some even more bazaar reason - it won't go past frame 97. I guess it's a memory problem? Tried the same scene with a few different videos in the same scene so far... but I might make this reporting bugs on a script rather than Blender if I'm not careful. I guess I'll be putting my greenscreen nodegroup for material nodes on hold.
@MikeFutcher let's just hope this get's fixed properly :)
Surely video textures and image sequences will be debugged if the Spring movie team requires their use! ;-)
Very nice work in progress to see on the cloud of blender :-)
Added subscriber: @istoltoto
Video texture not refreshing under eeveeto Video texture / Image Sequence not refreshing under eeveeThanks for the script Daniel
However, it seems that it doesn't work when you change the Start Frame to something higher.
But a very good workaround till the bug is solved.
Added subscribers: @Sergey, @brecht
Also had a quick look and as a starting point it seems GPUInput
input->iuser
Image User was always NULL. [without the image user you dont have access to framnumber etc...]I tried to fix this and building upon what @fclem tried I get something that updates movies [sequences also -- but only if the image node has a keyframe, that's another issue to solve...] with flickering. [eh, another issue to solve]
Thought I should drop this here so it is not lost: P888: #57457 snippet
maybe we should get @brecht and @Sergey on board?
Added subscriber: @Ekiwnox
@brecht, @Sergey: not sure whom to assign this to? (I could spend more time investigating, but maybe it is obvious to one of you?)
btw. we have this working (refreshing sequences and movies) in camera background images, see
view3d_draw_bgpic
, but implementation is different/separate fromGPU_texture_from_blender
in that it does the whole drawing [not just the texture refresh...]Added subscribers: @AJ-200, @ideasman42, @mont29
Marking as high priority since this gets reported often.
This is a rather complicated issue caused mainly by copy-on-write changes. Previously on each frame change Blender would loop over (most) image users, recalculate the frame number and free the GPU texture if needed.
It did not do this for Cycles/Eevee image texture nodes in materials, only BI materials. That is easily solved, though for best playback performance it could be done in a smarter way than before.
The main issue however is copy-on-write. Both the original and COW datablocks need to be updated. This could be done as part of the depsgraph now for image users that are in the depsgraph, marking such materials or objects as depending on time.
Refreshing the GPU texture is problematic as well. Currently each image datablock stores and owns a single GPU texture at a single frame. However it is now possible to have multiple depsgraphs each at their own time. A proper solution to this likely means moving ownership of the GPU texture from the image to the image user or depsgraph, or having some kind of caching system.
Added subscriber: @Pastel
Added subscriber: @PerKofodHansen
Added subscriber: @CyberLuden
Added subscribers: @ChristopherCarroll, @WilliamReynish
Hey,
Some news about this?
Added subscriber: @(Deleted)
Added subscriber: @OcularSorcerer
I just discovered that if you toggle the sidebar (N) in the image editor, it gives you options to change the amount of frames to use in a movie/image sequence. This seems to be unaffected by the settings on the image texture node.
Still trying to figure out how to use more than one image sequence texture....any solutions?
@OcularSorcerer , Yep.
The working variant for several objects with video textures is to open several working windows with image editors and in each of them open different textures:
Added subscriber: @iSpeedy
Added subscriber: @semimetallic-1
Daniel Craven (Craven) - thankyou! I will be putting a tutorial together on this in the next week.
Removed subscriber: @istoltoto
Added subscriber: @FranAlburquerque
Same problem here in two scenarios:
When will the bug get fixed?
@lichtwerk , i try to compile blender (
da1da3053d
) with your solution, but your variant don't give needed result (black material with video texture and pink - with sequences).Working variant with this code in node_shader_tex_image.c :
That give expected result (video and sequences update in viewport but render - sequences is flickering), but only when object is selected and active.
Added subscriber: @DominikR
Someone can help with it? I don't understand some strings:
in all BKE_image update/check frame/etc uses cfra as integer.
But in GPU_texture_from_blender used time in double.
Ofcourse, in sequences/video textures logically to use integer (as frames). So, why using double?
Added subscriber: @darylsautter
Added subscriber: @DavidGladstein
Added subscriber: @bent
This comment was removed by @istoltoto
I would like to send some resources for this problem particularly to speed the process, is it possible?
I support. Ready to transfer money for a speedy solution to the problem. Where to transfer?
It's being worked on, just requires some deep changes to the dependency graph and GPU image loading code to work properly in 2.8.
Thanks for the heads up @brecht
Added subscriber: @mhoff
Thank you @brecht I'm broadcast tv director. We are designing a tv show with a real time dynamic CGenerated scenography. Because of Eevee Blender can be ideal for that. But the real time movie clip elements insertion\playback is obviously crucial. We need a lot of video contribution in scenography. Have you an idea of how much time will take the fix? Thank you so much.
Added subscriber: @Allucinari
Added subscriber: @Yanis
This issue was referenced by
0e3a2acbfa
Added subscriber: @pm
Added subscriber: @knekke
Also very interested in this!!
As another workaround:
Now you can scrub the timeline and see the changes.
ah, well...nevermind... workaround has been posted before
+1
I can donate $ 40.
... so, for this problem I think 1000$ is not enough.
Added subscriber: @StickMeister125
Changed status from 'Open' to: 'Resolved'
Thank goodness!
Thank you Brecht Van Lommel ???
You were always my hero, right after you created Cycles!
I knew you could do it!
@brecht , I do not refuse my words, please tell me where to transfer money?
Thank you so much!
@VladimirKunyansky: anyone is welcome to contribute to the development fund, this bugfix was funded by it.
https://fund.blender.org/
@brecht , I wanted to thank You personally, but the support of the whole team is also important. Thank you very much for the work!
If you're not already subscribed to https://fund.blender.org/ go do it now! You can start as low as $6 a month :)
Thanks @brecht !
Thanks so much Blender team - you are the most awesome people ! - I am so gratefull for the work you do! This fix was really important to me as well :)
Removed subscriber: @De3n
Is it functional in 2.8 -
6bab905c9d
? If so, it is only working with open node editor and active texture node - with properties. Is that right?@MarcelLegindi Download latest build from https://builder.blender.org/download/ it should work out of trthe box. Remember to set the frame range correctly in the node
Added subscriber: @daniel-34
@daniel-34 Salazar (zanqdo) Downloaded last build as before, but now is the
893fa59831
. But not working - blend file inside. And technique what I using is there: https://blender.stackexchange.com/questions/124813/image-texture-node-image-sequence-control-by-sliderIt is working only with open node editor and active texture node. Without it is not functional. I used this technique for automate rigging puppet phases - hands, eyes, mouth etc.
image_sequence_02.blend
I also have some troubles when doing opengl previews. I have a batchscript that starts Blender, replaces the background sequence, renders a opengl preview (because 10x faster than regular evee rendering) from different cameras and quit.
The backgroundsequences can either be png-seqences or mp4 files and the script does the switching and setting offsets. But the rendering is very unreliable and often I end up with only 3 animated frames and then a freeze, or the background is not moving at all. When I open up the scene everything looks fine in the viewport and scrubbing the timeline works. I couldn't detect a pattern yet.
If there are further specific issues with image sequences, please create new bug reports.
But it is same problem as before ... If we created new report we will wait for enough people with same problem then it will be in progress, so it may be long time story.
This comment was removed by @(Deleted)
Please do create new bug report, this is working for many cases so if there is a bug it's related to some specific setup. And for that it is best to have an own report with .blend and clear steps to redo. It also means we don't send mails to 50+ people subscribed to this task for a bug that is not relevant to them.
You need to enable the Autorefresh option in the node
No no, it’s not working with enable autorefresh neither withou it.
Removed subscriber: @PerKofodHansen
Its work but there is still a little bug on autorefresh command. (on my system) Justreassign material you are working on to object in the shader editor when you finish your node assigning video texture etc (remember to set total frame number, activate cyclic and auto refresh) hit play and movie or image sequence work perfectly. If not video remain stopped to first frame. I noted with pleasure same video shader/material is shareable over undefined object number.
Your scene is set to cycles, this is supposed to be a feature for eevee :s
@daniel-34 Salazar (zanqdo) and did you try it in eevee ?
I am sorry guys, but this my example is not functional on win 7, win 10, cycles or eevee its some kind of system problem, I don't know where exactly it is. I was looking forward to working with puppets, you know ... I am only sad nothing else. From my perspective its one big problem, very difficult problem, but the solution is on half way and I don't know how can I help, because I would like to help of course.
Why do you have that driver setup in the offset?
There's already a separate bug report for @MarcelLegindi's case: #61937 (Image sequence offset driver has no effect without node editor)
It's been confirmed and will be worked on, no need to discuss it here.