hlslcc

https://cdn2.unrealengine.com/Resources/files/UE4_OpenGL4_GDC2014-514746542.pdf

ue的跨平台编译器

hlsl cross compiler 

https://github.com/aras-p/glsl-optimizer

https://www.mesa3d.org/

从这俩过来的

把它改成解析shader model 5 HLSL的而不是原本的glsl

这个跨平台编译器 让你只写一个shader就可以离线编译成各种不同平台啦

unity里面有好几个compiler

有hlslcc 还有glsl-optimizer

还有hlsl2glsl

看了半天代码看的云里雾里的 原来是缺少这篇paper

hlslcc中间是抽象语法树 转成对应平台shader source

之后 compiler再编成byte code

http://aras-p.info/blog/2010/09/29/glsl-optimizer/

有关metal2 features 整合到unity里面的一个解决方案

因为unity走的是dx编过来再转成metal的

那么对于dx里没有的 feature 怎么能让metal再生成出来

可以在编dx的时候 把那些metal2的feature编成占位的替代变量或者宏

失去真正metal2的意义 但是存在于dx转完的code里

然后从dx到metal的时候 识别这些 占位变量替换成metal2的features

比如 rasterize order group / image layout

4.26用DXC了 里面有用hlslcc的代码 没开启

原文地址:https://www.cnblogs.com/minggoddess/p/11698250.html