Hi there, This is a bit of a last minute post but here it is. This week (24-26/10/2014) I’ll be presenting two talks in the Blender Conference 2014 in Amsterdam.


Both talks will be available with a live-streaming, and as a video to be watched later.

  • Multi-View and Stereo 3D: Show and Tell [link]
  • Blender as a Mission Preparation Tool for Drones [link]

The first one is on Friday at 14:00 (10:00 in Brazil), while the second one is on Saturday at 16:30 (12:30 in Brazil).

If you have any question on either presentation please let me know in the comments so I can get back to you.

Baking is a popular ‘technique’ to flat down your shading work into easy to use images (textures) that can be applied to your 3d models without any concerns with lighting calculation. This can help game development, online visualization, 3d printing, archiviz animations, and many other fields.


Koro, from Caminandes project, fully baked

Since last September I’ve been working part time for the Blender Foundation to help implementing game related features in Blender. So far I worked on bug fixes and a few nice features such as: improvements in the Triangulation Modifier, Photoshop PSD support and Walk Navigation System. Then comes December, and with it the possibility of tackling something new. We decided it was time to give baking a go.

Supported Maps

The Cycles renderer is based on physics based lighting calculations. That means the passes we can bake in Cycles are different than what you may be used to in the Blender Internal renderer.

Data Passes

  • Normal
  • UV
  • Diffuse/Glossy/Transmission/Subsurface/Emit Color

Light Passes

  • AO
  • Combined
  • Shadow
  • Diffuse/Glossy/Transmission/Subsurface/Emit Direct/Indirect


Koro Ambient Occlusion Bake Map


Koro Combined Bake Map

The above maps illustrates Ambient Occlusion and Combined baking. Ambient Occlusion can be used to lit the game scene, while combined emulates what you get out of a full render of your object, which can be used in shadless engines.

The character baked here is Koro from the Caminandes project. Koro was gently made available as CC-by, so while I take no credits on the making of it, I did enjoy supporting their project and using Koro in my tests. Koro and all the other production files from Caminandes Gran Dillama are part of the uber cool USB customized card  you can buy to learn the nitty-gritty of their production, and to help supporting the project and the Blender Foundation.

Open Shading Language

Open Shading Language (OSL) is a shading language created and maintained by Sony Image Works and used by them in many blockbusters already (Amazing Spider Man, MIB III, Smurfs 2, …). It’s a great contribution from Sony to the industry, given that it was released in a permissive license, free to be implemented, and expanded by any interested party.

Blender was the first 3d package outside of Sony to officially support OSL, and since November 2012 we can use OSL in a “Script Node” to create custom shaders. Blender uses OSL via Cycles. The “Script Node” was implemented by Brecht, Lukas, Thomas and … me (:

Thus, with baking support in Cycles we get for “free” a way to store the shaders designed with it. In the following example you see the Node Cell Noise sample script from OpenShading.com. So even if your game engine has never heard of OSL, you can still benefit from it to make your textures and materials look more robust. How cool is that?

Open Shading Language Baking

Open Shading Language Baking

I Want to Try It

There are no official builds of this feature yet. However if you are familiar with git and building Blender, you can get it from my github repository. Clone the bake-cycles branch from the blender-git repository. Once you build you need to UV Unwrap the object you want to bake, select it and run the following script:

import bpy
bpy.ops.object.bake(type='COMBINED', is_save_external=True, filepath="/tmp/baked.png", width=512, height=512)

If you can’t build your own Blender get a build on GraphicAll.org. You can also follow my Blender Foundation Weekly Report to learn about the progress of this feature and to be informed on when the work will be ready and merged upstream in the official Blender repository.

Missing Bits

There is still more work ahead of this project. Cycles Baking is actually a small part of a big planned baking refactor in Blender, which includes Baking Maps and Cage support. We only decided for Cycles baking to be a start point because the idea was to use Cycles to validate the proposed refactor of the internal baking API.

That means Cycles Baking may or may not hit Blender on its own any soon. There are bugs to be fixed, loose ends to be tied, so it’s not that I’m spending time anxiously wondering about when this will land anyways (;

I would like to take the opportunity to thank Brecht van Lommel for all the help along this project, and the Blender Foundation for the work opportunity. I’m glad to be involved in a high impact project such as the Blender development.

Last but not least. If you work professionally with Blender and can benefit from features like this, consider donating to the Blender Foundation via the Development Fund page.

Best regards,
Dalai Felinto


Final render image. Light and material, Dalai Felinto (me), post-processing: Bruno Nitzke, modelling: Multiple Authors

Last month I attended a Cycles workshop during the BlenderPRO in Palmas (Brazil). I went for the BlenderPRO initially to give a speech on Game Development with Blender, and a Python workshop for Blender addon development. Luckily for me, the conference was beyond my own expectations and I had a great time also attending some of the other talks and workshops. A workshop that I enjoyed particularly well was “Cycles for Architecture Rendering” by Bruno Nitzke.

The workshop started with a pre-modelled scene, with a camera already staged (assets from SketchUp 3D Warehouse and Blend Swap). From there we started talking about lighting and different lens/camera settings. For interior scenes, Bruno starts with an HDR map for indirect ambient lighting. We then setup the HDR, a Sun light, a Point light for the side-lamp and lighting was pretty much done.

From there we covered architecture material settings in Cycles, with a lot of Mix Shader nodes, good UV-Mapped textures, and some procedural textures to add extra perceived randomness (e.g., in the Barcelona chair). It was a 4-hour long workshop so he couldn’t cover everything he wanted. To compensate that, I used the Color Management feature in Blender to bring my image somewhere closer to the final look I envisioned with Film Kodak Ektachrome 320T, exposure 0.755, Gamma: 1.55. By the end of it, my raw image was like this:


After the workshop, Bruno asked my rendered image so he could show me the post-processing his clients are used to (and pleased by). You can check the node setup, it’s nothing very fancy, but enough to give the image that extra punch. The final image you can check in the post banner 😉

Composite Nodes by Bruno Nitzke

Composite Nodes by Bruno Nitzke – click to enlarge

As someone who has touched Cycles code here and there, it’s nice to be able to use the tool and reconnect myself with my architect side. For new-readers of this blog you can check in the very end of my portfolio my 2007 renders with Blender, SketchUp, VRay, …

A big thank you for Bruno for being so clear in his instructions and the commitment with the class. And for the organizers of the BlenderPRO for putting together such a memorable event.

Have a great day!

Recently a fulldome producer needed a solution to stabilize panorama footage and I ended up collaborating with Sebastian Koenig to make a free-gpl addon for Blender to accomplish the task.

There is a very nice post explaining how we came up with this project and the advantages of having a system like Blender Network around: [link]

The addon is on github:

Worth mentioning, this is pure stabilization based on keeping one point steady and the angle between the two points the same across the footage.

For more advanced tracking a more robust system would be needed (e.g., to select four floor points and a horizon point to give the footage always up and facing the same direction, or some damping system to allow some rotation, …). But basically the client was happy with the solution, thus so were we.

Here it is a video showing how to use the tool (@6:48 shows before/after)

Maybe in the future, with some further interest and funding this can be expanded to a more complete solution. Meanwhile if someone wants to expand the solution, you are welcome to contribute on github 😉

Addon implementation based on the original work developed last year on Visgraf/IMPA by a different project/team (D. Felinto, A. Zang, and L. Velho): [link].




The book in a nutshell:

  • Pages: 448
  • Figures: 317
  • Files: 100
  • Release Date: June 20th, 2013
  • Publisher: Cengage Learning

Where to buy the book?

Where can I get the sample files?

Some people reported problems in finding the companion files. The official link is www.cengageptr.com/downloads, but if you want a direct links you can go here.

How to get a copy for evaluation?

  • If you are considering to adopt this material in a classroom, request a copy directly with Cengage.
  • If you want a preview of the chapter one, download it here. (or use the “Look Inside” option in Amazon.com)

What does the book cover?

The book is organized in the following chapters:

  1. Blender in a Nutshell
  2. First Game
  3. Logic Bricks
  4. Animation
  5. Graphics
  6. Physics
  7. Python Scripting
  8. Workflow and Optimization
  9. Publishing and Beyond
  10. Case Studies

We start covering the basics of Blender for new comers followed by a simple game project from start to end. That should give the reader the perspective of the components of the Blender game engine important for making your own projects.

The following chapters  are self-contained, each one with its own approach. Most of them have tutorials and short projects focused on the presented tools. Finally, chapter 10 gives the reader a perspective of real usage of the Blender game engine presenting 10 projects from different artists around the world explained by the authors themselves.

What version of Blender does this book cover?

The book covers Blender 2.66a fully.

Will there be an ebook?

Yes. So far online for Kindle (and in the USA), but other options and regions should be available shortly. For the Kindle version get it here.

About the authors:

Mike Pan is a CG generalist who started using Blender 10 years ago, before it was open sourced. Mike’s interest in Blender includes everything from special effects to compositing, and from real-time graphics to scripting. He has given talks at the Blender Conference in Amsterdam, hosted workshops at the View Conference in Turin and Blender Workshop in Vancouver, and conducted a three-day Blender course in Kerala, India. Mike is currently the lead programmer for a two-year project at Harvard Medical School to develop a biomolecular visualization software using Blender. Before that, he worked at the University of British Columbia with Dalai on a marine ecosystem visualization project. Mike lives in the always-raining Vancouver, Canada. You can find him at mikepan.com.

Dalai Felinto, who is currently living in Vancouver, Canada, was born in sunny Rio de Janeiro, Brazil. He has been using Blender since beginning his undergraduate studies in Architecture and Urban Planning in 2003. His participation in the Blender Community includes papers, workshops, and talks presented at events such as BlenderPRO in Brazil, Che Blender in Argentina, Blender Conference in Amsterdam, View Conference in Turin, BlenderVen in Venezuela, and Blender Workshop in Canada. He has contributed patches and code to Blender since version 2.47. Dalai uses Blender and the game engine in his work as a science communicator at the University of British Columbia, Canada. However, his day job doesn’t stop him from doing freelance Blender projects around the world. His latest works have been for Italy, England, and the Netherlands. Dalai’s dream career move is to land a job in the movie industry, working at Pixar. Follow his adventures at dalaifelinto.com.



Bonus Question: How did this book help the game engine?

One of the reasons it took us almost three years to complete this project was to make sure it would cover all the game engine latest developments.

We were alarmed that some areas of the BGE (Blender Game Engine) could/should use a revamp. I’m one of the BGE developers, so we made the decision of taking the book writing and some needed development side-by-side. That includes a lot of changes in the UI, the support for unicode and ttf fonts, and the removal of texface properties in favour of per-material settings, and lots of bug fixes.

It wasn’t an easy call because we knew the book delay could harm the book sales. However my first concern was into making sure we were proud of the engine we were talking about. And even though we both make a living out of working with Blender and the game engine, we knew there were room for some pressing improvements.

We finally settled on the 2.66a. And before handing all the manuscript to the publisher, in the author review phase we made sure things were updated. From there on people can follow the release notes of new Blender and it will be fine.

The book companion files (over a hundred) also helped to test the BGE itself. Just to illustrate it, we were short in time prior to 2.66 release and couldn’t dedicate time to test the official release (somehow to finish a book takes time (: )). We then worked closely with other developers to have 2.66a stable as far as the animation, uv materials, and multiplatform support goes. The result? between 2.66 and 2.66a alone we had 15 bugs fixed by the bge developers (some by myself directly, and others by fellow programmers). And all the book files are working in 2.66a as they were originally conceived in all major platforms (Linux, Mac and Windows).

We hope you enjoy the book!

Feel free to drop us a line with any feedback or commentaries you may have.

For a “tinkering” developer there is no satisfaction like trying your code into production and have it working out of the box. I’ve been coding the 3-D stereo support for the multiview branch with no stereoscopic display, so today was the first time I could see it in action… and it works 😉

I tested top-bottom, side-by-side and interlaced (windowed and fullscreen). For interlaced windowed mode the “swap left-right images” is particularly important.

Caminandes - 3-D still courtesy of caminandes.com

Caminandes – 3-D still courtesy of caminandes.com

The one thing I didn’t test is the pageflip functionality. I came to the realization that my laptop doesn’t support 120Hz displays. I heard it’s working though, so I’m at ease.

I would like to express my gratitude to Dr. Maria Lantin, director of the Stereographic 3D Centre of Emily Carr university of art + design for so kindly open the doors and let me play with their “toys”. The same goes for her lab research team,  in particular Alan Goldman, Denise Quesnel and Sean Arden for taking the time to show their latest (extremely cool) projects and to help setting me up with the 3-D display and projector. And last and not least, for my friend Dr. Barry Po for connecting me with them (thanks Barry!).

For my own records: with the BenQ projector they are using a 3D-XL 3D Projector Adapter from Optoma to convert side-by-side or top-bottom inputs to time-sequential format.

And if you like the Llama, make sure to check the short movie Caminandes.

Related Links:

I got a bit tired of the back end coding for the Multi-View branch and decided to tackle the frontend for a change.


Anaglyph Mode for 3-D (Multi-View) – Los Padres OpenEXR [link]

Stereo Display Options

Stereo Display Options

Blender has a very modern drawing system (nicknamed Triple Buffer) which takes control over the buffer swapping routines (instead of relying on the graphic card Front/Back Buffer handling). That allows Blender to redraw the UI really efficiently. That also made the front-end implementation a breeze.

Now in User Preferences you can set the 3-D display you will be using with Blender. At some point I may make it a per-window option, but for now it will affect all the opened windows.

Next thing you need is a 3-D (Multi-View) image. You can simply render your own images (make sure the RenderViews are named “left” and “right”) or download a few OpenEXR samples.

3-D View


With no 3-D display set, when you open a 3-D image you should see the views in the Image Editor drop-down. When any 3-D display is set, however, you will see a new “3-D” option. Once this is set, you can take full advantage of your 3D-gear.



The following are samples from the other current display options. Be aware that the image I’m using doesn’t converge in a nice stereo 3-D photo. It’s in fact intentionally produced to show very different images, to make sure the code is working (programmers, go figure).













And not that you asked, but this was a great weekend for my 3-D philia. Iron Man 3 was a nice movie, and yesterday I attended two seminars at the SID – Display Week 2013 which turned to be quite inspiring talks with the addition of seeing some jaw-drop 3-D displays. I’m actually going there again tomorrow for the exhibit booth to see if I can clarify some pending questions that I have. I guess I should thank Queen Victoria for the long weekend 😉

Related Links:

I’ve been writing too much about coding, programming and other cool boring topics 😉

For a change I decided to share my current “desktop image”. This was part of the visualization I built for the AAAS 2013, for the Nereus Program sections.


The curves, spheres and the conformance of the visuals to an invisible translated-sinoide were all done with a Python addon I wrote for Blender. I will write more about this project one day.

The slightly yellow background (in oppose to pure white) is thanks to the great book: Visual Strategies: A Practical Guide to Graphics for Scientists and Engineers” by Felice C. Frankel and Angela H. Depace.

This video showcases the current snapshot of the multiview branch I’ve been working on.

Source Code: http://github.com/dfelinto/blender/tree/multiview

Original Proposal: http://wiki.blender.org/index.php/User:Dfelinto/Stereoscopy

For follow ups in the development I will keep posting in the bf-committers mailing list. But I will try to keep my blog up to date as well.

If you like my desktop background, this is the cover of my upcoming “Game Development with Blender” book with Mike Pan. The book is its final revision stage (checking the final pdfs about to be printed) and should be shipped soon. The pre-sale campaign on Amazon is still on-going.

Have a good day!


Related Links:

What if we could work in a stereoscopic 3d animation and wanted to preview the work in the viewport? Hopefully that will soon be possible in Blender (in my version of Blender at least :p ).

Click to see the complete interface

Click to see the complete interface – model courtesy of patazstudio.com

After finishing the dome-stereo support (I got it all working now ! 😉 ) in Cycles, I decided to investigate how would be to support stereo in perspective (non-fisheye) mode. The full disclaimer will come once things are in a better shape, but I gotta say, it’s fun coding.

One thing I’m trying to figure out is what should be builtin in the Blender C code, and what should be implemented at an addon level. People have been doing stereo renders one way or another, so I’m confident that as long as we provide the bare-bones of stereoscopic support, they will be happy. In the links below there is actually a really nice addon for Blender 2.6.

mirrored test - BMW model courtesy of mikepan.com

Cycles Stereo 3D Render – Mirrored Display – BMW model courtesy of mikepan.com

I have mixed feelings about stereo-3d movies. But in the last Siggraph Asia I attended the most spectacular workshop on “Constructing a Stereo Pipeline from Sratch” by Disney Stereographer Vladimir Sierra. This changed the way I see 3d movies, and reinforce to me the importance of attending those conferences whenever possible. Even nicer when you go to present a project 🙂

That said, I never worked in a stereo-3d production and I don’t want to limit the possibilities here by my experience. To help with that I’m counting on 3D artist Francesco Siddi to help with designing a nice workflow proposal.

Coming up next: a crowd-funding to get me a real 3D Display :p
(kidding, though I wouldn’t mind)

My own reference links:

  • NVidia presentation on Siggraph 2011 on Stereoscopy (pdf)
  • 3D Movie Making by Bernard Mendiburu (book)
  • Cinema Stereoscopico by Francesco Siddi (book – Italian)
  • Blender 2.6 Stereoscopic Rendering Addon by Sebastian Schneider (link)
  • 3D Fulldome – Teaser (link)