smoke flow jitters around flow source when using adaptive domain #58492

Closed
opened 2018-12-02 03:57:56 +01:00 by Chris heaton · 39 comments

System Information
Operating system: windows 10
Graphics card: nvidia gt970 4gb

Blender Version
Broken: smoke simulation

2.80 beta 0f5b53ba4d

smoke simulation jitters around in the domain when adaptive domain is used instead of flowing naturally.

Exact steps for others to reproduce the error
make a smoke domain from the default cube, and add a new cubemake it smaller and aply the scale. then make it a smoke flow object. set the adaptive domain and bake the sim. on playback/render the smoke moves around the source cube instead of flowing from a fixed position. smoke test.blend

**System Information** Operating system: windows 10 Graphics card: nvidia gt970 4gb **Blender Version** Broken: smoke simulation 2.80 beta 0f5b53ba4dc smoke simulation jitters around in the domain when adaptive domain is used instead of flowing naturally. **Exact steps for others to reproduce the error** make a smoke domain from the default cube, and add a new cubemake it smaller and aply the scale. then make it a smoke flow object. set the adaptive domain and bake the sim. on playback/render the smoke moves around the source cube instead of flowing from a fixed position. [smoke test.blend](https://archive.blender.org/developer/F5785048/smoke_test.blend)
Author

Added subscriber: @Chrisheaton

Added subscriber: @Chrisheaton

#60488 was marked as duplicate of this issue

#60488 was marked as duplicate of this issue

#60237 was marked as duplicate of this issue

#60237 was marked as duplicate of this issue

#59463 was marked as duplicate of this issue

#59463 was marked as duplicate of this issue

#59252 was marked as duplicate of this issue

#59252 was marked as duplicate of this issue

#59166 was marked as duplicate of this issue

#59166 was marked as duplicate of this issue

#58996 was marked as duplicate of this issue

#58996 was marked as duplicate of this issue

#58826 was marked as duplicate of this issue

#58826 was marked as duplicate of this issue

#58642 was marked as duplicate of this issue

#58642 was marked as duplicate of this issue

#58545 was marked as duplicate of this issue

#58545 was marked as duplicate of this issue

#58487 was marked as duplicate of this issue

#58487 was marked as duplicate of this issue
Member

Added subscriber: @scorpion81

Added subscriber: @scorpion81
Member

Can confirm the jittering behavior. Last known good commit is e60c49ecf0 from November 25, 2018. (that time i last merged 2.8 into temp-fracture-modifier-2.8, and it works in the branch)
So i am trying to git bisect now from there till HEAD to find the faulty commit... I keep you posted.

Can confirm the jittering behavior. Last known good commit is e60c49ecf06815039137c98f86a7198d6ee81e14 from November 25, 2018. (that time i last merged 2.8 into temp-fracture-modifier-2.8, and it works in the branch) So i am trying to git bisect now from there till HEAD to find the faulty commit... I keep you posted.
Member

And the winner is : 33cbcd7344 from November 26, 2018 , question is how to fix that... hmm

And the winner is : 33cbcd73448fb1cedc083c2b1fb9a27489d09432 from November 26, 2018 , question is how to fix that... hmm

Added subscriber: @Crumpley

Added subscriber: @Crumpley

Added subscribers: @Zexyp, @StephenSwaney, @JeannotLandry

Added subscribers: @Zexyp, @StephenSwaney, @JeannotLandry

Added subscriber: @jokershadow

Added subscriber: @jokershadow
Bastien Montagne changed title from smoke flow jitters around flow source to smoke flow jitters around flow source when using adaptive domain 2018-12-03 21:13:04 +01:00

Added subscriber: @taraku1991

Added subscriber: @taraku1991

Added subscribers: @fclem, @mont29

Added subscribers: @fclem, @mont29
Clément Foucault was assigned by Bastien Montagne 2018-12-06 11:39:20 +01:00

In fact, I believe this is a drawing issue, probably smoke draw code assuming texspace would be the one of the final evaluated mesh or something like that? Smoke simulation code itself at least is not affected by that afaict, it computes its own bbox…

When adaptive domain is enabled, that bbox is recomputed for every frame, and the 'mesh' domain size adjusted as needed, while for fixed domain it is only computed once (and current drawing with adaptive domain on is not only jittering, it is also clearly over-scaled).

I can look further into this if needed, but maybe it’s simpler for @fclem to first have a look and see if fix is simple from drawcode side (knowing that mesh's texspace should now always be orig mesh one, and no more recomputed from final eval mesh)?

In fact, I believe this is a drawing issue, probably smoke draw code assuming texspace would be the one of the final evaluated mesh or something like that? Smoke simulation code itself at least is not affected by that afaict, it computes its own bbox… When adaptive domain is enabled, that bbox is recomputed for every frame, and the 'mesh' domain size adjusted as needed, while for fixed domain it is only computed once (and current drawing with adaptive domain on is not only jittering, it is also clearly over-scaled). I can look further into this if needed, but maybe it’s simpler for @fclem to first have a look and see if fix is simple from drawcode side (knowing that mesh's texspace should now always be orig mesh one, and no more recomputed from final eval mesh)?

Added subscriber: @Facu

Added subscriber: @Facu

Added subscriber: @lemenicier_julien

Added subscriber: @lemenicier_julien

Added subscriber: @SeanKennedy

Added subscriber: @SeanKennedy

So this is not a drawing issue. The texspace should be set accordingly for the adaptive domains (which is only valid on the evaluated mesh since it changes size).

So the update need to be propagated down somehow.
However, BKE_object_dimensions_get() does work fine so the actual bounding box is correct.
It seems that the bbox is changed somewhere by the smoke sim.

Also @scorpion81 said on IRC that the texspace is used indirectly by the transform code and that it also behaves strangely.

So this is not a drawing issue. The texspace should be set accordingly for the adaptive domains (which is only valid on the evaluated mesh since it changes size). So the update need to be propagated down somehow. However, BKE_object_dimensions_get() does work fine so the actual bounding box is correct. It seems that the bbox is changed somewhere by the smoke sim. Also @scorpion81 said on IRC that the texspace is used indirectly by the transform code and that it also behaves strangely.

Well, in most cases we want to keep texspace from orig mesh (i.e. not take into account changes from modifier stack). Otherwise, you get fluctuating texturing when modifiers change bounds of the geometry. So question here is: do we want/need to make an exception for domain of smoke sim (and maybe others? Though iirc fluid e.g. generated geometry, not a 3D texture…)?

Well, in most cases we want to keep texspace from orig mesh (i.e. not take into account changes from modifier stack). Otherwise, you get fluctuating texturing when modifiers change bounds of the geometry. So question here is: do we want/need to make an exception for domain of smoke sim (and maybe others? Though iirc fluid e.g. generated geometry, not a 3D texture…)?
Clément Foucault was unassigned by Bastien Montagne 2018-12-11 19:12:41 +01:00
Bastien Montagne self-assigned this 2018-12-11 19:12:41 +01:00

Added subscriber: @mythcat

Added subscriber: @mythcat

Added subscriber: @TheCharacterhero-4

Added subscriber: @TheCharacterhero-4
Added subscriber: @Iago-Diogo-de-Vasconcelos-Mota

Added subscriber: @NathanWondrak

Added subscriber: @NathanWondrak

Added subscriber: @Carlosan

Added subscriber: @Carlosan

Is this bug a regression related to this issue ?
https://developer.blender.org/T43061

Is this bug a regression related to this issue ? https://developer.blender.org/T43061

This issue was referenced by 3891ad8e03

This issue was referenced by 3891ad8e03176d993b8082292638117a2963f931

Changed status from 'Open' to: 'Resolved'

Changed status from 'Open' to: 'Resolved'

I’ve already spent way too much time on this, with very little real result so far.

I am pretty sure that smoke simulation code itself is not affected, afaict before/after 33cbcd7344 we have the same result on simulation itself.

Also, 33cbcd7344 is only revealing the problem, before that commit you can get exact same bug by disabling auto texspace in mesh options (for the domain one).

So I would suspect something wrong going with pointcache (and/or the way it is used by the renderers), but am really, like really not familiar with this code. For now, I'll hack a workaround re-enabling autotexspace (and even forcing it) on domain mesh generated by smoke sim process, that will at least cure the symptoms, in lack of medicine for the illness itself...

I’ve already spent way too much time on this, with very little real result so far. I am pretty sure that smoke simulation code itself is not affected, afaict before/after 33cbcd7344 we have the same result on simulation itself. Also, 33cbcd7344 is only revealing the problem, before that commit you can get exact same bug by disabling auto texspace in mesh options (for the domain one). So I would suspect something wrong going with pointcache (and/or the way it is used by the renderers), but am really, like really not familiar with this code. For now, I'll hack a workaround re-enabling autotexspace (and even forcing it) on domain mesh generated by smoke sim process, that will at least cure the symptoms, in lack of medicine for the illness itself...

Added subscriber: @sebbas

Added subscriber: @sebbas

Changed status from 'Resolved' to: 'Open'

Changed status from 'Resolved' to: 'Open'

Think this bug is back - bb88485a16 distorts smoke with the adaptive domain.

It's also present in the Mantaflow branch. I am going to look into this and see if I can find something.

Think this bug is back - bb88485a1693751baff8a61917987323dbee654a distorts smoke with the adaptive domain. It's also present in the Mantaflow branch. I am going to look into this and see if I can find something.
Bastien Montagne removed their assignment 2019-05-20 13:23:07 +02:00
Sebastián Barschkis was assigned by Bastien Montagne 2019-05-20 13:23:07 +02:00

This issue was referenced by 1036ae2acd

This issue was referenced by 1036ae2acdea7b0d2988cd458ac5c409905d211f

Changed status from 'Open' to: 'Resolved'

Changed status from 'Open' to: 'Resolved'
Sign in to join this conversation.
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
10 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: blender/blender#58492
No description provided.