首先, 有必要熟悉一下Blender的一些快捷键。(实在不想吐槽Blender反人类的交互操作了)

  按鼠标右键是选择某个物体。(是右键,而不是左键!)

  按A键,取消选中或者选中全部物体。

  按H键,隐藏选中物体;按Alt+H键,重新显示隐藏的物体。

  Ctrl+Z,撤销操作。

  按R键,移动鼠标,旋转选中物体(场景不动)。

  按住滑轮拖动,旋转场景。

  按Del,再按回车,删除选中物体。

然后,讲一下在Blender里面怎么运行python代码。

  

  

现在讲解怎么绘制大脑。

  首先,删除场景内默认的物体。(这一步很重要,否则后面会报错)

  然后,下载脑表层数据obj文件。

    下载地址:https://brainder.org/research/brain-for-blender/(不翻墙会有点慢)

    从里面找到自己需要的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的文档实在不太实用,要搜很多资料才能解决一个问题):

Blender绘制大脑表层,并高亮染色的更多相关文章

  1. openGL加载obj文件+绘制大脑表层+高亮染色

    绘制大脑表层并高亮染色的工作是以openGL加载obj文件为基础的,这里是我们用到的原始程序:只能加载一个obj文件的demo. 然而,一个完整的大脑表层是由很多分区组成的,因此我们的程序需要支持两个 ...

  2. ITxlab倡议启动“互联网X大脑”计划

    导语:"互联网X大脑"计划由ITxlab(互联网X实验室)联合科学院相关机构.基于7年以来取得的研究成果,倡议建立的互联网与脑科学前沿研究平台,吸引不同领域专家进行科学研究和成果交 ...

  3. Android 之surfaceView (画动态圆圈)

      通过之前介绍的如何自定义View, 我们知道使用它可以做一些简单的动画效果.它通过不断循环的执行View.onDraw方法,每次执行都对内部显示的图形做一些调整,我们假设 onDraw方法每秒执行 ...

  4. CALayer总结(三)

    CPU VS GPU 动画和屏幕上组合的图层实际上被一个单独的进程管理,而不是你的应用程序.这个进程就是所谓的渲染服务.在iOS5和之前的版本是SpringBoard进程(同时管理着iOS的主屏).在 ...

  5. Android IOS WebRTC 音视频开发总结(十二)-- sufaceview

    谈到音视频不得不谈谈对视频呈现的理解,为了让大家能有一个更好的理解,先看看android里面SurfaceView的原理,后续陆续分享其绘画原理. 说明:本文是转载的,转载自哪里我也不知道,貌似经过很 ...

  6. 转:android surface简单使用Demo

    转: http://blog.csdn.net/listening_music/article/details/6860786 通过之前介绍的如何自定义View, 我们知道使用它可以做一些简单的动画效 ...

  7. Tableau学习笔记之四

    创建基本变量图表: 1.可以创建表格,条形图,饼图,直方图,线图,堆积条形图,箱线图等. 2.根据自己选择的变量和维度的数量,Tableau中的“智能显示”会相应的提醒,可以绘制哪些图形,可以绘制的一 ...

  8. CoreAnimation6-基于定时器的动画和性能调优

    基于定时器的动画 定时帧 动画看起来是用来显示一段连续的运动过程,但实际上当在固定位置上展示像素的时候并不能做到这一点.一般来说这种显示都无法做到连续的移动,能做的仅仅是足够快地展示一系列静态图片,只 ...

  9. Android WebRTC 音视频开发总结

    www.cnblogs.com/lingyunhu/p/3621057.html 前面介绍了WebRTCDemo的基本结构,本节主要介绍WebRTC音视频服务端的处理,,转载请说明出处(博客园RTC. ...

随机推荐

  1. (Python爬虫04)了解通用爬虫和聚焦爬虫,还是理论知识.快速入门可以略过的

    如果现在的你返回N年前去重新学习一门技能,你会咋做? 我会这么干: ...哦,原来这个本事学完可以成为恋爱大神啊, 我要掌握精髓需要这么几个要点一二三四..... 具体的学习步骤是这样的一二三.... ...

  2. 166. Nth to Last Node in List

    Description Find the nth to last element of a singly linked list. The minimum number of nodes in lis ...

  3. 01背包问题:DP

    题目描述: 有 N 件物品和一个容量是 V 的背包.每件物品只能使用一次. 第 i 件物品的体积是 vi,价值是 wi. 求解将哪些物品装入背包,可使这些物品的总体积不超过背包容量,且总价值最大.输出 ...

  4. Python3 小工具-ARP扫描

    from scapy.all import * import optparse import threading import os def scan(ipt): pkt=Ether(dst='ff: ...

  5. 3.azkaban3.0测试

    测试目标 azkaban多executor下flow的分配方式 azkaban可以同时执行的flow\job个数 azkaban单个job最小使用的内存 相关配置 executor最大线程数: exe ...

  6. HADOOP docker(八):hadoop本地库

    前言2. Native Hadoop Library3. 使用本地库4. 本地库组件5. 支持的平台6. 下载7. 编译8. 运行时观察9. 检查本地库10. 如果共享本地库 小伙伴还记得每次启动hd ...

  7. 【转】MySQLroot用户忘记密码解决方案(安全模式,修改密码的三种方式)

    文章出自:http://www.2cto.com/database/201412/358128.html 1.关闭正在运行的MySQL2.启动MySQL的安全模式,命令如下: ? 1 mysqld - ...

  8. 【树莓派 Raspberry-Pi 】系统安装及一些必要的配置

    上周六刚收到我的小电脑,被无线设置卡住了,文章并非原创,参考了几个朋友的折腾经历,自己整理下备忘,也希望能帮到和我一样在树莓派方面小白的人,也希望可以和更多有这方面兴趣的朋友共同交流 0. 操作系统下 ...

  9. 深入了解View的绘制流程

    1.  ViewRoot ViewRoot是连接WindowManager与DecorView的纽带,View的整个绘制流程的三大步(measure.layout.draw)都是通过ViewRoot完 ...

  10. python学习笔记08:安装django

    linux环境安装django: sudo pip install django windows环境安装django: pip install django 验证django是否安装: python ...