Blender绘制大脑表层,并高亮染色
首先, 有必要熟悉一下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绘制大脑表层,并高亮染色的更多相关文章
- openGL加载obj文件+绘制大脑表层+高亮染色
绘制大脑表层并高亮染色的工作是以openGL加载obj文件为基础的,这里是我们用到的原始程序:只能加载一个obj文件的demo. 然而,一个完整的大脑表层是由很多分区组成的,因此我们的程序需要支持两个 ...
- ITxlab倡议启动“互联网X大脑”计划
导语:"互联网X大脑"计划由ITxlab(互联网X实验室)联合科学院相关机构.基于7年以来取得的研究成果,倡议建立的互联网与脑科学前沿研究平台,吸引不同领域专家进行科学研究和成果交 ...
- Android 之surfaceView (画动态圆圈)
通过之前介绍的如何自定义View, 我们知道使用它可以做一些简单的动画效果.它通过不断循环的执行View.onDraw方法,每次执行都对内部显示的图形做一些调整,我们假设 onDraw方法每秒执行 ...
- CALayer总结(三)
CPU VS GPU 动画和屏幕上组合的图层实际上被一个单独的进程管理,而不是你的应用程序.这个进程就是所谓的渲染服务.在iOS5和之前的版本是SpringBoard进程(同时管理着iOS的主屏).在 ...
- Android IOS WebRTC 音视频开发总结(十二)-- sufaceview
谈到音视频不得不谈谈对视频呈现的理解,为了让大家能有一个更好的理解,先看看android里面SurfaceView的原理,后续陆续分享其绘画原理. 说明:本文是转载的,转载自哪里我也不知道,貌似经过很 ...
- 转:android surface简单使用Demo
转: http://blog.csdn.net/listening_music/article/details/6860786 通过之前介绍的如何自定义View, 我们知道使用它可以做一些简单的动画效 ...
- Tableau学习笔记之四
创建基本变量图表: 1.可以创建表格,条形图,饼图,直方图,线图,堆积条形图,箱线图等. 2.根据自己选择的变量和维度的数量,Tableau中的“智能显示”会相应的提醒,可以绘制哪些图形,可以绘制的一 ...
- CoreAnimation6-基于定时器的动画和性能调优
基于定时器的动画 定时帧 动画看起来是用来显示一段连续的运动过程,但实际上当在固定位置上展示像素的时候并不能做到这一点.一般来说这种显示都无法做到连续的移动,能做的仅仅是足够快地展示一系列静态图片,只 ...
- Android WebRTC 音视频开发总结
www.cnblogs.com/lingyunhu/p/3621057.html 前面介绍了WebRTCDemo的基本结构,本节主要介绍WebRTC音视频服务端的处理,,转载请说明出处(博客园RTC. ...
随机推荐
- [HNOI2018]转盘
[HNOI2018]转盘 给你一个 \(n\) 元环, 你可以在 \(0\) 时刻从任意一个位置出发, 每一秒可以选择往后或者留在原地每个点有个参数 \(T_i\) , 当你走到 \(i\) 的时间 ...
- 概要梳理kafka知识点
主要是梳理一下kafka学习中的一些注意点,按照消息的流动方向进行梳理.详细的kafka介绍推荐看骑着龙的羊的系列博客,具体的某一块的知识点,可以参考我给出的一些参考文章. 1. kafka在系统中的 ...
- UVa 10082 - WERTYU 解题报告 - C语言
1.题目大意: 输入一个错位的字符串(字母全为大写),输出原本想打出的句子. 2.思路: 如果将每个输入字符所对应的应输出字符一一使用if或者switch,则过于繁琐.因此考虑使用常量数组实现. 3. ...
- svn升级(mac)
原文链接:http://www.jianshu.com/p/c81712ecccb8 升级前 svn版本1.7.20 升级之后 1.9.2 步骤: 1. 下载最新版svn,链接:http://www. ...
- Redis 错误摘记篇
yum安装的redis提示如下报错,大概意思就是配置文件和redis-server进程文件版本不一致.. [root@vm-10-104-28-24 yum.repos.d]# redis-serve ...
- 基于spec评论“欢迎来怼”团队Alpha版作品
“欢迎来怼”团队的作品是手机版博客园 1.获取此博客园app的方式——二维码 通过扫描二维码的方式下载app,这是当今比较流行的方式,适合广大手机的使用者——青少年的使用习惯. 2.点击图标,进入该a ...
- activiti工作流已办和待办查询sql
最近项目中遇到一个问题,需要activiti的工作流表和业务表关联分页查询,然而我对于工作流的查询并不太熟悉,所以学习并总结如下. 想看看activiti到底怎么查询的待认领和待办.已办的查询sql, ...
- tomcat端口号修改
修改Tomcat的端口号: 在默认情况下,tomcat的端口是8080,如果出现8080端口号冲突,用如下方法可以修改Tomcat的端口号: 首先: 在Tomcat的根(安装)目录下,有一个conf文 ...
- ACM 第十一天
多校7题目 GuGuFishtion Time Limit: 3000/1500 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Other ...
- week1技术随笔
2016-09-06 2016年9月3日 类别c 内容c 开始时间s 结束时间e 被打断时间I 总计(min) 读书 读构建之法 8:40 10:00 11 69 读书 构建之法-个人能力 , ...