0. 准备

首先,我想要一个相对简单的程序来学习。因此,我选择了 DX11官方范例(包含在DirectX11官方SDK中)里的【Tutorial 07: Texture Mapping and Constant 】
在这里插入图片描述
需要安装工程,编译出exe,然后将着色器文件(Tutorial07.fx)和贴图文件(seafloor.dds)放到exe的同级目录。随后应该可以打开exe:
在这里插入图片描述

1. 截一帧

设置exe的路径:
在这里插入图片描述
然后运行。
在这里插入图片描述
F12截下一帧

2. 查看着色器代码

首先,选择到想要观察的那一次DrawCall(当前简单的程序里只有一个)
在这里插入图片描述
然后,在Pipeline State的分页下,可以选择顶点着色器或者像素着色器等,这里选择像素着色器。
在这里插入图片描述
然后,点击View,就可以查看到代码了:
在这里插入图片描述

3*. 修改着色器代码并立即查看效果

点击Edit而不是View可以进行着色器的编辑
在这里插入图片描述
此时修改代码后点击Refresh可以看到修改后的效果
在这里插入图片描述
例如:
在这里插入图片描述

着色器代码也许可读性较差

如果有些shader文件是由抽象层级更高的工具生成的,则这里观察到的代码可读性会较差。

例如,这是UE4里随意一次DrawCall的像素着色器的代码:
在这里插入图片描述
可以看到 Constant Buffers(或者叫UniformBuffer)的名字已经全部变为序号了。

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐