Minecraft(我的世界)中文论坛

 找回密码
 注册(register)

!header_login!

只需一步,立刻登录

楼主: 晴路卡

[教程] 【21w10a+】核心着色器浅析

    [复制链接]
JayeChen 当前离线
积分
89
帖子
主题
精华
贡献
爱心
钻石
人气
下界之星
最后登录
1970-1-1
注册时间
2021-5-7
查看详细资料
发表于 2021-5-14 19:42:01 | 显示全部楼层
之前遇到过OpenGL错误1282,只能重肝光影,找不到问题
回复

使用道具 举报

4399-那年 当前离线
积分
57
帖子
主题
精华
贡献
爱心
钻石
人气
下界之星
最后登录
1970-1-1
注册时间
2020-11-21
查看详细资料
发表于 2021-5-15 11:57:39 | 显示全部楼层
MCBBS有你更精彩

评分

参与人数 1人气 -1 金粒 -10 收起 理由
SHEEP_REALMS -1 -10 请仔细阅读版规,本版严禁灌水!.

查看全部评分

回复

使用道具 举报

qq1662451280 当前离线
积分
256
帖子
主题
精华
贡献
爱心
钻石
人气
下界之星
最后登录
1970-1-1
注册时间
2015-7-29
查看详细资料
发表于 2021-5-15 13:20:08 | 显示全部楼层
学会了,很实用

评分

参与人数 1人气 -1 金粒 -10 收起 理由
SHEEP_REALMS -1 -10 请仔细阅读版规,本版严禁灌水!.

查看全部评分

回复

使用道具 举报

TonyHan 当前离线
积分
64
帖子
主题
精华
贡献
爱心
钻石
人气
下界之星
最后登录
1970-1-1
注册时间
2021-5-12
查看详细资料
发表于 2021-5-15 15:48:55 | 显示全部楼层
爱了爱了

评分

参与人数 1人气 -1 金粒 -10 收起 理由
SHEEP_REALMS -1 -10 请仔细阅读版规,本版严禁灌水!.

查看全部评分

回复

使用道具 举报

GeForceLegend 当前离线
积分
4759
帖子
主题
精华
贡献
爱心
钻石
人气
下界之星
最后登录
1970-1-1
注册时间
2016-7-7
查看详细资料
发表于 2021-5-21 08:32:38 | 显示全部楼层
兄啊那个 PathTracing 1.17 可以把我名单去了,我就是个社区代码贡献者,提了一点点性能优化方面的 pull request(

(然后我最近提的一个修复了几个 bug 的 pull request 几天了他还没看,草)


评分

参与人数 1人气 +2 收起 理由
晴路卡 + 2 k

查看全部评分

回复

使用道具 举报

GeForceLegend 当前离线
积分
4759
帖子
主题
精华
贡献
爱心
钻石
人气
下界之星
最后登录
1970-1-1
注册时间
2016-7-7
查看详细资料
发表于 2021-5-21 10:56:02 | 显示全部楼层
本帖最后由 GeForceLegend 于 2021-5-21 11:01 编辑

顺便说一句那个原版路径追踪的原理:先设定一个存储体素图的分辨率(可以手动在文件内改,默认是1024x705,窗口化的736P分辨率),然后获取顶点的位置,根据gl_VertexID位移之后,判断出这个方块所在的世界空间位置,然后按照一个像素一个方块的对应关系将顶点位置拉至体素图对应像素的角落(所以在老版本内关闭 极佳!图像设置后可以看到屏幕上是白色底色然后一堆红色像素),同时有一小块特殊空间存储 gbuffer 处理时独有的一些信息,例如 gbuffer 内的 ModelView 矩阵和 Projection 矩阵,以及 chunkOffset 等。所有的信息都会在 极佳!图像设置对应的后处理程序中读取,并进行路径追踪。

因为如上原因,这个 shader 要求玩家的游戏窗口分辨率至少有 1024x705 ,不然体素图会读取错误。不过更高的分辨率一般不会导致什么bug,因为每次读取体素图时的位置都被设置在了这个像素的正中间

方块材质的获取来自 assets/minecraft/textures/effect/atlas.png ,左上角是原版生成的 atlas 图,其余三个角则存储了其他的信息(例如发光强度、金属性、粗糙度等)。由于每个方块的信息都存储在一个像素里面,只能存储一组材质UV位置,每个方块都只能使用一张贴图。

上面的内容和 PTGI 的路径追踪实现方案几乎如出一辙,区别在于 PTGI 使用 shadowcolor 存储体素数据,而这个原版 shader 用屏幕 buffer 存储;PTGI使用 Optifine 的功能获取游戏生成的动态 atlas 贴图,而这个 shader 使用存储在 textures/effect 的自己生成的静态atlas贴图

另外从这个shader似乎能看出在 textures/effect 里面存储贴图之后,可以在后处理里面获取到。例如这个 shader 的该目录下存放了 atlas.png 和 steve.png ,然后 shaders/post/transparency.json 里面存在以下数据:
  1. {
  2.     "name": "AtlasSampler",
  3.     "id": "atlas",
  4.     "width": 1,
  5.     "height": 1,
  6. "bilinear": false
  7. },
  8. {
  9.     "name": "SteveSampler",
  10.     "id": "steve",
  11.     "width": 1,
  12.     "height": 1,
  13.     "bilinear": false
  14. }
复制代码

没事的话可以来我的Fork看看,虽然说没啥好康的

评分

参与人数 4人气 +9 金粒 +82 收起 理由
ChapterII + 2 + 20 pog
chyx + 3 MCBBS有你更精彩~
1041159637 + 2 + 12 神乎其技!6的飞起!
晴路卡 + 2 + 50 神乎其技!6的飞起!

查看全部评分

回复

使用道具 举报

Elanwar 当前离线
积分
63
帖子
主题
精华
贡献
爱心
钻石
人气
下界之星
最后登录
1970-1-1
注册时间
2021-4-25
查看详细资料
发表于 2021-5-31 02:07:37 | 显示全部楼层
我真是能耐了,进这个帖子走了一趟
我乖乖滚出去了

评分

参与人数 1人气 -1 金粒 -10 收起 理由
SHEEP_REALMS -1 -10 请仔细阅读版规,本版严禁灌水!.

查看全部评分

回复

使用道具 举报

sofG 当前离线
积分
2
帖子
主题
精华
贡献
爱心
钻石
人气
下界之星
最后登录
1970-1-1
注册时间
2021-5-30
查看详细资料
发表于 2021-5-31 06:12:02 | 显示全部楼层
顶顶顶!!!

评分

参与人数 1人气 -1 金粒 -10 收起 理由
SHEEP_REALMS -1 -10 请仔细阅读版规,本版严禁灌水!.

查看全部评分

回复

使用道具 举报

1780145020 当前离线
积分
2
帖子
主题
精华
贡献
爱心
钻石
人气
下界之星
最后登录
1970-1-1
注册时间
2021-6-2
查看详细资料
头像被屏蔽
发表于 2021-6-2 14:55:55 | 显示全部楼层
第一次知道

评分

参与人数 1金粒 -10 收起 理由
SHEEP_REALMS -10 请仔细阅读版规,本版严禁灌水!.

查看全部评分

回复

使用道具 举报

1257008856 当前离线
积分
52
帖子
主题
精华
贡献
爱心
钻石
人气
下界之星
最后登录
1970-1-1
注册时间
2014-6-18
查看详细资料
头像被屏蔽
发表于 2021-6-2 19:13:41 | 显示全部楼层
很高兴来到MCBBS论坛

评分

参与人数 1人气 -1 金粒 -10 收起 理由
SHEEP_REALMS -1 -10 请仔细阅读版规,本版严禁灌水!.

查看全部评分

回复

使用道具 举报

消えるの墨瓷 当前离线
积分
39
帖子
主题
精华
贡献
爱心
钻石
人气
下界之星
最后登录
1970-1-1
注册时间
2020-12-27
查看详细资料
发表于 2021-6-3 06:45:59 | 显示全部楼层
第一次听mc里有着色器
回复

使用道具 举报

dyjdgq1 当前离线
积分
-2
帖子
主题
精华
贡献
爱心
钻石
人气
下界之星
最后登录
1970-1-1
注册时间
2020-5-29
查看详细资料
头像被屏蔽
发表于 2021-6-7 11:23:33 | 显示全部楼层
学~学废了

评分

参与人数 1人气 -1 金粒 -10 收起 理由
SHEEP_REALMS -1 -10 请仔细阅读版规,本版严禁灌水!.

查看全部评分

回复

使用道具 举报

991012 当前离线
积分
157
帖子
主题
精华
贡献
爱心
钻石
人气
下界之星
最后登录
1970-1-1
注册时间
2014-4-5
查看详细资料
发表于 2021-6-24 10:16:24 | 显示全部楼层
几乎一个小白,看不懂啊啊啊啊啊

评分

参与人数 1人气 -1 金粒 -10 收起 理由
SHEEP_REALMS -1 -10 请仔细阅读版规,本版严禁灌水!.

查看全部评分

回复

使用道具 举报

林沐风 当前离线
积分
27
帖子
主题
精华
贡献
爱心
钻石
人气
下界之星
最后登录
1970-1-1
注册时间
2020-1-1
查看详细资料
发表于 2021-6-25 14:16:41 | 显示全部楼层
6666666666666666666

评分

参与人数 1人气 -1 金粒 -10 收起 理由
SHEEP_REALMS -1 -10 请仔细阅读版规,本版严禁灌水!.

查看全部评分

回复

使用道具 举报

ai_niliao 当前离线
积分
52
帖子
主题
精华
贡献
爱心
钻石
人气
下界之星
最后登录
1970-1-1
注册时间
2014-11-23
查看详细资料
发表于 2021-6-29 14:37:55 | 显示全部楼层
GeForceLegend 发表于 2021-5-21 10:56
顺便说一句那个原版路径追踪的原理:先设定一个存储体素图的分辨率(可以手动在文件内改,默认是1024x705, ...

asfsdafsdagsdgdfgdfgdfgdfg

评分

参与人数 1人气 -1 金粒 -10 收起 理由
SHEEP_REALMS -1 -10 请仔细阅读版规,本版严禁灌水!.

查看全部评分

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册(register)

本版积分规则

Archiver|小黑屋|Mcbbs.net ( 京ICP备15023768号-1 ) | 京公网安备 11010502037624号 | 手机版

GMT+8, 2021-9-22 11:33 , Processed in 0.066668 second(s), Total 34, Slave 28 queries, Release: Build.2021.09.13 2028, Gzip On, Redis On.

"Minecraft"以及"我的世界"为Mojang Synergies AB的商标 本站与Mojang以及微软公司没有从属关系

© 2010-2020 我的世界中文论坛 版权所有 本站原创图文内容版权属于原创作者,未经许可不得转载

快速回复 返回顶部 返回列表