最近在给一个培训机构代课,学生英语基础差,就安装了Vray5的中文版,噩梦从此开始。

做过合成的都知道,需要输出多通道到NUKE或者AE中进行合成,通常情况下把多个pass分成不同的文件对硬盘反复读写会对预览性能有影响,所以都是将多通道输出到一个EXR或者VRIMG进行后续处理。

坑就坑在,这些汉化版的Vray会把中文写进这些二进制文件里,再到AE或者NUKE里导入 就会出现乱码甚至通道丢失(如图1)

图1

这边记录一下解决方法和思路,避免踩坑。

思路是用OpenImageIO这个库进行通道重命名,如果是在Linux系统就很简单,直接获取包就好(安装参考oiio/INSTALL.md at master · OpenImageIO/oiio · GitHub

但是在windows下,不是每个电脑都有visual studio,所以编译就很麻烦,我这边提供编译好的版本(2.2.2)(下载链接:https://pan.baidu.com/s/1jYwQljiYI1fZflwt6mYptw 提取码:toto)

下载之后解压,cd /d "你解压的路径" 转到对应目录,输入 chcp 65001 并回车,将CMD编码改到UTF-8

这边假设要处理的EXR名称为1.EXR

查看EXR数据

oiiotool -info -v 1.exr

如果要提取出通道信息 可以用

oiiotool -info -v 1.exr | find /i "channel list"

如果不出意外 就会得到EXR中通道的顺序信息,要修改的是里面的中文,对应Channel中的RGB通道不能动,CMD输出如图2

图2

可以将这一段内容输出到文本文档做修改,只需要channel list:后面的部分即可,并且不要换行(图3)

图3

将中文内容逐个替换,并且把中间的空格去掉或者改成下划线_,替换后文本如图4

图4

回到CMD,输入

oiiotool 1.exr --chnames "R,G,B,A,VFB2Composite.R,VFB2Composite.G,VFB2Composite.B,VRayGI.R,VRayGI.G,VRayGI.B,VRayReflection.R,VRayReflection.G,VRayReflection.B,VRayBackToBeauty.R,VRayBackToBeauty.G,VRayBackToBeauty.B,VRayAtomsphere.R,VRayAtomsphere.G,VRayAtomsphere.B,VRayRefraction.R,VRayRefraction.G,VRayRefraction.B,VRay_Diffuse.R,VRay_Diffuse.G,VRay_Diffuse.B,VRayCaustics.R,VRayCaustics.G,VRayCaustics.B,VRayLighting.R,VRayLighting.G,VRayLighting.B,VRayBackground.R,VRayBackground.G,VRayBackground.B,VRaySelfluminous.R,VRaySelfluminous.G,VRaySelfluminous.B,VRayDenoiser.R,VRayDenoiser.G,VRayDenoiser.B,VRaySpecular.R,VRaySpecular.G,VRaySpecular.B,VRaySSS2.R,VRaySSS2.G,VRaySSS2.B,bumpNormals.Y,bumpNormals.Z,bumpNormals.X,effectsResult.R,effectsResult.G,effectsResult.B" -o 2.exr

命令中 绿色1.exr可以替换为输入的exr文件路径,红色2.exr可替换为输出exr文件名和路径

橙色部分请替换成自己的通道,因为通道顺序每个文件都不一样,所以不可照搬

输出完成后,导入NUKE,可以看到通道数据恢复正常(图5)

图5

这是基本的思路,但实际操作非常麻烦,如果是序列就更加崩溃,所以可以用批处理文件来辅助。

批处理代码如下,可复制另存为UTF-8编码的批处理文件,放在oiio的解压目录中。

  1. 1 @echo off
  2. 2 chcp 65001&&setlocal ENABLEDELAYEDEXPANSION
  3. 3 echo 转换编码到UTF-8&echo.
  4. 4 set /p url=请将序列文件夹拖入:
  5. 5 set /p output=请将输出文件夹拖入:
  6. 6
  7. 7 for /f "delims=" %%j in ('dir /b "%url%\*.exr"') do (
  8. 8 set "exrname=%%j"
  9. 9 for /f "delims=" %%i in ('oiiotool -info -v "%url%\!exrname!" ^| find /i "channel list"') do (
  10. 10 set "ca=%%i"
  11. 11 echo 正在处理!exrname!,获得EXR通道数据&echo.
  12. 12 set ca=!ca: channel list: =!
  13. 13 set ca=!ca:VRay 全局照明=VRay_GlobalIllumination!
  14. 14 set ca=!ca:VRay 反射=VRay_Reflection!
  15. 15 set ca=!ca:VRay 回到美景=VRay_BackToBeauty!
  16. 16 set ca=!ca:VRay 大气=VRay_Atmosphere!
  17. 17 set ca=!ca:VRay 折射=VRay_Refraction!
  18. 18 set ca=!ca:VRay 漫反射过滤器=VRay_DiffuseFilter!
  19. 19 set ca=!ca:VRay 焦散线=VRay_Caustics!
  20. 20 set ca=!ca:VRay 照明=VRay_Lighting!
  21. 21 set ca=!ca:VRay 背景=VRay_Background!
  22. 22 set ca=!ca:VRay 自发光=VRay_SelfIuminous!
  23. 23 set ca=!ca:VRay 降噪器=VRay_Denoiser!
  24. 24 set ca=!ca:VRay 高光=VRay_Specular!
  25. 25 oiiotool "%url%\!exrname!" --chnames "!ca!" -o "%output%\!exrname!"
  26. 26 )
  27. 27 )
  28. 28 echo 处理完成&pause>nul&&exit

使用时先拖入EXR序列所在文件夹,再新建一个输出文件夹,拖入程序并回车,程序会自动开始处理。

如果需要自定义替换字符串的内容,增加oiiotool命令前的set命令即可。

set ca=!ca:VRay 高光=VRay_Specular!

红字为替换前关键字,绿字为替换后关键字

至此,大坑已填

最好的解决方法还是用英文版的Vray,汉化版的各种问题,都是折腾。

记录一下Vray5中文汉化版本中导出EXR或vrimg多通道文件的那些坑和解决方法的更多相关文章

  1. 【异常记录(七)】MVC:从客户端中检测到有潜在危险的 Request.Form 值 的解决方法 [转]

    从客户端(Content="<EM ><STRONG ><U >这是测试这...")中检测到有潜在危险的Request.Form 值. 说明:  ...

  2. WordPress中"无法将上传的文件移动至"错误的解决方法

    #chown -R www:www /wwwroot 今天在网页上传图片到博客,结果提示:“无法将上传的文件移动至 /home/wwwroot/wp-content/uploads/2013/”,郁闷 ...

  3. idea中git颜色不显示或者文件右键没有git按钮解决方法

    VCS--->Enable Version Control Integration,然后选择git就可以了

  4. Axure7.0中文汉化语言包下载 axure汉化包

    Axure RP Pro 7.0 正式版 (兼容 6 版) 简体中文语言包 支持 Axure RP Pro 正式版 当前最新版本 7.0.0.3142 废话不多说,直接给下载地址: Axure7.0中 ...

  5. Docker 一键安装及Docker管理面板Portainer中文汉化

       前言 Docker接触了一段时间了,批量操作过程中感觉太繁琐,所以找到了好评率比较高的Portainer面板,使用后感觉的确不错所以准备拿出来精力来做个汉化版,过程中发现词条非常多,所以暂时先汉 ...

  6. 迈达斯midas Gen 2019 2.1 中文汉化安装教程

    midas Gen 2019 v2.1 for win是一款关于结构设计有限元分享的工具,分为建筑领域.桥梁领域.岩土领域.仿真领域四个大类.具有人性化的操作界面,且采用了优秀的的计算机显示技术,是建 ...

  7. Axure7.0 以及 中文汉化语言包下载 axure汉化包

    支持 Axure RP Pro 正式版 当前最新版本 7.0.0.3184 不兼容6.5及以下版本! Axure7.0 下载地址:http://pan.baidu.com/s/1dEuR8YX Axu ...

  8. CentOS服务器上搭建Gitlab安装步骤、中文汉化详细步骤、日常管理以及异常故障排查

    一, 服务器快速搭建gitlab方法 可以参考gitlab中文社区 的教程centos7安装gitlab:https://www.gitlab.cc/downloads/#centos7centos6 ...

  9. kibana 7.* 设置中文 汉化

    原文:kibana 7.* 设置中文 汉化 个人博客:forever121.cn kibana 一直是 日志分析 中得力的助手 由于 kibana5.* 6.* 官方并没有支持中文,需要另外下载补丁包 ...

随机推荐

  1. 卷向字节码-Java异常到底是怎么被处理的?

    你好呀,我是why,你也可以叫我歪歪. 比如下面这位读者: 他是看了我<神了!异常信息突然就没了?>这篇文章后产生的疑问. 既然是看了我的文章带来的进一步思考,恰巧呢,我又刚好知道. 虽然 ...

  2. [洛谷P3376题解]网络流(最大流)的实现算法讲解与代码

    [洛谷P3376题解]网络流(最大流)的实现算法讲解与代码 更坏的阅读体验 定义 对于给定的一个网络,有向图中每个的边权表示可以通过的最大流量.假设出发点S水流无限大,求水流到终点T后的最大流量. 起 ...

  3. 用VirtualBox搭建虚拟局域网

    用 Oracle VM VirtualBox 安装虚拟机,我在Windows 7上安装了ubuntu 11.10和xubuntu12.04两个虚拟机: 将这两个虚拟机的"网络"属性 ...

  4. 披着羊皮的Neo-reGeorg

    混迹 Web 安全行业许久,查杀网站后门已是家常便饭.时间久了,养"马"场也见的多了,Neo-reGeorg 算得上是同类中战斗力超群的"野马"了,也深受黑客和 ...

  5. 【死磕 Java 基础】— 我同事一个 select 分页语句查出来了 3000W 条数据

    大家好,我是大明哥,一个专注于[死磕 Java]系列创作的男人 个人网站:https://www.cmsblogs.com/.专注于 Java 优质系列文章分享,提供一站式 Java 学习资料 某天我 ...

  6. C#如何调用DOS命令

    在使用C#编辑过程中,通常需要利用外部命令来执行一些操作,从而完成特定的功能.下面小编就以利用C#调用DOS命令"Ver"显示系统版本号为例,给初学C#语言的网友讲解一下具体的调用 ...

  7. ASP.NET Core Web API接收文件传输

    ASP.NET解析API参数的方式有很多种,包括[FromBody],[FromForm],[FromServices],[FromHeader][FromQuery]. 文件传输方式也分很多种,包括 ...

  8. Socket入门Demo

    一.简单介绍下Socket编程    申明:.net网络编程 1)什么是Socket编程? Socket编程就是常说的网络通讯编程,套接字编程.一般应用于软件聊天通讯,以及软件与硬件之间的通讯. 通熟 ...

  9. C# volatile 的使用

    class Program { private static volatile bool bChanged; static void Main(string[] args) { Thread t1 = ...

  10. Quartz任务调度(4)JobListener分版本超详细解析

    JobListener 我们的jobListener实现类必须实现其以下方法: 方法 说明 getName() getName() 方法返回一个字符串用以说明 JobListener 的名称.对于注册 ...