标题是个病句.简而言之就是换了3070发现还是不支持Gpu Lightmass.昨天下午开始看,刚才找到问题了.一开始就怀疑DX运行时版本和显卡驱动,排除了这两项.之后对比微软给的DirectX Graphics例子,发现它查询出来D3D12_RAYTRACING_TIER是支持的,而UE的查询出来的就是不支持的.我尝试着对比代码看,使一些不一致的方法一致,还有结构体一致.改了还是不行.后来我想了一下,可能是从错误的dll里加载到了同名方法,当初看<<Windows核心编程>>的时候看过dll这块.接着看调用用到的方法名,发现它的dll是renderdoc.dll的,而不是dxgi.cll的.问题就找到了~花了将近一天时间.接下来看看关键方法给改成从dxgi.dll里直接查询.
这个问题一方面是经验,一方面是我真的知道dll这回事,所以基础知识还是决定了一切.
辐射度算法暂停了,转去啃<<PBRT>>了,系统学习一遍PBRT,就像当初学习<<算法导论>>一样,加油!