Keyshot材质模板使用

59|7评论|6334人气|58收藏|2023-03-10 17:18:41

材质模板在窗口选项中打开


模板的添加分为两种,一种是手动一种是自动,自动的可以自己尝试一下,当你为一个模型上好材质后可以通过该选项创建这个模型的模板。

本篇主要说说手动的用法

分配材质类型的分为两种

一种是按你物件的名称一一对应分配你设置好的材质

如果物件在rhino中没有命名则会在keyshot中自动分配图层名

推荐的工作流是在rhino将所有物件都做好命名方便后续渲染流程(区分亮哑图层)

命名脚本在最后分享

新建一条规则

输入你想要命名的部件名称

加入*的意思是只要名称中检测到该字段就应用该材质

通配符是指在应用材质到多个零件时使用源名称的做法。这可以通过在源名称中插入星号*来激活,例如 Holder,当应用材质模板时,这将把材质应用到所有包含“Holder”的零件上。

每个新模板都将添加到模板列表中,可以在打开的任何KeyShot场景中访问该列表。这使得您可以跨多个项目重复使用模板,从而更轻松地维护材质和纹理的一致性。

 原文可以看官方手册

https://manual.keyshot.com/keyshot11/manual/tools-3/material-templates/

图片.png

然后在右边输入材质库中的材质,也可以打开材质库直接拖放想要的材质

图片.png

另外一种方式是按原始的材料(这里我使用rhino库中的材质)一一对应分配你设置好的材质(keyshot材质库中的,可以把rhino材质保存到keyshot库中)

图片.png

最后点应用到场景或者单独的模型组就可以使用了

使用技巧:先建立一个大的规则给物件上材质,再使用亮哑规则区分亮哑图层

图片.png

命名插件-建议自己写个工具列方便快速启动,下面是巨集写法

-RunPythonsc-ript D:\python \object_name.py

路径按你自己的喜好更改,文件放到对应文件夹就行

脚本代码(代码水平有限,有修改需求请问Chatgpt):

# coding=utf-8

import rhinosc-riptsyntax as rs

import sc-riptcontext as sc

import os

import random

 

# 存储已使用的颜色

used_colors = []

# 保存原始视图

view = rs.CurrentView()

 

# 获取所有物体的ID

msg="选择需要命名的几何体:"

objs = rs.GetObjects(msg, 8 + 16 + 32)

 

# 隐藏所有物体

obj_unselect=rs.InvertSelectedObjects(objs)

rs.HideObject(obj_unselect)

rs.HideObjects(objs)

# 保存已选择的物体

sc.sticky["selected_objects"] = objs

 

# 循环遍历每个物体

for obj in objs:

    # 显示单独的物体

    rs.ShowObject(obj)

    color=[255,255,0]

    rs.ObjectColor(obj, color)

    # 获取物体的原始名称

    old_name = rs.ObjectName(obj)

 

    # 获取用户输入的新名称

    new_name = rs.GetString("请输入新的名称:", old_name)

    rs.HideObjects(obj)

    # 如果图层不存在,创建新图层

    if not rs.IsLayer(new_name):

        # 生成随机颜色

        color = [random.randint(0, 255) for _ in range(3)]

        while color in used_colors:

            color = [random.randint(0, 255) for _ in range(3)]

        used_colors.append(color)

       

        # 创建新图层

        rs.AddLayer(new_name, color)

   

    # 设置物体的新名称和图层名称

    # 显示所有物体

 

 

    layer_color = rs.LayerColor(new_name)

    rs.ObjectName(obj, new_name)

    rs.ObjectColor(obj, layer_color)

    rs.ObjectLayer(obj, new_name)

   

# 显示所有物体

rs.ShowObjects(objs)

rs.ShowObjects(obj_unselect)

# 还原原始视图

# 选择所有物体

rs.SelectObjects(objs)

rs.ZoomBoundingBox(rs.BoundingBox(objs))

rs.UnselectAllObjects()


赞赏

小小心意,大大鼓励

58收藏文章 59赞起来+1

Nomad

数码智能 · 深圳市 福田区 保税区

热门文章

一键导出系列脚本

46赞  19评论  2943人气

Rhino物件备份插件

179赞  23评论  12794人气

rhino-creo插件分享

138赞  33评论  12581人气

犀牛小白指令入门不完全指南

70赞  13评论  10577人气

查看更多

留言板(7

添加表情
登录后评论 添加图片
    最新 最热
    ID 2023-12-07
    举报 回复

    太屌了 哥

    ZENMOKE 2023-03-14
    举报 回复

    666

    万木长 2023-03-14
    举报 回复

    干货

    瓦利斯的星星 2023-03-14
    举报 回复

    活到老,学到老

    木心 2023-03-14
    举报 回复

    感谢大佬的分享

    但以理 2023-03-13
    举报 回复

    北极熊 2023-03-13
    举报 回复

    过来取经了

    你可能还喜欢 换一换

    收藏
    创建收藏夹

    创建收藏夹

    收藏夹名称
    确定

    举报评论

    恶意辱骂,诋毁
    垃圾广告信息
    黄赌毒,诈骗信息
    政治敏感问题
    其他原因
    提交
    留言 点赞 收藏 分享

    Nomad

    小小心意,大大鼓励

    赞赏金额

    ¥ 1
    ¥ 5
    ¥ 10
    ¥ 50
    ¥ 100
    其他

    赞赏金额

    微信
    支付宝
    确认支付

    最高赞赏200元

    支付宝支付

    使用支付宝扫描二维码完成支付

    微信支付

    使用微信扫描二维码完成支付

    余额支付

    当前余额:¥0.00

    支付操作会向你普象账户的注册手机号发送验证码
    请注意查收

    发送验证码
    确认支付
    支付成功
    关闭