2023-06-29 11:55:02 +08:00

57 lines
2.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
title: 皮皮虾材质方案
date: 2022-12-06 16:06:06
excerpt:
tags:
rating: ⭐
---
## 效果分析
![](https://cdn.jsdelivr.net/gh/blueroseslol/ImageBag@latest/ImageBag/Images/%E5%BE%AE%E4%BF%A1%E5%9B%BE%E7%89%87_20221206161132.png)
![](https://cdn.jsdelivr.net/gh/blueroseslol/ImageBag@latest/ImageBag/Images/%E5%BE%AE%E4%BF%A1%E5%9B%BE%E7%89%87_20221206161138.png)
![](https://cdn.jsdelivr.net/gh/blueroseslol/ImageBag@latest/ImageBag/Images/%E5%BE%AE%E4%BF%A1%E5%9B%BE%E7%89%87_20221206161147.png)
![](https://cdn.jsdelivr.net/gh/blueroseslol/ImageBag@latest/ImageBag/Images/%E5%BE%AE%E4%BF%A1%E5%9B%BE%E7%89%87_20221206161156.png)
![](https://cdn.jsdelivr.net/gh/blueroseslol/ImageBag@latest/ImageBag/Images/%E5%BE%AE%E4%BF%A1%E5%9B%BE%E7%89%87_20221206161203.png)
由观察可得皮皮虾由外表面的透明甲壳材质与内部的肉材质组成。结构如下图:
![900](https://cdn.jsdelivr.net/gh/blueroseslol/ImageBag@latest/ImageBag/Images/%E5%BE%AE%E4%BF%A1%E5%9B%BE%E7%89%87_20221206162332.png)
解决方案:
- 外层甲壳材质:
- 透明度:以最薄处作为基础的透明度,叠加上 BumpOffset/POM 的HeightTexture的采样结果深度乘以参数计算出的透明度。
- Roughness很光滑光滑 0~0.2
- Metallic非金属我们不需要反射
- 内部肉材质:
- 贴图使用 BumpOffset/POM 进行UV偏移。
- Roughness粗糙 1。
- Metallic非金属
- 中间层
- 中间发光亮片:通过建模实现,内部放上一些小亮片,并且添加独立的自发光材质控制。
- 中间雾气效果:通过建模实现,里面放上几个条带,添加类似雾气粒子的材质。
## 多层材质的距离感
可以使用2种方案主要都是通过偏移UV的方式来实现视差效果
1. BumpOffset
2. POM
POM的会有较大的性能损耗但与BumpOffset相比在视角较小时依然有着不错的效果。部分效果不佳的地方mask掉防止穿帮。所以BumpOffset可以作为其下位代替。
![](https://cdn.jsdelivr.net/gh/blueroseslol/ImageBag@latest/ImageBag/Images/20221206162642.png)
如果这2个方法不行就只能考虑使用2个模型也就是一个外壳一个内部肉不推荐
## 具体方案
### 两层模型
- 外壳使用DefaultLit、Translucent
- 内部使用Subsurface
缺点:内部模型需要蒙皮。
### MultiDraw
MultiDraw在5.1支持不透明材质渲染透明效果了。所以可以是只用一个模型+HeightTexture配合MultiDraw二次绘制第二个材质效果。
缺点:有穿帮的危险。
### BumpOffset/POM
使用DefaultLit或者车漆材质尝试 外壳/内部肉(视差),参考龙虾人的眼睛
1. 实现DefaultLit版本
2. 查看车漆材质并且实现
缺点5.1版本前无法做到材质物理上的正确。