6. December 2011

Fine tune three.js export from Blender

Three.js exporter for new version of Blender 2.60 supports many features. The problem is that default exporter settings generates quite big JSON file even for small models.

Here is list of defaut options for save model function from export_threejs.js:

         filepath = "",
         option_flip_yz = True,
         option_vertices = True,
         option_vertices_truncate = False,
         option_faces = True,
         option_normals = True,
         option_uv_coords = True,
         option_materials = True,
         option_colors = True,
         align_model = 0,
         option_export_scene = False,
         option_lights = False,
         option_cameras = False,
         option_scale = 1.0,
         option_embed_meshes = True,
         option_url_base_html = False,
         option_copy_textures = False,
         option_animation = False,
         option_frame_step = 1,
         option_all_meshes = True

These are good settings when you want to save all objects from scene. It is quite overkill when you need to save just one dynamically generated object. I recommend to turn off following options:

option_all_meshes, option_materials

Here is sample code in Python which will select object by name and save it to file with defined options:

import bpy

bpy.ops.object.select_name(name="ObjectName")
bpy.ops.export.threejs(filepath="ObjectName.js", option_all_meshes=False, option_materials=False)

Further articles about Blender and Python are located under the tag Blender on my blog.

Enjoy :)

27. June 2011

Quick start: Blender and Python

If you know right tricks then writing scripts for Blender is quite easy.

Here is video tutorial that explains some of those tricks. Enjoy.

22. June 2011

Create mesh with correct faces in Blender by Python script

This video tutorial explains how to create mesh using Python script.

Vertices must be defined in right order when we want to define correct face.

Let’s imagine that we would like to create following object:

Numbers are marking vertices beginning from 0.

Let’s define them:

faces = ((0,1,2,3), (1,2,6,5), (1,0,4,5), (2,3,7,6), (0,3,7,4), (4,5,6,7)

Just display normals to see whether everything is ok.

As you can see, only few faces have correct normal.

In order to define face correctly use following rule:

Imagine that you’re sitting inside object and you’re looking outside.

You have to define face by naming vertices in clockwise fashion.

Solution is:

faces = ((0,1,2,3), (5,6,2,1), (4,5,1,0), (2,6,7,3), (0,3,7,4),(7,6,5,4))

For more details about Python and Blender pay a visit to blendercookie.com.

21. June 2011

Writing Python scripts for Blender with Intellij IDEA

Blender is powerful 3D modelling tool. What makes it really powerful is support for Python.

I was playing little bit with configuration of Intellij IDEA and I found out that it is possible to use Intellij IDEA for developing Python scripts for Blender.

Here is video tutorial:

Update 23.06.2011: Video tutorial was recorded for Blender 2.57. There is small change in Blende 2.58 – scripts are located in Program Files directory, like: C:\Program Files\Blender Foundation\Blender\2.58\scripts\modules

Some useful links:

5. June 2011

Blender 2.57 – how to change font size of UI

Blender has a very small font in UI elements. This is quite problematic when you’re using high resolution. It’s quite hard to read tiny letters.

I spent several minutes searching for the option how to change font size.

It’s quite easy, but not obvious.

Go to File menu, select User Preferences. Select the last tab System.

Change option DPI in section General.

Change resolution to desired DPI.

It’s the first option, but it took me several minutes to realize that changing this value will result into a bigger font. :-)