BlenderCN论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 2119|回复: 5

Blender Python 脚本强制删除所有的贴图(非常新手)

[复制链接]
发表于 2012-11-23 14:23:53 | 显示全部楼层 |阅读模式
很多新手,包括老外里的新手,经常问,“哎呀,blender里的材质和贴图怎么总是删不掉,打开还在,打开还在,要了命了~”。
为什么删不掉?
因为blender里使用的自动回收技术,当你发出删除指令时(按X),blender会在内部标记这个obj(包括材质、贴图、模型等等)的使用次数减少一次,当这个obj的使用次数为 0 时,blender会在特定时期自动将这段数据腾空,这样的好处是,你永远不会因错删某obj懊悔,也不会因为大型数据的变动导致软件奔溃。

什么时候清除使用为0的数据呢?软件关闭时。
大家可以观察,当某obj前面被blender自己加上0时,就表示这个obj会在下次打开时清理。

原理说到这里,这里提供简短的删除标记的大妈给大家学习,希望大家能举一反三,比如,删除所有未使用的顽固贴图?

【code】

import bpy    #引入模块
count = len(bpy.data.images)    #当前贴图数量
print("\n------- images count : %a -------" %(count))    #分割区域显示数量

if count != 0:    #只要数量大于0就运行下面的
    for i in bpy.data.images:    #依次传递贴图给参数i
        print("     clean mark : %a" %(i.name))    #提示标记清除的贴图名称
        bpy.data.images[i.name].user_clear()    #标记清除

【/code】
更多blender python代码、脚本、的基础知识:

http://hi.baidu.com/nirenyang/archive/tag/blender

手动删除方法,shift+删除符号【x】

blender python remove all of the textures (force)

发表于 2013-3-12 16:38:54 | 显示全部楼层
为什么被前置了一个0的贴图重新打开还在?手动删除具体怎么操作?比如说怎么选择你要删的贴图?

点评

前置0后得保存一下才行。 手动删除 shift + × (ps:昨天刚看到大神的文章学会的。新手,请多指教)  详情 回复 发表于 2013-3-13 10:30
看文不仔细,搜shift  详情 回复 发表于 2013-3-12 17:31
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-3-12 17:31:35 | 显示全部楼层
杨老实 发表于 2013-3-12 16:38
为什么被前置了一个0的贴图重新打开还在?手动删除具体怎么操作?比如说怎么选择你要删的贴图? ...

看文不仔细,搜shift

点评

懂了!之前以为是x键  详情 回复 发表于 2013-3-14 18:08
回复 支持 反对

使用道具 举报

发表于 2013-3-13 10:30:12 | 显示全部楼层
杨老实 发表于 2013-3-12 16:38
为什么被前置了一个0的贴图重新打开还在?手动删除具体怎么操作?比如说怎么选择你要删的贴图? ...

前置0后得保存一下才行。
手动删除  shift + ×

(ps:昨天刚看到大神的文章学会的。新手,请多指教)
回复 支持 反对

使用道具 举报

发表于 2013-3-14 18:08:43 | 显示全部楼层
nirenyang 发表于 2013-3-12 17:31
看文不仔细,搜shift

懂了!之前以为是x键
回复 支持 反对

使用道具 举报

发表于 2013-4-16 21:13:53 | 显示全部楼层
原来是这样明白了
回复 支持 反对

使用道具 举报

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

本版积分规则

关闭

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

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

GMT+8, 2019-11-20 23:36 , Processed in 0.019729 second(s), 22 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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