渲染基础概念 unity shader 材质相关学习

Posted 长虹剑

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了渲染基础概念 unity shader 材质相关学习相关的知识,希望对你有一定的参考价值。

文章目录

学了unity shader 明白一件事情,之前学习的 opengl 渲染管线,以及写过的 z-buffer 纯纯让自己陷入了渲染引擎的局部。 还不如看看 shader 语法,这样能够了解渲染的关键部分,以及通用对象,很多之前看不懂了,不知道为啥那么做的,现在一下子就懂了。 就是不学之前以为学的要很多,学了之后知道才知道框架基本是固定的,真正要学的是里面的创意,以及如何写才能高效。

渲染基础知识

FB0 帧缓存对象, 其实最长用的用途就是 后处理, 先渲染到这里,然后做后处理,最后作为整个贴图渲染到屏幕

HRDP 着色器基础介绍

[https://baijiahao.baidu.com/s?id=1713339702599327160](Metallic vs Specular 两套工作流程)

SSS Subsurface scattering

里面有 mask map

R: metallic
G: Ambient occulation 
B: Detail Mask
A: smoothness

SSSS Screen-Space-Subsurface-Scattering

似乎需要一个 diffusion profile , 来表达扩散程度

bgfx

基础知识

uniform 统一数据类型

sc 转 unity 的使用

可以参考下这个博客 https://www.jianshu.com/p/4eb04f76f9a8

nm='fs_sky_color_banding_fix'
#nm=vs_sky
$shaderc -f ./$nm.sc -o ./hlsl/$nm.hlsl --depends -i ../../src --varyingdef varying.def.sc --platform windows -p vs_5_0 --type $nm:0:1 --preprocess

批处理

shaderc=bin/shaderc.exe
ddir=. 

for file in $ddir/*.sc
do

nm=`basename $file .sc`
echo $nm
if [[ ! "$nm" =~ ^[vf]s ]]; then
    continue
fi

$shaderc  -f $ddir/$nm.sc -o hlsl/$nm.hlsl --depends -i $ddir --varyingdef $ddir/varying.def.sc --platform windows -p vs_5_0 --type $nm:0:1  --preprocess

vim hlsl/$nm.hlsl -s clearcode.vim

done

Unity Shader 入门精要

https://www.bilibili.com/video/BV1sh41147zb

debug 方法: window-> analysis->frame debugger 用于查看渲染过程进行debug

基本的变量和基本 shader 的编写
a2v: application to vertice

标准光照模型
拆成四部分,分别用模型计算然后组合, ambient, emissive, diffuse, specular

_ST 纹理的缩放和平移属性
float4 TANGENT: 顶点的切线方向 , 4 是因为决定副切线的方向。

代码要考虑复用结构,这样可以减少计算之类的。

凹凸贴图那里,要知道得再物体坐标系下定义法向量,也叫切空间下的normal
https://juejin.cn/post/7056031676727558157

分割模型其实也是为了渲染顺序中好排序,或者凸面体。

alpha 测试

透明度混合需要关闭深度写入,

透明度混合, 两个 pass ,第一个先获得深度信息。

光照部分:
处理光照可以按照逐像素,逐顶点以及SH 处理。 渲染的时候按照重要程度排序,然后选择。
比如 unity 会这样设置 【我猜测这就是实时渲染引擎的重要之处】

延迟渲染:古老的,多一个缓冲,但是不支持真正的抗锯齿

game object 中有个 render cube

以上是关于渲染基础概念 unity shader 材质相关学习的主要内容,如果未能解决你的问题,请参考以下文章

渲染基础概念 unity shader 材质相关学习

渲染基础概念 unity shader 材质相关学习

图形学基础知识

Unity Shader入门精要学习笔记 - 第3章 Unity Shader 基础

《Unity Shader 与 计算机图形学》第二章

unity URP内置shader lit解析