Page MenuHome

Render engine: support native render capabilities
Needs RevisionPublic

Authored by Alexander Romanov (a.romanov) on Sep 1 2015, 5:58 PM.

Details

Summary

This patch allows to use Blender Internal render in custom render engine by adding "Rendered" shading mode.
This patch is similar to this one https://developer.blender.org/rBS1d88bfce4017875490113a81dccd45df3f13a7c6 and improves custom render engines integration with internal render as well.

Regards,
Valentin (Blend4Web Team).

Diff Detail

Event Timeline

The patch is not ready yet, there are shortcomings.

Sergey Sharybin (sergey) requested changes to this revision.

We reviewed similar patch and thought it was actually accepted..

This one has some weirdeness going on which would be cool to clarify.

source/blender/makesrna/intern/rna_render.c
303

This seems arbitrary to me, it's like telling: hey, i've got new fancy render engine, but in fact it renders everything as Blender Internal.

What's the point of this?

This revision now requires changes to proceed.Sep 2 2015, 10:48 AM
Alexander Romanov (a.romanov) marked an inline comment as done.Sep 2 2015, 11:40 AM
Alexander Romanov (a.romanov) added inline comments.
source/blender/makesrna/intern/rna_render.c
303

Here should be the code that uses Cycles/BI. So this is shortcoming.

The main reason for this patch is that current glsl-render has lots of unsupported visual effects, which can be visualized only with BI (Halo, reflections, Environment (btw, we've made a patch for Viewport in this case), Procedural textures etc). So, for example, our engine supports several of these features and users can check them only in BI, and it's not very comfortable to switch renderer every time.

When feature viewport is out, there won't be need in such measures actually :)

source/blender/makesrna/intern/rna_render.c
303

In your case you'll want to fall back to BI's drawing, someone else might want to fallback to Cycles or something else. Decision of which callback to use is rather arbitrary and am not really happy with it.

It's more like you're trying to subclass a render engine and override only few of the callbacks. Perhaps more proper way to go for things like this would be to make it possible to delegate those calls to BI renderer.

source/blender/makesrna/intern/rna_render.c
303

Thanks for the tip.
I will investigate this approach.