Rendering over the border?! Help please.

Hey Blenderheads!

Currently in my working environment im surrounded by people who use Maya, and im the only one that works with Blender. It just feels like one big exam. For a few weeks now we made every little test that they put us on. But now i have a new question that i dont have an answer to.

To the problem…

I have a scene that i want to render…

  1. Camera resolution 1980*1080
  2. lens 40

How do i render beyond the camera borders? They brag that in maya u just have to press 2 buttons. How culd i go and accheive that with blender?

The camera position, resolution and lens must stay the same. I just have to render a pic that exceeds the camera borders that defines the picture hight and width.

The reason for that is that when this will be composited in a programm called Nuke, the guy neds some more space in case if he needs to shake the picture so that borders of the picture doesnt show.

I hope i make sense and sorry for the bad english.

Thanks!

I can only imagine one thing here… but i’m a newbye with Blender too:
Place a seconde camera behind the main one (you can use parenting with an Empty if you need to move the main camera) so that you just get the same exact angle but a larger image with a shot from camera 2.

You’d want to up the render size to match the additional pixels as well…

so instead of, say a 640 x 480 image, you’d pull the camera back and up the render size to… oh… 680x520. You set the size of the rendered image in the X Y boxes. You’ll probobly also have to experiment to figure out just what settings will give this guy what he needs.

Hi,

Moving the camera would prevent your images matching up. It would be better to just adjust your camera settings and image size.

I had a bit of a play and put a little Python script together:

import Blender 
import math 
from Blender import Camera, Scene, Window 
from Blender.Scene import Render 
 
borderWidth = 100 
 
scn = Scene.GetCurrent() 
 
cam = scn.objects.camera.getData()
ren = scn.getRenderingContext() 
 
width = ren.imageSizeX() 
height = ren.imageSizeY() 
halfWidth = width / 2 
 
oldAng = cam.angle 
ang = oldAng * math.pi / 180 
ang = ang / 2 
 
borderWidth = float(borderWidth) 
 
newAng = math.atan((1 + (borderWidth / halfWidth)) * math.tan(ang)) * 2 
newAng = newAng * 180 / math.pi 
 
cam.angle = newAng 
 
ren.imageSizeX(int(width + 2 * borderWidth)) 
ren.imageSizeY(int(height + 2 * borderWidth)) 
 
ren.render() 
 
cam.angle = oldAng 
ren.imageSizeX(width) 
ren.imageSizeY(height) 
 
Blender.Window.Redraw()

This will effectively render your image with an extra 100 pixel border around it. You can change the size of the border by changing the 100 in

borderWidth = 100

to another value.

To use this, just copy and paste the code above into a Text window, then press Alt-P.

I hope this helps.

[As a disclaimer: I do not know Python and am not a professional programmer. The code above is entirely my own work and absolutely free for anyone else to use in any way they want, but I do not guarantee it will work. Use it at your own risk!]

[edit] If you interrupt the render, I don’t know if it will reset your camera settings - I’d advise not saving your file after using the script, just in case [/edit]

Thanks a LOT man! I ll reply when i make it work.

Thanks again!

Yeah it works like a charm. It resets the camera after the render finishes. I have only one more question. If i want to render one frame i just run the script and it starts rendering.
What if i have to render animation? What do i put in the script and where.
This is the first time i work with the script. So i am a script noob.

Thanks for the reply