首页 > 解决方案 > Maxscript - 如何在 3ds Max 2020 中将渲染更改为纹理输出目录?

问题描述

最大 2020

我正在尝试将导出渲染的默认路径更改为纹理贴图。

这是我的代码。

fn shakeAndBake theObj pxlSize = (

  local theObj = $
  theObj.iNodeBakeProperties.removeAllBakeElements()
  diffuseColor = Corona_DiffuseColor()
  diffuseColor.outputSzX = diffuseColor.outputSzY = pxlSize
  diffuseColor.fileType = (@"C:\\"+theObj.name+"_diffuse.png")
  diffuseColor.fileName = filenameFromPath diffuseColor.fileType
  diffuseColor.enabled = true
  theObj.INodeBakeProperties.addBakeElement diffuseColor
  select theObj
  render rendertype:#bakeSelected vfb:off progressBar:true outputSize:[pxlSize,pxlSize] cancelled:&wasCanceled quiet:true;

  )
theObject = shakeAndBake theObject 512

它不断将纹理输出到此路径:

C:\Users\user\Documents\3ds Max 2020\sceneassets\images

我认为这行代码会改变这一点:

diffuseColor.fileType = (@"C:\\"+theObj.name+"_diffuse.png")

任何人都知道出了什么问题。

标签: maxscript

解决方案


不知何故,我感觉您仍然需要将“ outputfile:”参数传递给渲染函数

对不起我愚蠢的不回答。我会努力挽回自己。似乎diffuseColor.fileType您正在设置位图的类型,所以如果它是 png,bmp 等 diffuseColor.fileName应该包含带有文件名的整个路径。另外,如果你把“@”放在字符串前面,它变成逐字字符串文字,不需要双斜杠官方autodtesk maxscript帮助,字符串文字

如果你像这样改变它,效果很好:

fn shakeAndBake theObj pxlSize = (

  local theObj = $
  theObj.iNodeBakeProperties.removeAllBakeElements()
  diffuseColor = Corona_DiffuseColor()
  diffuseColor.outputSzX = diffuseColor.outputSzY = pxlSize
  diffuseColor.fileType = (@"F:\TEMP\"+theObj.name+"_diffuse.png")
  diffuseColor.fileName = diffuseColor.fileType
  diffuseColor.enabled = true
  theObj.INodeBakeProperties.addBakeElement diffuseColor
  select theObj
  render rendertype:#bakeSelected vfb:off progressBar:true outputSize:[pxlSize,pxlSize] cancelled:&wasCanceled quiet:true;

  )
  theObject = shakeAndBake theObject 512

推荐阅读