發現他們文件都是舊的。。。。略渣阿
需要安裝vs2012 update4 vs2013update4 nvdia cg toolkits 3.1 以及 windows SDK 8.1
編譯執行第一個sample的時候PhyreClear_vpo_size, PhyreClear_fpo[]
這些都安裝正確之後還是有那個錯誤:
VS 2013 LINK2001 unresolved external symbol "symbol"
Code references something (such as a function, variable, or label) that the linker can't find in the libraries and object files.
LINK4221 This object file does not define any previously undefined public symbols, so it will not be used by any link operation that consumes this library
https://msdn.microsoft.com/en-us/library/f6xx1b1z.aspx
https://msdn.microsoft.com/en-us/library/604bzebd.aspx
(參考讀物--程式設計師的自我修養,link那裡)
再結合本案例,就是phyrecore裡面phyreclear.ps....等諸多,編成二進位制放在lib裡面的shader們由於LINK4221所示問題,沒有被鏈進lib裡
實際上,可以去.ps的屬性裡面看到command line 這裡所示的位置和bat
從位置那裡可以看到比如phyreclear.ps.o基本上是空的,沒有被正確生成,其實前面編譯的時候就有報錯 在output只是沒以error形式呈現
Cannot find registry key for Windows SDK
這句就是Command line 裡面DetermineD3DShaderCompiler.bat裡面的一個log
看了一個這個bat無非是想對不同平臺找到不同windows SDK 裡面的fxc.exe
裝好了windows SDK還是不好...
my solution:
set SHADER_COMPILER = "MY DIRECTORY/fxc.exe"
SOLVED.....