Future of Blender's internal renderer, alternatives

Blender's renderer and external renderer export

Moderators: jesterKing, stiv

fearandloathing
Posts: 0
Joined: Thu Jun 16, 2005 2:00 pm

Future of Blender's internal renderer, alternatives

Post by fearandloathing » Fri Jun 17, 2005 4:34 pm

As some of you are aware of, there are several 3rd party high quality Free Software renderers out there, including the RenderMan renderers Aqsis and Pixie, and the (non-renderman) GI rendrer YafRay.

Wouldn't it make more sense to tightly intergrate Blender with the RenderMan spec instead of trying to reinvent the wheel with the internal scanline renderer?
That way the user can choose between any RenderMan renderer of their choice (Pixar PRman, Aqsis, Pixie, Air, Entropy, 3delight, etc), and just supply the path to the excecutable and shader library in Blender's preferences.

Pixar's PRman is by far the most widely used renderer for production work out there (see list here: https://renderman.pixar.com/products/wh ... ovies.html ), and RenderMan compilant renderers will be around forever in one form or another.

Blender could even have an internal RenderMan compatible OpenGL hardware renderer, using pixel shaders and multipass rendering to achieve comparable quality to the current Blender renderer but at extreme speeds.
And still be able to output .rib and .sl for external RenderMan renderers.

fearandloathing
Posts: 0
Joined: Thu Jun 16, 2005 2:00 pm

Post by fearandloathing » Fri Jun 17, 2005 4:55 pm

Oh and please don't bring up 3rd party python RIB exporter scripts to this discussion btw.
This proposal is about replacing the internal renderer.
By offloading work from the internal renderer to other 3rd party rendering projects and just adding tight intergration with the RenderMan specification, the blender dev team can focus on other things such as improving the character animation tools, while the Aqsis or Pixie or [insert other RenderMan renderer here] teams add functionality to the renderers.

(The part about a internal hardware OpenGL rman renderer doesn't apply here though, it would just be a bonus)

SirDude
Posts: 233
Joined: Sun Oct 13, 2002 7:37 pm
Location: University of Minnesota (USA)
Contact:

Post by SirDude » Fri Jun 17, 2005 5:56 pm

While I do think it would be great for blender to support the renderman specification as an option for external rendering, I think that removing
the internal renderer would be a mistake. Even if there were no further
development on the current system I would still use it, its fast and it produces great results for what I use it for.

This is also an open source project, people work on what they want to/ are interested in working on.

By your logic, yafray should not exist. There were lots of other renderer's out there one of which is blender's.
Should the yafray team have not done their project and just worked on one of those instead?

I do think the yafray integration is a great first step and integrating external renderer's using the renderman API. I also think things will improve in the future, we'll have to wait and see.

fearandloathing
Posts: 0
Joined: Thu Jun 16, 2005 2:00 pm

Post by fearandloathing » Fri Jun 17, 2005 8:48 pm

SirDude wrote:While I do think it would be great for blender to support the renderman specification as an option for external rendering, I think that removing
the internal renderer would be a mistake. Even if there were no further
development on the current system I would still use it, its fast and it produces great results for what I use it for.
Pixar PRMan is probably the fastest non-hardware accelerated renderer in existance.
Other Reyes based RenderMan renderers should also be very fast.

The intergration would obviously have to be seamless, it would pipe data between blender and the renderer and the user would have no clue that the renderer is external apart from giving blender the path to it in the preferences upon the first startup.
I.e. rendering regions and everything would work as before.
SirDude wrote:By your logic, yafray should not exist. There were lots of other renderer's out there one of which is blender's.
That's a really poor example.
There was no Free Software/OSS renderer comparable to YafRay around for GNU/Linux (don't know about windows), the only others who provided global illumination used photon mapping or radiosity.
Brazil, Messiah:Render etc were extremely hyped, along with Monte Carlo raytracing, all those skydomes popping up everywhere on 3d forums, YafRay was a Free As In Freedom alternative to those renderers.
There was one renderer for *NIX wich served as a testbed for different rendering algorithms, like Monte Carlo raytracing, but was useless for artists (and I think it was binary only).
SirDude wrote:I do think the yafray integration is a great first step and integrating external renderer's using the renderman API. I also think things will improve in the future, we'll have to wait and see.
AFAIK YafRay has nothing to do with the RenderMan API.
GI renderers like YafRay might be fun for users posting skydome lightning pictures on forums, but it wouldn't cut it in a production environment, where performance is important and GI is not.
RenderMan dominates in this area.

levon
Posts: 0
Joined: Thu Jul 31, 2003 6:06 am
Location: adelaide

Post by levon » Sat Jun 18, 2005 5:27 am

well what about use people who dont like to use an external renderer, and want to use blenders internal one, which is still being worked on. if you want ti intergrate renderman into blender, go and do it, but making demands like this , of which this topic has been brought up before and has not eventuated to anything, will not get you anywere. yafray was put in because there was someone willing to code it in, and was sufficient with the blender codebase to be able to code it into blender. i dont think blenders own render will ever be removed, partly because it is so tightly coded in with the rest of blender, and also because alot of people use it, and use it well. look at max, maya, LW, softimage etc. they all have there own internal renderer, why should blender be disadvantaged by removing its own inernal renderer.
fearandloathing wrote: RenderMan dominates in this area.
yes but doesnt maya or softimage rule in the area of modeling/animation? and photoshop in the area of er... photoshoping? :P

cekuhnen
Posts: 0
Joined: Mon Jan 13, 2003 11:04 pm

Post by cekuhnen » Sat Jun 18, 2005 5:56 pm

the majority of blender users are non pro users and
with the reyes renderer comes also the need to
code the shaders and there the users will die here.

i would love to have an option to render with reyes
systems but i also think they internal renderer should
not be replaced.

Dani
Posts: 143
Joined: Fri Oct 18, 2002 8:35 pm

Post by Dani » Sat Jun 18, 2005 11:50 pm

learning how to use all the potential of the internal renderer is a good idea too I think...

Having the choice is good, forcing a change can be disastrous, IMHO...

Dani

cekuhnen
Posts: 0
Joined: Mon Jan 13, 2003 11:04 pm

Post by cekuhnen » Sun Jun 19, 2005 12:06 am

ya but compared to other system blender internal renderer has many flaws or disadvantages. it is fast but compromised on quality. the AA for example is a disaster. i always need to render things bigger than needed to scale it down to get good results. also blender currently does not offer many light systems for shader like anisotropic specular that makes it not the best choice for specific projects.

mental ray or renderman both have the possebility to create shadernetworks by connecting nodes. and that is the way to go. but i know that this is also a piece of hard work toget this into blender.

just with some more light shaders like anisotropic, clay, skin and other you have most things you need for the average need. and some proceduals like paper, fabric - cloth, etc would be great.

claas

fearandloathing
Posts: 0
Joined: Thu Jun 16, 2005 2:00 pm

Post by fearandloathing » Sun Jun 19, 2005 2:53 pm

cekuhnen wrote:the majority of blender users are non pro users and
with the reyes renderer comes also the need to
code the shaders and there the users will die here.
Yes, but my idea is to add interactive shader creation to Blender like ShadeTree, ShaderMan or Pixar's Slim (the latter comes bundled with the RenderMan Artist Tools for Maya).
ShadeTree: http://www.cinegrfx.com/
ShaderMan: http://www.dream.com.ua/thetool.html (free as in beer, but not free as in freedom yet, and windows only)
Pixar Slim: https://renderman.pixar.com/products/tools/slim.html

It would require alot of work initially to implement, but in the long run it would pay off since you get rendering technology maintained for free by a 3rd party.
cekuhnen wrote:i would love to have an option to render with reyes
systems but i also think they internal renderer should
not be replaced.
My reasoning was that if the internal renderer is ripped out, the developers currently working on the renderer would have more time to work on other parts of Blender (in the long run).
And the shader creator would be a key part of the interface if RenderMan output was the default, otherwise it would probably only be a tab in the current shader editor where you could choose some preset shader and change some parameters.
It would be hard to justify coding an interactive RenderMan shader creation tool if RenderMan output was a secondary choice.

But a interactive shader creation tool might require more work than I realise, and besides, perhaps the developers currently working on the renderer are only interersted in that area, and would not feel like giving that up.

cekuhnen
Posts: 0
Joined: Mon Jan 13, 2003 11:04 pm

Post by cekuhnen » Sun Jun 19, 2005 4:23 pm

well with a renderman support hardcoded into blender plus a shader creation tool blender would be one more big step mature.

but i guess that will never happen. the aqsis project is dead. i mean they dont have time include the native export into aqsis into blender. i was very excited about that. i just dislike the script solution because it often doesnt work on macs os x.

slikdigit
Posts: 133
Joined: Wed Oct 16, 2002 3:52 am
Location: Northampton, MA (US)

Post by slikdigit » Mon Jun 20, 2005 12:38 am

aqsis and pixie are both inferior to the internal renderer.
I'm sorry to sound so 'combative' in reality I'm not. Both are reyes renderers, with capabilities to do micropoly displacement which blender doesn't have. But aqsis doesn't do raytracing, and doesn't have as many or as flexible shadow options as blender. pixie isn't too stable in my tests. Niether renderer is even at one point oh level yet, while blender's, warts and all, is production proven for years. It's insanity to say, now, let's pull out the blender renderer while there isn't anything open source to replace it. Yafray is a cool renderer, but, it's goals are very different from blender's- It's far from being a drop in replacement for it. Pixar's renderman implementation may be a nice renderer, but this has nothing to do with the renderman spec- and that renderer is closed source and verrrry expensive.
I'm really psyched for the possiblity of node based materials or shader networks in blender, and the possibility of integrating 3rd party renderers into blender. But killing the internal renderer at this point doesn't seem a prudent way to go- especially when there is *nothing* capable of replacing it at this point.
I'm sorry if I sound 'reactionary' but I use this renderer every day and would be quite lost without it.

ideasman
Posts: 0
Joined: Tue Feb 25, 2003 2:37 pm

Post by ideasman » Mon Jun 20, 2005 1:13 am

in a perfect world mabe blender would be fully renderman complient.
BUT-

Renderman is a set standard, it dosent alow people to extent the internal renderer who want blender to do new things.
What if we use PRMan, assuning all the uses could afford it.
Nobody will have the rights to modify it, even if they find a problem and know how to-

Okay- so support Pixi and Aqsis (Is it realy dead?), Now we have the problem that some peoples scenes render differently on different installations and configurations of renderman rendering engines. People would complian that they want somthing that works the same everywhere (which is a real advantage of the internal rendering engine now).

Since blender is free we would need to set a free standard.

Well.. so we use Pixi, it is good quality and well maintained. What happens if the project dies.. We- Maintain it ourselves (just like the game engine? - Am I being too cynical there?), or move to a new renderman compliant engine, breaking more compatibility, still with the possibility the project might die or loose momentum (like yafray has done, aparently still in development, but much slower).


- On another topic, being renderman compatible could also be a drawback. if someone has some amazing new ideas with the skill, might not be able to improve "X" opensource renderman engine because it would break compitibility, even though it would be a great improvement.


it is my opinion that Blender needs its own internal rendering engine, Renderman addition isnt going to make Blender instantly used for films.

- We need to work on our own rendering engine, as well as improve the python interface for exporting to external engines.

- Cam

joeri
Posts: 96
Joined: Fri Jan 10, 2003 6:41 pm
Contact:

Post by joeri » Mon Jun 20, 2005 10:55 am

Grmmmlmlmmm.

Renderman is by far not the standard in video productions, mental ray is.

On photorealistic renderings mental ray is the renderer. In Industrial design and architecture people are using Brazil. Even Pixar was happy to use Brazil in parts of the incredibles.

Al these renderers have one big flaw for animation purposes; they take ages to render a frame and need renderfarms to get anything done.

Now if I'm Weta or ILM or Pixar then yes that's no problem, but just browse truw some animation projects here or on user forums and see that a lot of people can expects their animation on yafray to be ready rendering in 2008.
I want everything I can animate today to be rendered tomorrow.
Sure the image quality on blender's renderer is not as sparkling as a PR is, but nothing some post can't fix.

Replacing is defenitly a no-go for me.
By the way,... isn't Pixar against all these free PR implementations?

Another important point (as ideasman says): How to implement things that PR does not have when that's "our" renderer?
for example: I know z-offset has been a life saver on many of my projects.

dcuny
Posts: 0
Joined: Mon Jan 27, 2003 11:22 pm

Post by dcuny » Mon Jun 20, 2005 11:46 pm

Throwing out the internal renderer would be a bad idea, if for no other reason that (as other people pointed out) it makes Blender dependant on some other application. So if that application failed, so would Blender.

It also would lock Blender into doing things that "Renderman" way, which isn't always the best or fastest way.

It's also been pointed out that there really aren't any good free implementations of a Renderman compliant renderer. I've had it from a reliable source that Pixar is considering releasing a free version of PRMan, but that would be feature limited. You could argue that people should be happy with free "pro" tools, but I'd prefer to have free and open tools, so I could add things I need, instead of being locked into a proprietary scheme.

I don't think Pixar is against other people implementing Renderman compliant renderers. The issue with ExLuna (as I understood it) was one of patent infringement.

ideasman
Posts: 0
Joined: Tue Feb 25, 2003 2:37 pm

Post by ideasman » Tue Jun 21, 2005 12:56 am

Many people say that they dont want a python export script, but a intergrated rendering engine.

Currently I can see why they say this- At the moment you can only get mesh data, and that without particles etc.

What realy needs to be done is improve the Python API, I was fixing my povray exporter recently- a hobby project. And discovered that many material raytracing properties wernt available. so I added them into the python API.
The same needs to be done for area-lamps.

A project that is in the works is to add support for giving accsess to blenders renderface data as 1 chunk of faces/verts just before rendertime, during render initialization. This could be used to export non mesh object types. therefor makeing python significantly more usefull for exporting to external rendering engines.

- Cam

Post Reply