目录

前言

一、索引表技术

二、Ramp图表的采样

三、Ramp图表编辑工具使用指南

四、资源链接


前言

——因为最近在做一些基于自己画风的定制化卡通渲染效果,其中用到了渐变纹理、或者说Ramp图表技术(我也不知道专业名称叫什么- -反正就是很多条ramp渐变映射条拼成一张图,很多像是原神之类偏卡通风格的项目都会用到这种技术。关于单行的渐变纹理是什么以及相关的出图工具可以看我以前写过的一篇文)。

——如果是用之前的工具单独去做一条一条的ramp再手动拼一块太麻烦了,而且还得去按灰度索引对应行数(后面解释灰度索引是啥),所以我干脆来了一波工具升级(完全重写- -)。

——下面是工具的操作界面以及一些阶段性成果。

——单独输出漫反射渐变效果

——单独输出镜面反射渐变效果

——最终混合再加上亿些其他算法的效果

一、索引表技术

——对于上面的效果,如果是纯美术童鞋的话,很可能采用的一种实现方式是,在模型上把使用不同ramp的网格都分开,然后分别赋予不同的材质,于是就会看到一个模型上十几二十个材质球的情况发生。这样显然对性能很不友好,管理起来也不方便,而且如果像是那种衣服上形状复杂的花纹,还要采取这种方式来实现就意味着得针对花纹进行建模,而且还要考虑花纹的网格与衣服模型表面的贴合度与ZFighting等问题。

——所以我们采取索引图的方式来解决这个问题,用灰度来区分使用不同ramp的区域(其实思想上我觉得就类似于PBR的金属度粗糙度图什么的)。而既然是像素级别的贴图,那么任它形状多复杂的区域,我们就都可以为所欲为,画就完事了。

——例如上面的服装部分,就用到了类似下图的右侧这么个索引通道来区分不同的ramp。

二、Ramp图表的采样

——上面莫名其妙多了一张索引图,那么这张图该怎么用?我们首先来看Ramp图表大概长什么样子。

——根据前言所说,实际上本文的Ramp图表就是很多单行ramp拼成一起形成的。

——上面第二个参数是ramp条对应的灰度[0,255]。当图表的尺寸是256x256时,这个灰度实际上就等价于图表像素的行索引、或者说UV坐标中的V*255,而第一节的索引图实际上存储的就是这个行索引。

——将上面的ramp条按行索引拼到256x256的图里就会构成类似下面这样的图表(没有定义的行用白色填充)。

——最后在shader里采样的时候,用半兰伯特当U(或者blinn,smoothstep等其他的玩意,按需要来)、索引图的灰度当V去采样渐变图表即可做到之前的效果。

——需要注意的是,为了采样效果准确,索引图务必取消勾选sRGB以保证其灰度信息是线性的;ramp图的导入设置最好关掉mipmap,并将warpmode改为Clamp,format也要设为无压缩的格式(本文提供的工具在导出时默认是这种配置),否则可能会因为压缩或者模糊等问题导致采样偏差甚至采样不到(毕竟本文的实现是单行像素。硬要提高容错倒也可以考虑把同一条ramp扩展成多行像素)。

——推广来看,这种加一张索引图、或者说UV坐标分别以某种具有特殊含义的变量来采样的技巧还有一些其他的应用领域,比如4张以上地图纹理的混合,或者次表面散射中那张经典的预积分图等。而具体的采样方式,则由我们的用途决定。我们甚至可以自己定义一套采样规则,从而实现各种花里胡哨的组合效果。

三、Ramp图表编辑工具使用指南

——本文提供的工具支持将编辑结果导出为可二次编辑的asset文件或图像文件。可以在Project面板通过右键->Create->自定义工具->创建渐变纹理图表来创建一个asset文件。

——其中“注释”就是个标签,用来标记这行ramp是模型上的哪里用到的,不影响效果;后面是255级灰度,作用第二节中已经说过。

——工具默认用曲线调整透明通道,RGB通道可切换模式用梯度滑块或曲线调整(二者数据不互通);每一行后的“导出”即导出该行ramp纹理(单行),包括下面的导出图表在内,默认都在Assets文件夹下生成图像文件。

——如果需要实时查看效果或在场景运行时动态生成图表挂载到对应材质上,可以在场景对应物体上挂载RampAtlasManager组件。

——当asset文件与材质挂载后可进行编辑控制

——最下面附加索引图灰度检查功能,方便查找索引图中包含哪些灰度(毕竟因为模糊或压缩等原因,经常会产生一些额外的噪点灰度级,这些是没用的)。工具会检查图像中包含的所有灰度级并降序排列打印对应的像素数,一般排前几的就是要填到上面的操控面板里的。(当然你也可以在PS里去手动吸色)

——当两个相差不大的灰度级以相近的数量同时出现时,那可能说明你的索引图中有噪点,届时可以考虑在PS里来一发表面模糊。

四、资源链接

链接:

百度网盘 请输入提取码百度网盘为您提供文件的网络备份、同步和分享服务。空间大、速度快、安全稳固,支持教育网加速,支持手机端。注册使用百度网盘即可享受免费存储空间https://pan.baidu.com/s/1s2nNk34F6MVm0e_-L6C9Sw提取码:zy3r

关于渐变纹理图表编辑工具的开发及基础应用相关推荐

  1. 在线图表编辑工具 draw.io 10.6.2 版本发布

    draw.io 10.6.2 版本已发布,更新内容如下: 添加通用布局菜单项 另外,几天前发布的 10.6.1 版本更新内容如下: 修复 CSV import 的问题 为模板和 AWS 组添加 poi ...

  2. 在线图表编辑工具 draw.io 10.6.5 版本发布

    draw.io 10.6.5 版本已发布,draw.io 是一款在线图表编辑工具, 可以用来编辑工作流.BPM.org charts.UML.ER图.网络拓朴图等. 新版本更新内容如下: 修复 VSD ...

  3. Cell:康奈尔大学郭春君组开发针对非模式肠道细菌的基因编辑工具

    北京时间2022年1月20日凌晨0时,美国康奈尔大学威尔康奈尔医学院郭春君(Chun-Jun Guo)研究组在<细胞>(Cell)上在线发表题为"Genetic manipula ...

  4. 初学者python用什么开发软件-对于自学python的初学者来说,应该使用什么编辑工具?...

    /> 对于零基础的朋友来说,学习Python有一个小门槛或者说小考验,那就是选择写代码的工具. 简单,上网查,用什么工具来写Python代码,答案五花八门,各种编辑器.各种IDE,难道一个个试过 ...

  5. 学python语言用什么软件-对于自学python的初学者来说,应该使用什么编辑工具?...

    /> 对于零基础的朋友来说,学习Python有一个小门槛或者说小考验,那就是选择写代码的工具. 简单,上网查,用什么工具来写Python代码,答案五花八门,各种编辑器.各种IDE,难道一个个试过 ...

  6. draw.io编辑工具

    介绍 Draw.io是一款在线图表编辑工具, 可以用来编辑工作流.BPM.org charts.UML.ER图.网络拓朴图等.draw.io支持IE 11,Chrome 32 +,Firefox 38 ...

  7. 《Unity着色器和屏幕特效开发秘笈》—— 1.7 创建渐变纹理来控制漫反射着色...

    本节书摘来自华章出版社<Unity着色器和屏幕特效开发秘笈>一 书中的第1章,第1.7节,作者:(美)Kenny Lammers,更多章节内容可以访问云栖社区"华章计算机&quo ...

  8. python pdf编辑开发_20行Python代码实现一款永久免费PDF编辑工具的实现

    PDF(Portable Document Format),中文名称便携文档格式是我们经常会接触到的一种文件格式,文献.文档...很多都是PDF格式.它以格式稳定的优势,使得我们在打印.分享.传输过程 ...

  9. 几个实用的软件开发工具之——代码编辑工具

    1 代码编辑工具 1.1 source insight Source insight 是一款非常优秀的代码编辑软件,支持创建工程(同时支持网络创建),语法着色,词语联想,它的代码搜索功能非常强大,非常 ...

最新文章

  1. 全网最简单的网络图画法,小白福音包学包会
  2. 看完书要及时消化(1)《暗时间》
  3. mysql数据库授权
  4. 用python语言实现人工智能猴子摘香蕉的问题_人工智能实验报告大全:猴子摘香蕉问题的VC编程实现等八次.docx...
  5. 干掉 Swagger,试试这个!
  6. mysql数据库常用操作
  7. 出现的是乱码_cad状态栏出现了方框乱码怎么办?
  8. linux mysql 修改root密码_Mac下重置mysql的root密码
  9. 【HDOJ】4602 Partition
  10. 无法访问此网站 localhost 拒绝了我们的连接请求。_网站经常被DDOS攻击会造成什么影响...
  11. 在这个智能数字时代,处处拉拢着我们的视线,那么低头一族可还记得儿时上学的45分钟吗?劳逸结合,多动动!...
  12. 利用CRT库函数检查内存泄漏
  13. SQL注入自动扫描工具中的语句
  14. Spring WS Consume Soap Service From WSDL
  15. Linux的安装和使用技巧
  16. idea好用的一些设置
  17. labview与android,LabVIEW与Android手机的无线视频实时传输
  18. 仿写爱奇艺网页的问题和解决方法
  19. 美国贝勒大学计算机科学专业怎么样,美国贝勒大学好吗
  20. DBSCAN原理及matlab仿真代码

热门文章

  1. 关于TLP521的使用
  2. 航天器 3-D 任务规划器附matlab代码
  3. 树莓派远程连接的四种方式(最全)
  4. 利用交换机镜像点抓流量与分析协议
  5. 商院人物:印度IT之王顶级幸存术
  6. ElasticSearch(ES)
  7. Cannot deserialize instance of `java.util.ArrayList<com.entity.Test>` out of VALUE_STRING token
  8. Android开发过程中使用到百度地图时,报错“PERMISSION_UNFINISHED”
  9. c51汇编语言读写idata,汇编语言用[bx+idata]的方式进行数组的处理
  10. 信用5C分析法(转载)