我是一名學生,正在研究我的最終項目。 該項目是關於圖像處理。 我發現一個代碼從一個對象中刪除背景,這正是我需要的 ,但代碼是HLSL中的效果文件(* fx)。 我從來沒有使用它,並不知道如何使用它 我尋找初學者的培訓,什麼都沒發現。
有沒有人可以幫助我? 我需要什麼環境以及如何運行效果文件? 可以將它添加到C#項目嗎?使用HLSL效果文件
謝謝
我是一名學生,正在研究我的最終項目。 該項目是關於圖像處理。 我發現一個代碼從一個對象中刪除背景,這正是我需要的 ,但代碼是HLSL中的效果文件(* fx)。 我從來沒有使用它,並不知道如何使用它 我尋找初學者的培訓,什麼都沒發現。
有沒有人可以幫助我? 我需要什麼環境以及如何運行效果文件? 可以將它添加到C#項目嗎?使用HLSL效果文件
謝謝
你在爲什麼開發?我看到你正在使用C#,這是否意味着你正在爲Windows Phone創建?或...?
除了[創建鏡頭應用程序 - 諾基亞] [1]可能會幫助你,因爲這是我爲在我的應用程序中創建的着色器導入而完成的。另外,你如何訪問UI前端的着色器?你能粘貼一些代碼嗎?
添加SharpDX參考而不是使用默認的DirectX interoperatiblity雖然單獨的C++ DLL,我們將使用 SharpDX庫實現從C#代碼繪製調用。此庫是底層DirectX函數的一個 包裝,它允許它們在任何.NET語言中都可以使用 ,並且當前支持Windows桌面,Windows Metro和Windows Phone 8.首先,通過前往下載部分 並獲取包您的選擇:「僅限二進制」包含 庫,「完整軟件包」包含一些關於如何使用SharpDX執行 常見任務的示例代碼。
在項目文件夾中創建一個名爲Lib的新目錄。打開 它並創建兩個名爲x86和ARM的子文件夾。解壓縮下載的 軟件包,然後從Bin文件夾中將 Standard-wp8-x86的內容複製到x86文件夾,將Standard-wp8-ARM複製到ARM。在 你的項目中,右鍵單擊引用,然後選擇添加引用..., 並在新窗口中單擊Browse並導航到lib \ x86文件夾 選擇以下組件:
SharpDX.dll SharpDX.DXGI .dll SharpDX.Direct3D11.dll SharpDX.Toolkit.dll SharpDX.Toolkit.Game.dll ShaprDX.Toolkit.Graphics.dll因爲程序集不是AnyCPU,並且 當前我們只有x86引用,所以我們必須編輯我們的 項目手動,所以編譯器引用正確的。關閉 Visual Studio和您最喜愛的文本編輯器 打開您的csproj文件,並查找名爲參考的項目,像這樣的:
庫\ 86 \ SharpDX.dll 您需要的路徑86部分更改爲 $(平臺),因此結束這樣的:
庫\ $(平臺)\ SharpDX.dll我們 所寫的建設項目時獲取與當前 平臺名稱替換MSBuild的屬性,因此使用了正確版本的 組件。重複此步驟以獲得所有對 SharpDX的引用。完成後,保存更改並重新打開Visual Studio中的解決方案 。
Note.png注意:如果Visual Studio找不到SharpDX引用,請將 轉至Build> Configuration Manager ...菜單,然後將Active 解決方案平臺更改爲x86。請記得在將 部署到Windows Phone 8設備時再次將其更改爲ARM。
編譯着色器SharpDX.Toolkit完全支持FX效果文件, ,儘管您只能在運行時在桌面平臺上編譯它們。要將 編譯爲二進制格式,我們將使用tkfxc.exe 工具,您可以在Bin \ Win8Desktop-net40文件夾中找到 下載的SharpDX二進制文件。我們的應用程序然後將能夠 加載這個二進制blob並將其用於繪圖。要編譯它,請確定該文件與您的tkfxc.exe二進制文件位於同一目錄(或者 已將其正確添加到PATH中),然後在命令提示符窗口中執行以下 命令:tkfxc.exe/FoInverted。 tkfxo Inverted.fx這將以二進制形式編譯着色器,並將 輸出到文件Inverted.tkfxo(默認情況下,它是output.tkfxo)。如果 發生了某種不良情況,您將獲得一個紅色文本輸出,因此請檢查 出錯並修復了着色器,直到它編譯完成。您可以將 二進制代碼輸出到包含字節 對象數組的C#源代碼文件。爲此,請指定參數/FcInverted.cs而不是 /FoInverted.tkfxo。
您知道C#/ WP8是否允許設置多個不同的寄存器嗎?運行效果?例如,使用具有滑動比例(強度)的着色器。 –
HLSL是高級着色語言 - 它就像編碼GPU。我認爲如果你在XNA中編寫代碼,HLSL文件可能是你可以包含在構建過程中的東西,比如圖像內容文件。您可能會在Stack Exchange的遊戲開發部分找到更好的答案(並儘可能詳細地介紹您的項目類型!) – Katana314