Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
GamebabyRockSun_QQ
GRSD3D12Sample
提交
05fe7479
G
GRSD3D12Sample
项目概览
GamebabyRockSun_QQ
/
GRSD3D12Sample
大约 1 年 前同步成功
通知
2
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
1
Wiki
分析
仓库
DevOps
项目成员
Pages
G
GRSD3D12Sample
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
1
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
05fe7479
编写于
3月 20, 2023
作者:
GamebabyRockSun_QQ
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
添加了示例25中最终 IBL 合成光照Shader 中的注释
上级
c117e87c
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
14 addition
and
5 deletion
+14
-5
25-IBL-MultiInstance-Sphere/25-IBL-MultiInstance-Sphere.cpp
25-IBL-MultiInstance-Sphere/25-IBL-MultiInstance-Sphere.cpp
+2
-2
25-IBL-MultiInstance-Sphere/Shader/GRS_PBR_IBL_PS_Without_Texture.hlsl
...nstance-Sphere/Shader/GRS_PBR_IBL_PS_Without_Texture.hlsl
+12
-3
未找到文件。
25-IBL-MultiInstance-Sphere/25-IBL-MultiInstance-Sphere.cpp
浏览文件 @
05fe7479
...
...
@@ -4386,9 +4386,9 @@ int APIENTRY _tWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPWSTR lpCm
float
fOffsetX
=
2.0
f
;
float
fOffsetY
=
fOffsetX
;
float
fWidth
=
24
0.
f
;
float
fWidth
=
18
0.
f
;
float
fHeight
=
fWidth
;
size_t
szCol
=
8
;
size_t
szCol
=
10
;
for
(
size_t
i
=
0
;
i
<
g_stQuadData
.
m_nInstanceCount
;
i
++
)
{
...
...
25-IBL-MultiInstance-Sphere/Shader/GRS_PBR_IBL_PS_Without_Texture.hlsl
浏览文件 @
05fe7479
...
...
@@ -73,18 +73,27 @@ float4 PSMain(ST_GRS_HLSL_PBR_PS_INPUT stPSInput): SV_TARGET
float3
kS
=
F
;
float3
kD
=
1
.
0
-
kS
;
kD
*=
1
.
0
-
stPSInput
.
m_fMetallic
;
// 采样漫反射辐照度贴图
float3
irradiance
=
g_texDiffuseCubemap
.
Sample
(
g_sapLinear
,
N
).
rgb
;
// 与物体表面点P的颜色值相乘
float3
diffuse
=
irradiance
*
stPSInput
.
m_v3Albedo
;
// IBL镜面反射环境光部分
const
float
MAX_REFLECTION_LOD
=
4
.
0
;
const
float
MAX_REFLECTION_LOD
=
5
.
0
;
// 与镜面反射预积分贴图的 Max Map Level 保持一致
// 采样镜面反射预积分辐照度贴图
float3
prefilteredColor
=
g_texSpecularCubemap
.
SampleLevel
(
g_sapLinear
,
R
,
stPSInput
.
m_fRoughness
*
MAX_REFLECTION_LOD
).
rgb
;
// 采样 BRDF 预积分贴图
float2
brdf
=
g_texLut
.
Sample
(
g_sapLinear
,
float2
(
max
(
dot
(
N
,
V
),
0
.
0
),
stPSInput
.
m_fRoughness
)).
rg
;
// 合成计算镜面反射光辐射度,注意使用的是 F0 参数,与公式保持一致
float3
specular
=
prefilteredColor
*
(
F0
*
brdf
.
x
+
brdf
.
y
);
// IBL 光照合成
// IBL 光照合成,注意用 kD 参数再衰减下漫反射成分,与最开初的渲染方程中保持一致
// m_fA0 是环境遮挡因子,目前总是设置其为 1
float3
ambient
=
(
kD
*
diffuse
+
specular
)
*
stPSInput
.
m_fAO
;
// 直接光照 + IBL光照
float3
color
=
ambient
+
Lo
;
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录