发布时间:2026/8/5 9:17:08
Shader学习25:织物 之 天鹅绒 一、关于布料表现布料表面不是光滑的是无数根细小纤维竖立着传统的微表面brdf更适用于致密表面但对于松散结构的布料 缺少了一些真实布料的特征因为表面的纤维会吸收、散射入射光。边缘光照效果》Sheen 环织物在掠射角时出现的那一圈柔和的光泽环。1正面的光大量被吸收和漫散射掉汇聚到你眼睛里的能量反而很少2侧面的由于当光线与观察者的视线方向一致时镜面反射光会主要集中在物体的边缘。织物表面有细小的纤维这些纤维会试图保持垂直状态所以这时纤维的整根侧面都朝向你接收光的面积一下子变大了很多倍。同时纤维之间不再互相遮挡侧面大量纤维侧面同时把光散射进你眼睛。当光线方向与表面的法线方向成90度时光线会发生反(后)向散射从而形成漂亮的边缘照明效果。如果光线来自物体的后方纤维则会使光线向前散射进而产生类似的边缘照明效果。Sheen环 D项算法简介图1反高斯Inverted Gaussian将标准高斯分布(正态)函数进行反转图2绿线标准PBR的Microfacet GGX分布在0角度下法线、灯光和视线同向获得最大的高光强度然后随着角度的增大做正态分布红线用来做天鹅绒的分布函数正相反最高峰在90°图3左GGX高光右天鹅绒高光代码实战常见的Fabric算法有两个Ashikhmin Charlie 的算法GGXAshikhmin基于倒置高斯标题“Charlie” sheen基于正弦布料渲染的两种BRDF我使用了BSDF文件里现成的Ashikhmin_V和Charlie_D方法。F * V * D sheen * Ashikhmin_V * Charlie_Dhalf3 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); // NDFsin^invR模拟微纤维散射 half Vis V_Ashikhmin(safeNdotL, safeNdotV); // 轻量 Visibility term return D * Vis * sheenColor; }法一在原有光照模型基础上去叠加一个Sheencolor UniversalFragmentPBR(inputData, surfaceData); #if defined(_FABRIC) { half3 sheenColor _SheenColor.rgb * _SheenIntensity; color.rgb ComputeFabricSheenContribution(inputData, sheenColor, _SheenRoughness); } #endif金属度粗糙度的pbr效果还在但是只是在原有基础上去叠加了 还会有高光和明显的明暗交界线会破坏原有的能量守恒法二替换原BRDF项#if defined(_FABRIC_REPLACE_BRDF) { half3 sheenColor _SheenColor.rgb * _SheenIntensity; half3 fabricRGB ComputeFabricBRDFLighting(surfaceData, inputData, sheenColor, _SheenRoughness); color half4(fabricRGB, surfaceData.alpha); }边缘可能差不多但是灰部有了更多的布料细节能量守恒二、天鹅绒纹理表现单纯调布料效果还不能调出天鹅绒的效果需要靠纹理来加强表现纤维感随机感虽然布料纤维大多倾向于垂直于表面排列用手指拨布料可以让纤维朝某个方向排列。几个尝试用Substance Designer绘制了一张总的趋势是模拟了毛流的随机方向感放大后也有单根纤维的纹理前面的示例图用的就是这个法线出于天鹅绒纤维表面的随机性还试了一个看起来天鹅绒感很重的图找素材时突然发现以闪亮之名里面有丝绒裙子红丝绒我认为这个纹理是雾面、绒面感最强的

相关新闻

2026/8/5 9:17:08

钉钉待办API迁移实战:从旧版接口升级到新版待办任务接口

1. 项目缘起:从“旧”到“新”的待办接口迁移之痛最近在重构一个内部任务协同系统,核心功能之一就是自动将系统内的任务同步到钉钉待办,方便团队成员在钉钉里统一查看和处理。这个功能原本跑得好好的,用的是钉钉开放平台提供的“创…

2026/8/5 10:27:12

C++ explicit与implicit:掌握类型转换安全,避免隐式转换陷阱

1. 项目概述:为什么我们需要关心“显式”与“隐式”? 在C的世界里,写代码就像和编译器进行一场精密的对话。你说得越清晰,编译器理解得越准确,运行时给你埋的“惊喜”就越少。而 explicit 和 implicit 这对关键词&…

2026/8/5 10:27:12

UniversalUnityDemosaics:Unity游戏马赛克移除终极解决方案

UniversalUnityDemosaics:Unity游戏马赛克移除终极解决方案 【免费下载链接】UniversalUnityDemosaics A collection of universal demosaic BepInEx plugins for games made in Unity3D engine 项目地址: https://gitcode.com/gh_mirrors/un/UniversalUnityDemos…

2026/8/5 10:27:12

Agent项目总停在Demo?我从上线踩坑中总结的求职护城河

聊《岗位变化这么快,AI大模型就业真正该补的是什么?》之前,先说一句实在的:别急着背概念,先看它在真实项目里到底解决什么问题。摘要去年接了个内部项目,用LangGraph搭了个智能客服Agent。Demo阶段跑得很顺…

2026/8/5 10:22:12

Python构建内容播放数据追踪与排名预测系统实战

在实际内容创作和数据分析工作中,我们经常需要处理类似“增速虽减缓,第182集仍有机会冲击历史周播第9位”这样的描述性标题。这背后通常涉及对一系列数据(如剧集播放量、用户增长、排名变化)的追踪、分析和预测。对于开发者、数据…

2026/8/5 3:13:11

如何用免费工具突破游戏窗口限制:SRWE完整使用指南

如何用免费工具突破游戏窗口限制:SRWE完整使用指南 【免费下载链接】SRWE Simple Runtime Window Editor 项目地址: https://gitcode.com/gh_mirrors/sr/SRWE 你是否遇到过这样的困扰?想为心爱的游戏截图,却发现游戏不支持自定义分辨率…

2026/8/5 0:01:34

三升四,比成绩下滑更可怕的,是孩子开始「认命」

分水岭上,最难的不是翻过去,是孩子不想翻了。八月初了。这两个字,对三升四的家长来说,比任何闹钟都让人清醒。最近的家长群里,气氛明显不一样了。一升二的在关心兴趣班,二升三的在讨论要不要提前学英语。而…

2026/8/5 0:01:34

Java缓存框架:JetCache

TOC 一、简介 JetCache 是一个 Java 缓存抽象框架,为不同的缓存解决方案提供了统一的使用方式。 它提供的注解比 Spring Cache 更加强大。 JetCache 的注解支持原生 TTL、两级缓存以及在分布式环境中的自动刷新功能,同时你也可以通过代码直接操作 Cach…

2026/8/5 0:01:34

AD 铺铜设置十字连接,过孔全连接,新版AD的简单设置

需求:通孔焊盘 十字花;过孔 Via 实心直连;贴片焊盘按需设置 AD 测试版本AD24 很多工程师踩坑:全部统一十字,导致接地过孔阻抗高、大电流发热! 一、快捷键打开规则 PCB 界面按下:D R 展开…

2026/8/3 22:40:58

实测才敢推 AI论文网站 2026最新测评与推荐

2026年真正好用的AI论文网站,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。一、综…

2026/8/3 13:26:41

2026必备!AI论文网站测评:最新推荐与深度对比

2026年真正好用的AI论文网站,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。 一、…

2026/8/3 16:43:13

摆脱论文困扰!盘点2026年全网爆红的的AI论文写作工具

一天写完毕业论文在2026年已不再是天方夜谭。2026年最炸裂、实测能大幅提速的AI论文写作工具,覆盖选题构思、文献整理、内容生成、格式排版等核心场景,真正帮你高效搞定论文难题。 一、全流程王者:一站式搞定论文全链路(一天定稿首…