Blender绘制大脑表层,并高亮染色
首先, 有必要熟悉一下Blender的一些快捷键。(实在不想吐槽Blender反人类的交互操作了)
按鼠标右键是选择某个物体。(是右键,而不是左键!)
按A键,取消选中或者选中全部物体。
按H键,隐藏选中物体;按Alt+H键,重新显示隐藏的物体。
Ctrl+Z,撤销操作。
按R键,移动鼠标,旋转选中物体(场景不动)。
按住滑轮拖动,旋转场景。
按Del,再按回车,删除选中物体。
然后,讲一下在Blender里面怎么运行python代码。
现在讲解怎么绘制大脑。
首先,删除场景内默认的物体。(这一步很重要,否则后面会报错)
然后,下载脑表层数据obj文件。
下载地址:https://brainder.org/research/brain-for-blender/(不FQ会有点慢)
从里面找到自己需要的obj模型,下载到本地,解压。
然后,把所有obj文件都放到C:\objects文件夹里。
最后,在Blender里运行下面的代码:
import os import bpy from random import random path_to_obj_dir = os.path.join('C:\\', 'objects') file_list = sorted(os.listdir(path_to_obj_dir)) obj_list = [item for item in file_list if item.endswith('.obj')] for item in obj_list: path_to_file = os.path.join(path_to_obj_dir, item) bpy.ops.import_scene.obj(filepath = path_to_file) Mat = [] for obj in bpy.data.objects: mat = bpy.data.materials.new('MaterialName') mat.diffuse_shader = 'LAMBERT' mat.diffuse_intensity = 1.0 mat.diffuse_color = (random(),random(),random()) Mat.append(mat) bpy.context.scene.objects.active = obj mat = bpy.data.materials['MaterialName'] if len(obj.data.materials): obj.data.materials[0] = Mat[-1] else: obj.data.materials.append(Mat[-1])
运行结果如下:
参考网址:
http://stuff.wp.viranyi.com/?p=48
https://blender.stackexchange.com/questions/24133/modify-obj-after-import-using-python
再分享一个bpy创建文字对象的方法(Blender的文档实在不太实用,要搜很多资料才能解决一个问题):