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

  • 相关阅读:
    C++雾中风景1:友元类与面向对象
    NFS服务器的安装与配置
    未来工作相关
    python 函数
    pycharm、sublime个性化设置
    hadoop中HDFS的NameNode原理
    Cat搭建遇坑记
    美团点评CAT监控平台研究
    阿里sentinel源码研究深入
    阿里熔断限流Sentinel研究
  • 原文地址:https://www.cnblogs.com/itlqs/p/6837856.html
Copyright © 2011-2022 走看看