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

时间: 2024-12-15 20:27:06

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

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

绘制大脑表层并高亮染色的工作是以openGL加载obj文件为基础的,这里是我们用到的原始程序:只能加载一个obj文件的demo. 然而,一个完整的大脑表层是由很多分区组成的,因此我们的程序需要支持两个功能: 同时加载多个obj文件. 每个大脑分区obj文件保持其相对位置. 明白了需求后,我们就可以开始修改代码了~ glmUnitize函数的作用是单位化,也就是把模型通过平移和缩放变换限制到3维坐标系中点为中心的一个单位正方体区域内.所以控制obj显示位置是在glmUnitize()函数中,源代码

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

导语:"互联网X大脑"计划由ITxlab(互联网X实验室)联合科学院相关机构.基于7年以来取得的研究成果,倡议建立的互联网与脑科学前沿研究平台,吸引不同领域专家进行科学研究和成果交流,在互联网与脑科学.互联网人工智能,互联网未来发展规律等领域产生前沿创新成果,帮助中国在未来互联网前沿研究中占领率先地位. 一.互联网时代科技与脑科学越来越紧密 越来越多的迹象表明.互联网与脑科学具有非常强的相关性. 2007年,ITXlab在中国科学院虚拟经济与数据科学研究中心支持下.发表论文提出: &q

长路漫漫,唯剑作伴--Core Animation优化

一.简介 当App发展到一定的规模,性能优化就成为必不可少的一点.但是很多人,又对性能优化很陌生,毕竟平常大多时间都在写业务逻辑,很少关注这个.最近在优化自己的项目,也收集了很多资料,这里先浅谈一下使用Instruments中CoreAnimation优化收获的经验以及总结,这是第一篇,后续会更新Timer Profiler,Leaks等其他优化工具的具体用法. 二.准备工作 在性能优化中一个最具参考价值的属性是FPS:全称Frames Per Second,其实就是屏幕刷新率,苹果的iphon

xna 精灵动起来

using System; using System.Collections.Generic; using System.Linq; using Microsoft.Xna.Framework; using Microsoft.Xna.Framework.Audio; using Microsoft.Xna.Framework.Content; using Microsoft.Xna.Framework.GamerServices; using Microsoft.Xna.Framework.G

xna 添加一个精灵1

using System; using System.Collections.Generic; using System.Linq; using Microsoft.Xna.Framework; using Microsoft.Xna.Framework.Audio; using Microsoft.Xna.Framework.Content; using Microsoft.Xna.Framework.GamerServices; using Microsoft.Xna.Framework.G

xna 帧动画

using System; using System.Collections.Generic; using System.Linq; using Microsoft.Xna.Framework; using Microsoft.Xna.Framework.Audio; using Microsoft.Xna.Framework.Content; using Microsoft.Xna.Framework.GamerServices; using Microsoft.Xna.Framework.G

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

基于定时器的动画 定时帧 动画看起来是用来显示一段连续的运动过程,但实际上当在固定位置上展示像素的时候并不能做到这一点.一般来说这种显示都无法做到连续的移动,能做的仅仅是足够快地展示一系列静态图片,只是看起来像是做了运动. 我们之前提到过iOS按照每秒60次刷新屏幕,然后CAAnimation计算出需要展示的新的帧,然后在每次屏幕更新的时候同步绘制上去,CAAnimation最机智的地方在于每次刷新需要展示的时候去计算插值和缓冲. 之前,我们解决了如何自定义缓冲函数,然后根据需要展示的帧的数组来

iOS-Core-Animation-Advanced-Techniques(六)(转)

基于定时器的动画和性能调优 基于定时器的动画 我可以指导你,但是你必须按照我说的做. -- 骇客帝国 在第10章“缓冲”中,我们研究了CAMediaTimingFunction,它是一个通过控制动画缓冲来模拟物理效果例如加速或者减速来增强现实感的东西,那么如果想更加真实地模拟 物理交互或者实时根据用户输入修改动画改怎么办呢?在这一章中,我们将继续探索一种能够允许我们精确地控制一帧一帧展示的基于定时器的动画. 定时帧 动画看起来是用来显示一段连续的运动过程,但实际上当在固定位置上展示像素的时候并不

基于定时器的动画和性能调优

摘自:http://www.cocoachina.com/ios/20150106/10839.html 基于定时器的动画 我可以指导你,但是你必须按照我说的做. -- 骇客帝国 在第10章“缓冲”中,我们研究了CAMediaTimingFunction,它是一个通过控制动画缓冲来模拟物理效果例如加速或者减速来增强现实感的东西,那么如果想更加真实地模拟 物理交互或者实时根据用户输入修改动画改怎么办呢?在这一章中,我们将继续探索一种能够允许我们精确地控制一帧一帧展示的基于定时器的动画. 定时帧 动