热烈欢迎新会员,新手报到帖招聘3DMAX脚本软件开发场景助手3.0下载飞浪脚本零起点入门
返回列表 发帖

请大神指教脚本,摄像机距离控制物体材质细分

我想通过摄像机距离控制物体的细分,比如距离摄像机90以内的物体反射细分为32,以外的反射细分为8望大神指教
分享到: QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友

  1. for obj in geometry do -- 给所有的obj=几何体 做:

  2. (
  3.         local d = distance obj $camera01 -- 定义局部变量 d 等于 obj和cam(镜头)之间的距离
  4.     if d <= 90 then obj.material.reflection_subdivs = 32 else obj.material.reflection_subdivs = 8
  5. )
复制代码

TOP

本帖最后由 MMM 于 2018-9-24 20:41 编辑

回复 2# longshaohua
rollout xifen "材质细分控制" width:578 height:86
(

label ruguo "如果距离相机" pos:[7,48] width:75 height:15

spinner juli "" pos:[82,47] width:66 height:16 range:[0,1e+006,0] type:#integer



label lbl2 "以内的物体反射细分为" pos:[153,48] width:121 height:15

spinner fgao "" pos:[276,47] width:66 height:16 range:[0,100,8] type:#integer

label lbl3 "以外的反射细分为" pos:[345,47] width:97 height:15

spinner fdi "" pos:[445,46] width:66 height:16 range:[0,100,8] type:#integer

button shezhi "设置" pos:[516,41] width:52 height:26

pickbutton shiqushexiangji "拾取摄像机" pos:[239,9] width:95 height:24

on shezhi pressed do

(

for obj in geometry do -- 给所有的obj=几何体 做:

if classof obj.material==vraymtl;

then



(

        local d = distance obj sxj -- 定义局部变量 d 等于 obj和cam(镜头)之间的距离

    if d <= juli.value then obj.material.reflection_subdivs = fgao.value else obj.material.reflection_subdivs = fdi.value

)

)

on shiqushexiangji picked obj do

(

shiqushexiangji.text=obj.name

         select obj

         sxj=$

         deselect obj

)
)
createdialog xifen

---------------------------------
大神可以帮我看看是这么写吗,我写个拾取按钮,不过运行错误了,不知道哪里错了

TOP

你写的那个太多基础错误了。
  1. rollout xifen "材质细分控制" width:578 height:86
  2. (

  3. label ruguo "如果距离相机" pos:[7,48] width:75 height:15

  4. spinner juli "" pos:[82,47] width:66 height:16 range:[0,1e+006,0] type:#integer



  5. label lbl2 "以内的物体反射细分为" pos:[153,48] width:121 height:15

  6. spinner fgao "" pos:[276,47] width:66 height:16 range:[0,100,8] type:#integer

  7. label lbl3 "以外的反射细分为" pos:[345,47] width:97 height:15

  8. spinner fdi "" pos:[445,46] width:66 height:16 range:[0,100,8] type:#integer

  9. button shezhi "设置" pos:[516,41] width:52 height:26

  10. pickbutton shiqushexiangji "拾取摄像机" pos:[239,9] width:95 height:24

  11. global sxj

  12. on shezhi pressed do

  13. (

  14.         for obj in geometry where (classof obj.material == vraymtl) do
  15.         (
  16.          local d = distance obj sxj
  17.                 if d <= juli.value then obj.material.reflection_subdivs = fgao.value else obj.material.reflection_subdivs = fdi.value
  18.         )

  19. )

  20. on shiqushexiangji picked obj do

  21. (

  22.       shiqushexiangji.text=obj.name
  23.       sxj = obj
  24. )
  25. )
  26. createdialog xifen
复制代码

TOP

这个是修改你写的,可以对照下你之前的,就知道哪有问题了。
  1. rollout xifen "材质细分控制" width:578 height:86
  2. (

  3. label ruguo "如果距离相机" pos:[7,48] width:75 height:15

  4. spinner juli "" pos:[82,47] width:66 height:16 range:[0,1e+006,0] type:#integer



  5. label lbl2 "以内的物体反射细分为" pos:[153,48] width:121 height:15

  6. spinner fgao "" pos:[276,47] width:66 height:16 range:[0,100,8] type:#integer

  7. label lbl3 "以外的反射细分为" pos:[345,47] width:97 height:15

  8. spinner fdi "" pos:[445,46] width:66 height:16 range:[0,100,8] type:#integer

  9. button shezhi "设置" pos:[516,41] width:52 height:26

  10. pickbutton shiqushexiangji "拾取摄像机" pos:[239,9] width:95 height:24

  11. global sxj

  12. on shezhi pressed do

  13. (

  14.         for obj in geometry do
  15.         (
  16.        
  17.                 if classof obj.material==vraymtl then
  18.                
  19.                
  20.                
  21.                 (
  22.                
  23.                         local d = distance obj sxj -- 定义局部变量 d 等于 obj和cam(镜头)之间的距离
  24.                
  25.                     if d <= juli.value then obj.material.reflection_subdivs = fgao.value else obj.material.reflection_subdivs = fdi.value
  26.                
  27.                 )
  28.         )
  29. )

  30. on shiqushexiangji picked obj do

  31. (

  32. shiqushexiangji.text=obj.name

  33.          select obj

  34.          sxj=$

  35.          deselect obj

  36. )
  37. )
  38. createdialog xifen
复制代码

TOP

回复 5# longshaohua


   好的十分感谢,学脚本不久,的确好多基础都不会,感谢指点

TOP

返回列表