2
$\begingroup$

Looking for someway to link the 2.8 viewport with external programs (ie Adobe InDesign/Illustrator etc) that use linked images.

You would link a 3D viewport in blender via addon to an external file, so everytime the viewport is changed, the external file would update (not a rendered file, the viewport buffer) - if it was camera view, then only the camera view area would be exported.

That way you can get a 'live' preview of the render inside other programs without having to render each time.

If each camera could create a linked file that would be even better(?)

NOTE This is not 'auto save' render/blend file, although that would be semi-useful - the current addons require the render and also increment the file name, which isn't useful if you want to maintain the link - could edit script to remove the increments but would still be too manual. Also it requires a full render which is not what I'm after - just the 3D viewport.

ANSWER From comments - bpy.ops.render.opengl(write_still=True,view_context=True) seems to be the one to use. Any preexisting addon that does this on a timed/controlled manner would be good, but otherwise I'll have a look at creating something myself.

MORE - Quick addon here https://github.com/mgmhunt/Blender_Addon_AutoRenderViewport

$\endgroup$
2

1 Answer 1

1
$\begingroup$

It is called rendering

Exporting images made from 3d scene is called rendering. You can render your 3d scenes to image files. There is no other miraculous secret way of getting images from 3d to a file. If there was, it would still be called rendering. If you are talking about a process of generating images from a 3d scene and saving them to files that is always called rendering. So you do have rendering functionality in Blender. It is accessible from Blender's Python API as well so writing add-ons that would automatically render and save the viewport is also possible.

$\endgroup$
3
  • $\begingroup$ Yep the last bit "Blender's Python API as well so writing add-ons that would automatically render and save the viewport is also possible." is what I'm after. Do you know of anything out there that does this? Also I'm after a dump of the 3D view, not a 'render' in the sense of Render button, using render settings. $\endgroup$
    – mgmhunt
    Jun 18, 2019 at 23:53
  • $\begingroup$ Documentation for version 2.80 Python API might not be complete, but you could see docs.blender.org/api/master/search.html?q=render+operators. bpy.ops.render.opengl can 'Take a snapshot of the active viewport' it says. That's the benefit of calling the process what it is - rendering - it's clear what to search for then. I don't think there are add-ons for displaying Blender's viewport in other software in real time. They would be inefficient and slow. I think it's best to script a link that is updated manually instead of constant updating automatically in case you really need it. $\endgroup$ Jun 19, 2019 at 0:20
  • $\begingroup$ Yep bpy.ops.render.opengl(write_still=True,view_context=True) looks pretty much exactly what I'm after. I'm thinking triggering the write on a timed based (per 5 seconds after a viewport change for example, or even better if can detect application loses focus). Thanks for the pointer. $\endgroup$
    – mgmhunt
    Jun 19, 2019 at 0:29

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .