当前位置: 首页 > news >正文

Shader学习25:织物 之 天鹅绒

一、关于布料表现

布料表面不是光滑的,是无数根细小纤维竖立着

传统的微表面brdf更适用于致密表面,但对于松散结构的布料 缺少了一些真实布料的特征,因为表面的纤维会吸收、散射入射光

边缘光照效果

===》Sheen 环织物在掠射角时出现的那一圈柔和的光泽环。

(1)正面的光大量被吸收和漫散射掉,汇聚到你眼睛里的能量反而很少

(2)侧面的由于:当光线与观察者的视线方向一致时,镜面反射光会主要集中在物体的边缘。织物表面有细小的纤维,这些纤维会试图保持垂直状态所以这时纤维的整根侧面都朝向你,接收光的面积一下子变大了很多倍。同时纤维之间不再互相遮挡侧面,大量纤维侧面同时把光散射进你眼睛

  • 当光线方向与表面的法线方向成90度时,光线会发生反(后)向散射,从而形成漂亮的边缘照明效果。

  • 如果光线来自物体的后方,纤维则会使光线向前散射,进而产生类似的边缘照明效果。

Sheen环 D项

算法简介

图1:反高斯[Inverted Gaussian]:将标准高斯分布(正态)函数进行反转

图2:绿线:标准PBR的Microfacet GGX分布在0角度下(法线、灯光和视线同向)获得最大的高光强度,然后随着角度的增大做正态分布;红线:用来做天鹅绒的分布函数正相反,最高峰在90°

图3:左:GGX高光;右:天鹅绒高光


代码实战
  • 常见的Fabric算法有两个:Ashikhmin && Charlie 的算法

GGX
Ashikhmin:基于倒置高斯标题
“Charlie” sheen:基于正弦

布料渲染的两种BRDF:我使用了BSDF文件里现成Ashikhmin_VCharlie_D方法。

F * V * D = sheen * Ashikhmin_V * Charlie_D

half3 FabricSheenDirect(half NdotL, half NdotV, half NdotH, half3 sheenColor, half sheenRoughness) { half r = max(sheenRoughness, HALF_MIN_SQRT); half safeNdotL = max(NdotL, HALF_MIN); half safeNdotV = max(NdotV, HALF_MIN); half safeNdotH = max(NdotH, HALF_MIN); half D = D_Charlie(safeNdotH, r); // NDF:sin^invR,模拟微纤维散射 half Vis = V_Ashikhmin(safeNdotL, safeNdotV); // 轻量 Visibility term return D * Vis * sheenColor; }

  1. 法一:在原有光照模型基础上去叠加一个Sheen
color = UniversalFragmentPBR(inputData, surfaceData); #if defined(_FABRIC) { half3 sheenColor = _SheenColor.rgb * _SheenIntensity; color.rgb += ComputeFabricSheenContribution(inputData, sheenColor, _SheenRoughness); } #endif
  • 金属度粗糙度的pbr效果还在,但是只是在原有基础上去叠加了 还会有高光和明显的明暗交界线

  • 会破坏原有的能量守恒

  1. 法二:替换原BRDF项
#if defined(_FABRIC_REPLACE_BRDF) { half3 sheenColor = _SheenColor.rgb * _SheenIntensity; half3 fabricRGB = ComputeFabricBRDFLighting(surfaceData, inputData, sheenColor, _SheenRoughness); color = half4(fabricRGB, surfaceData.alpha); }
  • 边缘可能差不多,但是灰部有了更多的布料细节

  • 能量守恒

二、天鹅绒纹理表现

单纯调布料效果还不能调出天鹅绒的效果,需要靠纹理来加强表现

  1. 纤维感

  1. 随机感

虽然布料纤维大多倾向于垂直于表面排列,用手指拨布料,可以让纤维朝某个方向排列

几个尝试:

  1. 用Substance Designer绘制了一张

总的趋势是模拟了毛流的随机方向感,放大后也有单根纤维的纹理,前面的示例图用的就是这个法线

  1. 出于天鹅绒纤维表面的随机性,还试了一个看起来天鹅绒感很重的图

  1. 找素材时,突然发现以闪亮之名里面有丝绒裙子

红丝绒:

我认为这个纹理是雾面、绒面感最强的

http://www.jsqmd.com/news/1332221/

相关文章:

  • 5个步骤让LAV Filters成为你的终极媒体播放解决方案
  • 安心记加班 解锁会员版 手机记加班和算工时工资 工友神器
  • STM32 ADC高精度电压采集:从硬件设计到软件滤波的完整实践
  • React Native构建物流签收App:离线队列与图片压缩实战
  • 3分钟搞定!FigmaCN终极中文汉化指南:让英文设计工具秒变中文界面
  • 机器视觉与PLC:工业自动化两大核心技术对比与职业选择指南
  • 深入理解进程:从概念到实践,解决程序运行与资源管理难题
  • AI自动化工作流:Claude Code与DeepSeek结合快速生成学术PPT
  • 海光DCU大模型推理生产落地:从环境搭建到稳定运维的完整实战笔记
  • Vite中commonjsOptions.include配置详解与优化
  • Windows C盘空间管理实战:从原理到工具,彻底解决系统盘爆满问题
  • WebRTC通信核心:STUN与TURN服务原理、部署与实战调试指南
  • 树莓派SPI1接口配置MCP2515 CAN总线控制器完整指南
  • 隐私计算≠数据不出域?深度拆解AI训练中11种隐式信息泄露通道(含梯度反演攻击复现实验代码)
  • 2026昆山装饰装修行业解析:本地装企差异化优势与装修选择指南 - 国麟测评
  • Linux虚拟化平台全解析:从KVM到容器,10大方案选型与实战指南
  • MNBT梦奈宝塔V1.78:国产虚拟主机管理系统安全与性能优化
  • DLSS Swapper完全指南:3大核心功能解决游戏性能管理难题
  • IntelliJ IDEA Markdown插件深度配置指南:从安装到高效写作
  • 第10讲:上线与生产化——把 Agent 部署到真实环境
  • LangGraph会话记忆实战:从摘要到向量检索构建AI智能体记忆系统
  • DesignArena融资790万美元:用众包“品味“训练AI模型
  • 3分钟掌握Minecraft数据编辑:NBTExplorer免费图形化编辑器完整指南
  • 钉钉待办API迁移实战:从旧版接口升级到新版待办任务接口
  • AI时代职业转型:从裁员潮看技术人才的结构性调整与能力迁移
  • 2026年辽宁亮化灯具批发厂家挑选攻略:瑞美照明及行业优质企业盘点 - 资讯在线
  • iMac硬件升级实战:NVMe SSD替换融合硬盘与内存扩容指南
  • 第038章:ComfyUi进阶-第1阶段(任务1)-三种抠图工作流
  • 电气工程师必学Python:从C/C++到自动化测试与数据分析的跨越
  • 2026口碑好的光伏并网配电箱源头厂家怎么选?这份甄选指南帮你择优避坑 - geo交流