Camera Overscan #49068

Closed
opened 2016-08-10 21:53:38 +02:00 by John Roper · 85 comments
Member

Overscan extends the render region beyond the main image coordinates. This is a pixel value that gives you a larger image around the main image resolution. Enter any image resolution into the Overscan panel. You can also bake the Overscan settings into a new camera.

Authors: John Roper, Barnstorm VFX, Luca Scheller

The wiki page can be found: here

This is the ui:

With Overscan disabled With Overscan enabled
1.jpg 2.jpg

This is the result:

With Overscan disabled With Overscan enabled
w-out_overscan.jpg w_overscan.jpg
Overscan extends the render region beyond the main image coordinates. This is a pixel value that gives you a larger image around the main image resolution. Enter any image resolution into the Overscan panel. You can also bake the Overscan settings into a new camera. Authors: John Roper, Barnstorm VFX, Luca Scheller The wiki page can be found: [here ](https://wiki.blender.org/index.php/Extensions:2.6/Py/Scripts/Render/Camera_Overscan) **This is the ui:** |With Overscan disabled|With Overscan enabled| | -- | -- | |![1.jpg](https://archive.blender.org/developer/F388227/1.jpg)|![2.jpg](https://archive.blender.org/developer/F388225/2.jpg)| **This is the result:** |With Overscan disabled|With Overscan enabled| | -- | -- | |![w-out_overscan.jpg](https://archive.blender.org/developer/F344110/w-out_overscan.jpg)|![w_overscan.jpg](https://archive.blender.org/developer/F344111/w_overscan.jpg)|
Brendon Murphy was assigned by John Roper 2016-08-10 21:53:38 +02:00
Author
Member

Changed status to: 'Open'

Changed status to: 'Open'
Author
Member

Added subscriber: @JohnRoper

Added subscriber: @JohnRoper
Author
Member

Added subscribers: @BrendonMurphy, @dfelinto, @mont29

Added subscribers: @BrendonMurphy, @dfelinto, @mont29

Please submit new code as diff (https://developer.blender.org/differential/diff/create/), it’s easier to review/comment code inline. ;)

Please submit new code as diff (https://developer.blender.org/differential/diff/create/), it’s easier to review/comment code inline. ;)
Author
Member

@mont29 how do I make a diff for this?

@mont29 how do I make a diff for this?

@JohnRoper like any other diff…

If you do not have any VCS for your work (like git, etc.), you can just do diff -aru /dev/null /path/to/CameraOverscan.py > /path/to/patch.diff, and you'll get a diff creating CameraOverscan.py into patch.diff…

@JohnRoper like any other diff… If you do not have any VCS for your work (like git, etc.), you can just do `diff -aru /dev/null /path/to/CameraOverscan.py > /path/to/patch.diff`, and you'll get a diff creating CameraOverscan.py into patch.diff…
Author
Member

I am on windows

I am on windows
You may find help here then: http://stackoverflow.com/questions/1648595/how-to-create-a-patch-file-on-windows
Member

side note here: could we have some visual indication of what the script does?

side note here: could we have some visual indication of what the script does?
Author
Member

Added subscriber: @davidandrade

Added subscriber: @davidandrade

Added subscriber: @VukGardasevic

Added subscriber: @VukGardasevic

Scene props:

    bpy.types.Scene.RO_Custom_Res_X
    bpy.types.Scene.RO_Custom_Res_Y

are not deleted on unregister.

math is imported, but unused in the script.

The script name should be lower case with undescore instead of CamelCase.

Scene props: ``` bpy.types.Scene.RO_Custom_Res_X bpy.types.Scene.RO_Custom_Res_Y ``` are not deleted on unregister. math is imported, but unused in the script. The script name should be lower case with undescore instead of CamelCase.
Author
Member

I made the fixes that were needed and re-posted the file.

I made the fixes that were needed and re-posted the file.

Sorry for the late reply.

The script had a serious issue with an infinite recursive call on update of props. Basically the update function lacked the check for previous values during assignment resulting in the following Python error:

RecursionError: maximum recursion depth exceeded in comparison

Also there was a crash with camera missing in the scene, there was some mix up with removal of props on unregister, and the prop value of resolution were undefined ( currently the max render resolution is 65536).

This should be a corrected version. Thanks to batFINGER for the help.
camera_overscan.py

However, due to the migration to 2.8 (and possibly skipping 2.79 completely) i don't know when and how new add-ons will be accepted. So be patient. :)

Sorry for the late reply. The script had a serious issue with an infinite recursive call on update of props. Basically the update function lacked the check for previous values during assignment resulting in the following Python error: ``` RecursionError: maximum recursion depth exceeded in comparison ``` Also there was a crash with camera missing in the scene, there was some mix up with removal of props on unregister, and the prop value of resolution were undefined ( currently the max render resolution is 65536). This should be a corrected version. Thanks to batFINGER for the help. [camera_overscan.py](https://archive.blender.org/developer/F368637/camera_overscan.py) However, due to the migration to 2.8 (and possibly skipping 2.79 completely) i don't know when and how new add-ons will be accepted. So be patient. :)
Author
Member

Ok, thanks!

Ok, thanks!
Author
Member

camera_overscan.py

Here is a new version with cleanups and the Bake to New Camera feature.

[camera_overscan.py](https://archive.blender.org/developer/F388229/camera_overscan.py) Here is a new version with cleanups and the **Bake to New Camera** feature.
Author
Member

Sorry, that was an older version. I updated some stuff. Here is the correct version:

camera_overscan.py

Sorry, that was an older version. I updated some stuff. Here is the correct version: [camera_overscan.py](https://archive.blender.org/developer/F388230/camera_overscan.py)
Member

hi, any activity here? I would consider for addons contrib if your willing to develop there with a view to the future.

hi, any activity here? I would consider for addons contrib if your willing to develop there with a view to the future.
Author
Member

There is. what do you need me to do?

There is. what do you need me to do?

I've looked at the newest version and made some changes ( introduces a ProperyGroup for neater blend files). The basic functionality is ok and works fine, so I'm ok with the Merge.

However, before it there is one issue I'm not sure about. What the CODuplicateCamera operator does apart from copying selected objects?
If the intention is to make a new camera with the current settings of the Camera Overscan the code is not doing what is supposed to do (ie if the camera is not selected it will just copy whatever object is currently selected).

That needs fixing before the merge.

I've looked at the newest version and made some changes ( introduces a ProperyGroup for neater blend files). The basic functionality is ok and works fine, so I'm ok with the Merge. However, before it there is one issue I'm not sure about. What the `CODuplicateCamera` operator does apart from copying selected objects? If the intention is to make a new camera with the current settings of the Camera Overscan the code is not doing what is supposed to do (ie if the camera is not selected it will just copy whatever object is currently selected). That needs fixing before the merge.
Author
Member

@VukGardasevic where are your changes?

@VukGardasevic where are your changes?

@JohnRoper

Here are the changes to the Operator that now copies the Scene active camera only.
Also, the object as camera case is handled - that could cause a crash before.

Please, test it and see if this is the intention of the Bake Operator. If everything is alright, then the script is ready to be accepted in the Contrib IMHO.

camera_overscan.py

@JohnRoper Here are the changes to the Operator that now copies the Scene active camera only. Also, the object as camera case is handled - that could cause a crash before. Please, test it and see if this is the intention of the Bake Operator. If everything is alright, then the script is ready to be accepted in the Contrib IMHO. [camera_overscan.py](https://archive.blender.org/developer/F494497/camera_overscan.py)
Author
Member

That version is fine with me! May I have commit rights @BrendonMurphy

That version is fine with me! May I have commit rights @BrendonMurphy

Added subscriber: @Barnstorm_VFX

Added subscriber: @Barnstorm_VFX

Would love to have the following additional ways to input the overscan:

  1. x-pixels and y pixels of overscan (with the option to link these together to retain aspect ratio)
  2. % overscan

Having to type out the specific final frame size can be difficult, especially when large values of overscan create confusion over what the original resolution is. I'd rather know, for example, that I have a 1920x1080 frame with 400 pixels of overscan in X and 200 in Y rather than seeing something like 2320x1280 in the main resolution box.

An option to see 'frame lines' for the original resolution within the overscanning camera (or the ability to retain the original frame and see frame lines outside for the overscan) would be great as well.

Would love to have the following additional ways to input the overscan: 1) x-pixels and y pixels of overscan (with the option to link these together to retain aspect ratio) 2) % overscan Having to type out the specific final frame size can be difficult, especially when large values of overscan create confusion over what the original resolution is. I'd rather know, for example, that I have a 1920x1080 frame with 400 pixels of overscan in X and 200 in Y rather than seeing something like 2320x1280 in the main resolution box. An option to see 'frame lines' for the original resolution within the overscanning camera (or the ability to retain the original frame and see frame lines *outside* for the overscan) would be great as well.
Author
Member

Ok, I am working on this.

Ok, I am working on this.
Member

ok for contrib

ok for contrib
Member

Changed status from 'Open' to: 'Resolved'

Changed status from 'Open' to: 'Resolved'
Member

@JohnRoper
hi, I've committed this to addons contrib so it can be a part of the 2.79 addons contrib pack, sorry for the late run.
It's possible we may change how contrib works in 2.8 series so I cannot guarantee the addon inclusion past 2.79 & the last of the series.
If you have any updates please post to this task or create a new task.
Thanks for your participation & welcome. We look forward to seeing you again in the 2.8 series.
Brendon.

@JohnRoper hi, I've committed this to addons contrib so it can be a part of the 2.79 addons contrib pack, sorry for the late run. It's possible we may change how contrib works in 2.8 series so I cannot guarantee the addon inclusion past 2.79 & the last of the series. If you have any updates please post to this task or create a new task. Thanks for your participation & welcome. We look forward to seeing you again in the 2.8 series. Brendon.

Added subscriber: @ClonedPuppy

Added subscriber: @ClonedPuppy

Hi, will this addon be ported over to 2.80? It's pretty vital for anyone doing vfx work in blender and working with tracked cameras as dewarped plates.

Cheers,

Peter.

Hi, will this addon be ported over to 2.80? It's pretty vital for anyone doing vfx work in blender and working with tracked cameras as dewarped plates. Cheers, Peter.
Member

camera_overscan.py
Let me know if it's working correctly

[camera_overscan.py](https://archive.blender.org/developer/F7641545/camera_overscan.py) Let me know if it's working correctly

Seems to work fine, will put it through a shot tomorrow once I'm back in the studio.

Thank you so much!

Seems to work fine, will put it through a shot tomorrow once I'm back in the studio. Thank you so much!
Member

Added subscriber: @SeanKennedy

Added subscriber: @SeanKennedy

Added subscriber: @PaulMcManus

Added subscriber: @PaulMcManus

Added subscriber: @evantryan

Added subscriber: @evantryan

Added subscriber: @Funnybob

Added subscriber: @Funnybob

What ever happened with this?I'm so glad I found this script. Definitively something that should be included with Blender. And having the possibility to decide if we want it as pixels or % is a must also. Cheers,

What ever happened with this?I'm so glad I found this script. Definitively something that should be included with Blender. And having the possibility to decide if we want it as pixels or % is a must also. Cheers,

It works great, using it in production every day. I agree, should be included in the default set of tools.

It works great, using it in production every day. I agree, should be included in the default set of tools.
Member

I agree, I'd love to see this added into Blender! It's an absolute must-have for VFX. I also think Lawson's suggestions are spectacular and the ideal way to implement it.

In #49068#419952, @Barnstorm_VFX wrote:
Would love to have the following additional ways to input the overscan:

  1. x-pixels and y pixels of overscan (with the option to link these together to retain aspect ratio)
  2. % overscan

Having to type out the specific final frame size can be difficult, especially when large values of overscan create confusion over what the original resolution is. I'd rather know, for example, that I have a 1920x1080 frame with 400 pixels of overscan in X and 200 in Y rather than seeing something like 2320x1280 in the main resolution box.

An option to see 'frame lines' for the original resolution within the overscanning camera (or the ability to retain the original frame and see frame lines outside for the overscan) would be great as well.

I agree, I'd love to see this added into Blender! It's an absolute must-have for VFX. I also think Lawson's suggestions are spectacular and the ideal way to implement it. > In #49068#419952, @Barnstorm_VFX wrote: > Would love to have the following additional ways to input the overscan: > > 1) x-pixels and y pixels of overscan (with the option to link these together to retain aspect ratio) > 2) % overscan > > Having to type out the specific final frame size can be difficult, especially when large values of overscan create confusion over what the original resolution is. I'd rather know, for example, that I have a 1920x1080 frame with 400 pixels of overscan in X and 200 in Y rather than seeing something like 2320x1280 in the main resolution box. > > An option to see 'frame lines' for the original resolution within the overscanning camera (or the ability to retain the original frame and see frame lines *outside* for the overscan) would be great as well.

Added subscriber: @dskjal-1

Added subscriber: @dskjal-1

I have added delta pixel and % overscan.
camera_overscan.py
overscan.gif

I have added delta pixel and % overscan. [camera_overscan.py](https://archive.blender.org/developer/F8639571/camera_overscan.py) ![overscan.gif](https://archive.blender.org/developer/F8639572/overscan.gif)

Added subscriber: @nibasino

Added subscriber: @nibasino

Added subscriber: @zach-3

Added subscriber: @zach-3

@dskjal-1, this isn't working in Blender 2.91. It doesn't even show up in the Render Settings.
I'd really appreciate a fix for this! :)

@dskjal-1, this isn't working in Blender 2.91. It doesn't even show up in the Render Settings. I'd really appreciate a fix for this! :)

@zach-3 Rodgers (zach), it works in Blender 2.91 on my machine.

@zach-3 Rodgers (zach), it works in Blender 2.91 on my machine.

@dskjal-1 Yes! Sorry, I have more info now. It seems Overscan appears when Eevee is selected as the render engine. But when you switch it over to Cycles, the Overscan settings disappear.

@dskjal-1 Yes! Sorry, I have more info now. It seems Overscan appears when Eevee is selected as the render engine. But when you switch it over to Cycles, the Overscan settings disappear.

@zach-3 Rodgers (zach), I've fixed it.
camera_overscan.py

@zach-3 Rodgers (zach), I've fixed it. [camera_overscan.py](https://archive.blender.org/developer/F9556699/camera_overscan.py)

@dskjal-1 Awesome, it works! Thank you so much. What was the issue?

@dskjal-1 Awesome, it works! Thank you so much. What was the issue?

@zach-3 Rodgers (zach)
I've changed it from
COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_EEVEE', 'BLENDER_WORKBENCH'}
to
COMPAT_ENGINES = {'CYCLES', 'BLENDER_EEVEE', 'BLENDER_WORKBENCH'}.

@zach-3 Rodgers (zach) I've changed it from COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_EEVEE', 'BLENDER_WORKBENCH'} to COMPAT_ENGINES = {'CYCLES', 'BLENDER_EEVEE', 'BLENDER_WORKBENCH'}.

Added subscriber: @cgleebs-2

Added subscriber: @cgleebs-2

Removed subscriber: @cgleebs-2

Removed subscriber: @cgleebs-2

Added subscriber: @LouiBelly

Added subscriber: @LouiBelly

@dskjal-1

Hi !
I have been using your script for quite a long time now it helps me so much, thanks.
I just figured that the script doesn't work when using a shift to the camera, do you know anything about that? or any workaround?

@dskjal-1 Hi ! I have been using your script for quite a long time now it helps me so much, thanks. I just figured that the script doesn't work when using a shift to the camera, do you know anything about that? or any workaround?

Added subscriber: @louis-3

Added subscriber: @louis-3

@louis-3 (LouiBelly)

I think it works. What kind of behavior do you expect when you shift the camera?

@louis-3 (LouiBelly) I think it works. What kind of behavior do you expect when you shift the camera?

@dskjal-1

Please have a look at the picture below. It is actually working but as you can see when shifting the camera the overscan isnt "centered" to the original framing. Am I doing anything wrong?Overscan_Issue.jpg

The only way I found to fix it is to manually change the shift when using the overscan but I often have to animate it so it is really not convenient.

@dskjal-1 Please have a look at the picture below. It is actually working but as you can see when shifting the camera the overscan isnt "centered" to the original framing. Am I doing anything wrong?![Overscan_Issue.jpg](https://archive.blender.org/developer/F9622570/Overscan_Issue.jpg) The only way I found to fix it is to manually change the shift when using the overscan but I often have to animate it so it is really not convenient.

@louis-3 (LouiBelly)

It works as per specification. This addon changes the sensor size of a camera to achieve overscan. If you change sensor size while the camera is shifted, the margins will not be even.

@louis-3 (LouiBelly) It works as per specification. This addon changes the sensor size of a camera to achieve overscan. If you change sensor size while the camera is shifted, the margins will not be even.

In #49068#1106919, @dskjal-1 wrote:

It works as per specification. This addon changes the sensor size of a camera to achieve overscan. If you change sensor size while the camera is shifted, the margins will not be even.

Hi Kinouti,

I have have not been active here years, i thought i was hacked for moment, for new activity.

Leo Louis (@louis-3)

> In #49068#1106919, @dskjal-1 wrote: > > > It works as per specification. This addon changes the sensor size of a camera to achieve overscan. If you change sensor size while the camera is shifted, the margins will not be even. Hi Kinouti, I have have not been active here years, i thought i was hacked for moment, for new activity. Leo Louis (@louis-3)

Removed subscriber: @louis-3

Removed subscriber: @louis-3

Added subscriber: @Phonix-64

Added subscriber: @Phonix-64

Hello @Kinouti Takahiro (dskjal)
I am using your Script on a Camera based of of a Motion Track. My beforehand calibration on my recording camera revealed a Principle Point shift. When I now press the Setup Tracking Scene a shift is added to my camera. This motion track also includes an Object Track.
If I now add an overscan (120%) and compensate the clip by setting it to a scale of 0.8 my points still move. I suspect this has to do with the shift. Do you know how I can correct the offset / what causes it?
Thank you for your help.
grafik.png
grafik.png
grafik.png

Hello @Kinouti Takahiro (dskjal) I am using your Script on a Camera based of of a Motion Track. My beforehand calibration on my recording camera revealed a Principle Point shift. When I now press the Setup Tracking Scene a shift is added to my camera. This motion track also includes an Object Track. If I now add an overscan (120%) and compensate the clip by setting it to a scale of 0.8 my points still move. I suspect this has to do with the shift. Do you know how I can correct the offset / what causes it? Thank you for your help. ![grafik.png](https://archive.blender.org/developer/F10295940/grafik.png) ![grafik.png](https://archive.blender.org/developer/F10295942/grafik.png) ![grafik.png](https://archive.blender.org/developer/F10295944/grafik.png)

Added subscriber: @benjamin-19

Added subscriber: @benjamin-19

@benjamin-19 (Phonix_64)
Try Object Tracks scale to 0.83333(1/1.20) or overscan to 125%(1/0.8).

@benjamin-19 (Phonix_64) Try Object Tracks scale to 0.83333(1/1.20) or overscan to 125%(1/0.8).

Added subscriber: @JacobMerrill-1

Added subscriber: @JacobMerrill-1

can this be made to work in realtime also?

there are a number of ill effects with TAA and volumetrics that arise from not having realtime overscan.

can this be made to work in realtime also? there are a number of ill effects with TAA and volumetrics that arise from not having realtime overscan.

In #49068#1209120, @dskjal-1 wrote:
@benjamin-19 (Phonix_64)
Try Object Tracks scale to 0.83333(1/1.20) or overscan to 125%(1/0.8).

Hm It is still not quite there but yes made a small conversion error there thanks
grafik.png

> In #49068#1209120, @dskjal-1 wrote: > @benjamin-19 (Phonix_64) > Try Object Tracks scale to 0.83333(1/1.20) or overscan to 125%(1/0.8). Hm It is still not quite there but yes made a small conversion error there thanks ![grafik.png](https://archive.blender.org/developer/F10296121/grafik.png)

Added subscriber: @AlfieVaughan

Added subscriber: @AlfieVaughan

This doesn't seem to work for the new alpha release of 3.0. Does anyone know how to make it work?

This doesn't seem to work for the new alpha release of 3.0. Does anyone know how to make it work?

Updated for 3.0.
camera_overscan.py

Updated for 3.0. [camera_overscan.py](https://archive.blender.org/developer/F10573802/camera_overscan.py)

That was fast! Thanks a lot :)

That was fast! Thanks a lot :)

Added subscriber: @chabashvili

Added subscriber: @chabashvili

As of blender 3.1 beta (ec5bbebf3ee1) Overscan addon is only working in terms of changing camera sensor width. All other settings like format resolution or percentage are not changing, not in blender side of settings, neither in overscan settings. If one changes those settings manually (resolution/percentage) it does work like it is intended, but it does not do it automatically as it was doing it in 3.0 version. Any chance of updating the addon to working as before. Thank you.

As of blender 3.1 beta (ec5bbebf3ee1) Overscan addon is only working in terms of changing camera sensor width. All other settings like format resolution or percentage are not changing, not in blender side of settings, neither in overscan settings. If one changes those settings manually (resolution/percentage) it does work like it is intended, but it does not do it automatically as it was doing it in 3.0 version. Any chance of updating the addon to working as before. Thank you.

Updated for 3.1.
camera_overscan.py

Updated for 3.1. [camera_overscan.py](https://archive.blender.org/developer/F12882837/camera_overscan.py)

In #49068#1311969, @dskjal-1 wrote:
Updated for 3.1.
camera_overscan.py

Thank you very much !

> In #49068#1311969, @dskjal-1 wrote: > Updated for 3.1. > [camera_overscan.py](https://archive.blender.org/developer/F12882837/camera_overscan.py) Thank you very much !

Added subscriber: @fasoric.vj

Added subscriber: @fasoric.vj

@dskjal-1 would you consider a rework of this script to work as a more production proof tool?
this is a 2 years old proposal that never received much attention: https://blender.community/c/rightclickselect/pkfbbc/
as a little incentive, being able of making use of the exr feature regarding overscan would give you eternal glory! :D

@dskjal-1 would you consider a rework of this script to work as a more production proof tool? this is a 2 years old proposal that never received much attention: https://blender.community/c/rightclickselect/pkfbbc/ as a little incentive, being able of making use of the exr feature regarding overscan would give you eternal glory! :D

Removed subscriber: @davidandrade

Removed subscriber: @davidandrade

The original resolution is now displayed.
camera_overscan.py
illust.png

The original resolution is now displayed. [camera_overscan.py](https://archive.blender.org/developer/F12890960/camera_overscan.py) ![illust.png](https://archive.blender.org/developer/F12890965/illust.png)

Added subscriber: @88eggwhites

Added subscriber: @88eggwhites

Added subscriber: @Nika-Kutsniashvili

Added subscriber: @Nika-Kutsniashvili
Member

@dskjal-1 Hi, I’d like to update the add-on in the addons-contrib repository using your latest changes, would you be ok with that? If so, can I use your name as the author?

@dskjal-1 Hi, I’d like to update the add-on in the addons-contrib repository using your latest changes, would you be ok with that? If so, can I use your name as the author?

@pioverfour updating the add-on and using my name is ok.

And the following people are also involved in this.
@JohnRoper, Barnstorm VFX, Luca Scheller
@VukGardasevic
@BrendonMurphy

@pioverfour updating the add-on and using my name is ok. And the following people are also involved in this. @JohnRoper, Barnstorm VFX, Luca Scheller @VukGardasevic @BrendonMurphy

It no longer works in 4.2. Are there any plans to update?

It no longer works in 4.2. Are there any plans to update?
Member

I believe Blender Bob also released a more recent overscan add-on

https://youtu.be/yXSfgBu5Rac?si=Rng6OKBp9kirKHij

I believe Blender Bob also released a more recent overscan add-on https://youtu.be/yXSfgBu5Rac?si=Rng6OKBp9kirKHij
Sign in to join this conversation.
No Milestone
No project
No Assignees
26 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-addons#49068
No description provided.