Blender Workshop @UBC – step-by-step
/* versão em português */
What do you need to organize a workshop?
Well, last August we had one at UBC, and this is what this post is about.
The main idea was to use it as a conclusion activity to our summer tasks. It also would be a good opportunity to give something back to the community since we have received so much from them.
Mike Pan and I did a general call to Blender users of the west coast of North America (ok, Vancouver and Seattle). The meeting was intended to be a friendly talk about Blender, Blender Game Engine, and the project itself.
SCHEDULE OF EVENTS:
09:30 – 10:00 Reception
10:00 – 10:30 Discovering Blender: An Introduction to Blender
10:30 – 11:00 Blender as a visualization tool for Fisheries Center
11:00 – 12:30 Lab: Your first game
12:30 – 01:00 Lunch
01:00 – 03:00 Lab: Materials and lighting in games
03:00 – 04:30 Lab: Physics, Python and Shaders
04:30 – 05:00 Basic optimization for realtime application
05:00 – 05:30 Closing
More then twenty people showed up. If you take a look at the schedule you can see that we tried to use the whole time. However, as the most import thing is the people being together, we had a few breaks to intended socialization.
Discovering Blender: An Introduction to Blender
This rainy day started with a Big Buck Bunny screening. If you are really new to Blender, or came to this site for misterious reasons (and believe me it happens all the time) you may be unfamiliar with that. This is a short 3D animation movie, completed by seven artists and developers in Amsterdam. Their main goal was to promove Blender 3D, and improve it against real daily-production demands.
To complement it, we screened a home-made compilation of videos showcasing what Blender Game Engine is capable of. To keep the focus in our schedule, we tried to emphasize not only games but specially others interactive applications.
If you want a list of the content, here it goes:
Boom Demo(Endi), Club Silo(Luma Labs), DukDuk!(Glenn Melenhorst), Yo Frankie! (Apricot team), Rube Goldberg Device(Christopher Plush), Recycle Game (Diego Rangel), Architectural Walkthrough (Cícero Moraes). Beside the demos Mike share in his website, and my old Urban Walkthrough.
We tried to show the wide range Blender offers. It is not only a powerful tool for movies and games. It is handy for any kind of computer visualization (specially interactive ones).
Blender as a visualization tool for Fisheries Center
This project started in 2007 as result of a partnership between the Fisheries Center of University of British Columbia and the Masters of Digital Media Program. Its main goal is to provide high-end technologie and scientific data.
The Fisheries Center is responsible for the development of EcoSim. This is a software that allow you to predict and simulate the amount of biomass in ocean environments. The interaction with EcoSim is designed to receive fisheries policies as input in order to stimate the marine population in this new specific scenario.
The EcoSim is a tool made to support decision-makers (usually politicians) in one of the most important economic fields of Canada. It can be easily handled to change the season of the catch of Salmon, for example, and in no time flat display the consequences.
To accomplish it task, it is desirable to make the data more accessible for non-technicians. Therefore Blender has been used to produce real-time visualization of how the ocean would looks like. Saying this in other words: we have a virtual ocean that correspond to a specific bay, and the species’ population proportionally changes according to the data from EcoSim.
The EcoSim (or EcoPath) runs as a daemon and data server connected with Blender through a .NET layer/client. Blender uses Python scripts to receive the data and provide the visualization.
I swear it’s that simple
So on, we took the time to show the files, scripts and explain how does everything work together. After some questions and another explanation about our workflow, we played the simulation direct from Blender. We made a video showing a kind of making-off (to helps us in case something went wrong :p) and we screened it as well.
In the advanced topics we covered:
Lab: Materials and lighting in games and Lab: Physics, Python and Shaders
For this section we decided to dirty our hands This practical activity was intended to show physic interaction in the Game Engine, and to explain general settings.
It’s funny that the workshop happened just one day after the official release of Blender 2.47. We couldn’t help but guilty downloading more than 20 times the software from the servers. We had now the better Blender had to offer us (up to that time).
If you wanna check the base file we used in this lab, take it here: Bowling.blend
This is a very simple bowling game. We took the time to tweak it, setting, changing, customizing …
It was very fun.
In the end we had a quick session regarding script programming for Blender Game Engine.
Basic optimization for realtime application
Finally, after our day-long warm up we got in our final point in this workshop.
We talked about some basic technics in game design. Showing slides and relating them to the project we talked about:
- display list: performance boosting in modern graphic cards.
- textures power of 2: square textures sized as following: 128, 256, 512, 1024, 2048, …
- low-poly modelling: reducing and optmizing the number of polygons of the object meshes
- baking – using textures to simulate shadows and details
- debugging and bottlenecks: how to identify and solve problems with Blender Game Engine
It’s needless to say that we were all tired and realized. We had a blast that Sunday, and the presence and energy that everone brought made of it a remarkable day.
Working with Blender is already something good. Getting know that there are people around you that follows the same way is even better.
Offcourse organizing this kind of event is not a piece of cake. However I hope you can find some help and stimulus here
(A big thanks to UBC for this opportunity and for supporting and hosting the workshop)