Author Topic: Interactive only calculating displacement for initial position FOV  (Read 2211 times)

2018-03-25, 21:39:21

Jpjapers

  • Active Users
  • **
  • Posts: 1725
    • View Profile
I had my camera low to the ground to adjust some displacement size settings, i zoomed out and moved the viewport and i noticed that only the displacement for the FOV of the original position was being shown. See attached image.

2018-03-25, 22:05:31
Reply #1

pokoy

  • Active Users
  • **
  • Posts: 1988
    • View Profile
I think this was made to behave that way by design in order to avoid constant re-calculation of displacement. Otherwise IR wouldn't be interactive as it would have to re-calculate on every change of camera/perspective. If I remember correctly, displacement is degraded for IR too to save some time, so for finals you shouldn't rely on IR anyway.

2018-03-26, 14:12:42
Reply #2

TomG

  • Administrator
  • Active Users
  • *****
  • Posts: 6152
    • View Profile
Displacement is either calculated by "screen" or "world" - when screen, it is based on what is included in the camera FOV, to reduce having to calculate displacement for things not seen in the camera. It is only calculated once at the beginning of IR, so changing the FOV can bring into view things where displacement is not calculated to as much detail, or not calculated at all. Recalculating it would of course slow down IR, which leaves the option of swapping displacement to World (with the penalties involved - it will likely take longer to calculate when you first run IR, and it will likely need quite a bit more memory).
Tom Grimes | chaos-corona.com
Product Manager | contact us

2018-03-27, 08:57:46
Reply #3

Christa Noel

  • Active Users
  • **
  • Posts: 911
  • God bless us everyone
    • View Profile
    • dionch.studio
how about using CoronaRenderer.CoronaFp.ReparseInteractive() when you need to recalculate the displacement? if it doesnt work then imho devs should add displacement recalculation inside this method, instead of the need to stop and restart the IR