BlenderCN论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1874|回复: 2

Bmesh! 更简洁的代码,更高效的维护,更高的执行效率!

[复制链接]
发表于 2013-4-7 00:41:22 | 显示全部楼层 |阅读模式
http://www.blender.org/documentation/blender_python_api_2_66_release/bmesh.html

[想一出写一出,欢迎交流]
bmesh优势:
层状结构!四通八达!
传统的数据是分开放置的结构,需要得到一类元素的某一个的index,再去另一类中迭代到它,再使用,bmesh可以直接访问,大家都知道py脚本肯定不如c/c++快,精简代码 === 性能提高,这就是bmesh的厉害之处。

  1. import bpy
  2. import bmesh

  3. #创建bmesh
  4. me = bpy.context.object.data
  5. bm = bmesh.new()
  6. bm.from_mesh(me)

  7. #指定顶点
  8. v = bm.verts[0]

  9. #bmesh里,所有的属性都是基本数据结构上的另一个层,下面是得到当前激活的顶点颜色层
  10. #api手册里可以看到,shape key也是层,deform也是层... 这里只是随便拿一个举例
  11. col = bm.loops.layers.color.active

  12. #link_loops是层的载体
  13. for l in v.link_loops:
  14.     print("该顶点被第 %s 面使用,颜色为 %s" % (l.face.index, l[col]))

  15. #bm.to_mesh(me)     #如编辑模型,需要这个返回修改

  16. #释放
  17. bm.free()
复制代码
这至少比传统的代码优化了一大半,更简洁的代码,更高效的维护,更高的效率!


另一个补充摘自:http://blenderartists.org/forum/ ... ex-Colors-in-Python(BMesh)
DCLayer = BMesh.loops.layers.color["Diffuse Color"]
loopcolour = BMesh.faces[0].loops[0][DCLayer]
发表于 2013-4-7 08:02:46 | 显示全部楼层
看起来流弊啊
回复 支持 反对

使用道具 举报

发表于 2013-4-7 08:48:47 | 显示全部楼层
非常不错
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

Blender最新中文教学视频|Blender头条|小黑屋|手机版|Archiver|Blender中国 ( 蜀ICP备17002929号 )360网站安全检测平台

GMT+8, 2019-11-14 10:34 , Processed in 0.020127 second(s), 21 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表