what renderer should i use for animations?

First license is cheaper though

  1. Can I upgrade my free dual-core license to use all the cores on my computer?
    Yes. The cost is the price of either the quad-core license or unlimited multi-core license (see the pricing page) minus a 50% discount we provide in return of the free license. Since only one free license is given per customer (or site), it means this discount can only be used once and the user will not be able to use the free dual-core license after the upgrade

Arexma: Thank you for the reply. Sometimes I feel like I’m lost in my own personal echo chamber in here, and I’m really happy anytime anyone includes me in a conversation. So let’s hear it for “the guys dwelling in his cave warmthened only by the light of his screen…” I’m one, too. Literally…

At any rate, I’m totally with you on BI. This whole “my expensive (and useless for animation) external renderer can beat up YOUR expensive (and useless for animation) external renderer!” thing going on here in BA these days has everyone a little flumoxed. I love BI.

So that’s why I’m a little worried about Cycles becoming Blender Internal. I won’t go off on another Cycles tantrum. Got it off my chest for the day all over Freemind’s head.
Blender DOES need something like Cycles, for preview and setting up lights and textures and blah blah. However, Blender is supposed to be an animator’s tool, first and foremost. If they don’t give us the choice between rendering in BI and Cycles for final render, I’m likely to blow a gasket. It would be a SERIOUS pain to have two or three different versions of every project just because Blender 2.6 got lost in the land of the pissed off fireflies. I really don’t want to see us end up with a fantastic 2.6 just to stick to 2.59 forever and ever.
I guess I’m saying that there should be an option in Blender Internal Cycles 2.6 to “Render the Old-fashioned way” or something…
I feel a “Hitler finds out about the new Blender…” coming on… Sigh.

Well, basicall it´s all there in Cycles. You “just” have to include a DirectLight kernel using the apropriate functions. Maybe it´s a task I´ll take on at one day. Many of the 3rd party renderers have direct lighting kernels or support biased raytracing, however I feel they are too far away from Blender. That´s why I started my own little raytracer basically. I want it to be like BI just a tad better.
And yeh, Blender should be an animation package first, which the complete overhaul of the animation system proofs, but it´s also the “jack of all trades - master of none”. It’s often is foced to branch out simply because the interoperability with other tools is not possible, or because there´s a lack of commercial addons like for vRay, 3ds, maya and so on. But the new addon system will fix that I am certain, BSurfaces already has shown it.

My renderer is coming along quite good.
The first version only had basic raytracing but already had photon mapping with problems with gathering photons, but you could navigate the scene in realtime.
After that I started the second version from scratch because I needed a different program structure. By now it got:
Spheres, diffuse, specularity, multimirror, camera model with FOV, pointlights with color, shadows from multiple lightsources and multithreading. It´s not much but written starting with an empty c++ project it takes time :slight_smile:
Next will be transparency, softshadows, most likely directional and area lights, then rotation for camera, lights and objects and by then everything should be so slow that I got to implement a spatial subdivision, most likely a kdtree/octree. Once that all is done I got to implement triangles and meshes and then it´s time to preheat the photon cannon again and start to implement it.

But a few images say more than the wall of text above :wink:

http://i53.tinypic.com/1zeldsl.jpg
Left very crude raytracing, no recursive mirror, no specularity, just needed basic raytracing in order to test photonmapping.
Middle is the (only) gathering pass of the photonmap, it´s only with 1000 photons but the result is surprisingly good although you can see, the gathering at the spheres fails, they are blacked out. I think there are photons trapped inside the sphere.
Right is a composite of ray+photon. I also had no caustics in the photon kernel, I didn´t have transparency at all.

The photon emmision also works with a consistant seed for the random directions, so you can use it for animations. This way the same photon is emmited in the same direction in each frame, just it´s path changes with a possible animation.

That´s the basic idea, renderpasses, irradiance passes/maps and you can composite, combine and fake the hell out of the renderer so you get fast and believable but physically incorrect results :smiley:

The current state of the raytracing kernel is this:
http://i55.tinypic.com/2reibrp.jpg

It´s still slow (28s on a quadcore) but it has no optimiztions whatsoever, it checks each ray against all objects in the scene for intersection which can take some time (2052 objects)
I guess with a kdtree, some processor extensions (SSE) and calculation optimizations i should get it 10 times faster quite easy. And I also want to look into OpenCL and there´s 64bit optimization as well.
The mirror depth is set to 2, it looks a bit odd because the spheres with a shadow on it reflect each other ^^
I am also not sure if the greenish sphere mirrors correctly in the specularity of the yellow light, but that´ll be an issue of testing lateron.

The program structure is made that the renderer can handle multiple scenes at ones, scenes with multiple cameras and lightsources as well, it just depends on what you set active to render.

Well, I am having a lot of fun with this stuff and hope that at one point I got a tool you can use to render animations fast for Blender.

btw. working title for the photon cannon was “Lichtblick” which means “gleam of hope” but literally translated it means Licht = light, blick = view… but I found this to sound cocky.

So the product will be called cRayon. I build the renderloop so that the image constructs in horizontal lines apart 4 times the number of threads. It looks like you draw it with crayons and it got Ray in it. :slight_smile:
Personally it´s important to me that the scene builds in scanlines, because you can already judge the image after the first iterations when you got a full image with black lines between it.

The whole thing currently uses SDL so it´s able to compile crossplatform. I guess though once I need a real GUI i´ll change to wxWidgets, which is crossplatform as well. So Linux and OSX users can use it as well.

I guess I´ll simply abuse this thread a bit to keep you updated on the renderer. I think it´s too early to give it it´s own thread and I don´t want to at this point :smiley:

Well, enough talking. back to coding :smiley:

Hi arexma, could you explain in short words why you not use your power to extend cycles or luxrender.
We have another forum user coding his own renderer and i never understand this splitting of capabilities.
No offense, just curious.

Cheers, mib.

Thanks for the clearing up the 2 core vs 2 threads. I am new to 3delight and did not really notice. Another advantage of going Renderman is the fact that there are other renders out there that will process your RIB files. Like Aqsis, for example, which is entirely free and uses all cores. I chose 3Delight, for the moment, because Matt’s exporter worked right out-of-the-box with it. But there is no reason why it could not render via Aqsis as far as as I can tell. Aqsis is presently receiving a development burst. I can’t wait to try out v 2.0.

None taken.

I guess you mean Bao? Well, he´s not really writing a renderer for what I see. I know Jacco´s work, and Baos really is just Jaccos raytracer and he started to play with the source. I am not certain what he is doing really with his voxels I guess he´s doing what I do. Trailing and playing. :smiley: It´s really addictive once you started.

To answer your question:

The short version: Because I don´t want to. :smiley:

The long version: I am not hopping onto cycles or luxrender for various reasons.
I spend a few months now reading into all the raytracing theory and linear algebra. Now I got to implement it practically. All the knowledge is worthless unless you use it at some point, and frankly I think I am not fit for the task yet, neither do I have the time or want to fully commit to an opensource project.
Cycles isn´t really for me because I am not very familiar with Blenders codebase and have pretty much no experience with CUDA coding, so reading into the sourcode would be like reading a book in a language I don´t understand. I got to code a raytracer core I understand, got to look into Blender, try to connect them and see how it works. Before I can run fast enough to take off, I got to learn to walk :wink:
Luxrender is actually the exact opposite of what I want, although it has a direct lighting kernel.
I want a physically incorrect, non scientific fast raytracer with GI, layers and fully biased, with a very tight Blender integration, capable of doing distributed rendering, able to feed renderpasses back into blenders compositor.
Something like mypaint under the raytracers, where you don´t need to know how a renderer and all it´s kernels work, and study physics to be able to setup materials. :slight_smile:
And the last point is, that my plan would be to actually earn some pocketmoney with it, that´s why I want to stay away from already GPL´d projects. So far I only use/plan to use openmp,SDL/wxWidgets and all are fine for commercial use non GPL´d.
The basic idea is something like offering a free version rendering 720p, or the highest youtube resolution or whatever, able to work on one machine, and for dunnow, 50 Euro, 100 Euro no idea yet, but “with a fair price” offer a professional version able to render 1080p with unlimted nodes. I don´t think there is any need for an educational version and a pro version or whatsoever.
This way the casual or hobby blender users can render their animations in a decent quality on their machine. And somone who needs 1080p and has a rendercluster surely works commercially with it earning money, so he can afford a license. Maybe I´ll make it pay what you want 5Euro+ I really haven´t given it much thought, but obviously some thought.
But I want it to be a path between giving back to the community and making some money for new hardware or software. Call it funding a hobby.
So I guess there´s a second short version:
I want to make some money, I don´t want to GPL it, I am not too sure yet what I am doing at all :smiley:

Beyond that, I got no design document, the whole project structure is in my head and to collaborate means to write comments in the code, have a DD, designate tasks, wait until persons do their stuff. I don´t need or want this at this point, nor do I have the time.

@Atom:
It´s 2 CORES vs 2 CPUS.
A quadcore CPU has 4 cores and can run as many threads as you start (see taskmanager). The limitation is that it can run just 4 threads simultaniously.
3delight can run on 2 cores. this means you can run 4 threads, 8 threads whatever, but only 2 are able to run simultaniously. So if you got 1 CPU with 4 cores, 2 cores are doing nothing, or with load distribution it means that all 4 cores run with 25%.

Thanks arexma for short info, but long is also very interesting and now i understand your way to go.

Tschuess, mib.

Nobody says you have to use only one renderer to produce the components for your shot …