發表文章

目前顯示的是有「optix」標籤的文章

20190409

圖片
1. 將點光源改為面光源,發現雜訊少了很多,但indirection lighting消失了: 發現另一個問題,在草的地方有畫錯,光會穿過牆,應該是tracing的問題 原因都是:在CUDA沒把初始化prd.done設為false只經過一次的tracing就停止了,某些部分則持續進行 石柱上可以看到 布的indirection lighting denoising 部分: 因為training時的lighting color是有點黃色,再輸入新的noise input後,output仍為黃色,僅調整了亮度,與修補空缺,雖然可以接受光源移動,光的顏色就沒有辦法調整了。 denoising 的切痕:因為輸入 denoising model的大小為128*128 pixel,會在後處理中切成4塊,處理完 denoise 成後再合併 1spp denoising result 1spp denoising result super sampling: 128*128 2SPP 重複取樣2*2->4*4  放大兩倍的pixel result 直接填入 直接填入的 result 因為黑色部分較多,亮度也減少了 目前能調整的部分為: 1. model的修改

Optix Ray Tracing 基本概念流程

圖片
Optix Ray Tracing 基本概念與流程 Optix 3D幾何物件階層與用途 基本設定設置好 createContext()      建立context,並把該配置的東西配好 => 建立Context => 設定Context的 Ray Type數量 、 Entry Point計算入口點數量 、 stack size大小 => 設定會成為Context的cuda中的一些成員資料 => 建立Output buffer,用以存放ray tracing結果 => 設定Ray Gerneration光線生成程式(也就是描述你的camera要如何生成ray來追蹤) => 設定Exception例外程式 => 設定Miss Program(當光線沒打到任何3D內容物件時會執行miss程式) createGeometry()    建立與設定3D內容與綁定render方法 => 設置好場景中的3D內容物件 (load model或用程式寫好描述好他) => 對場景中每個3D物件客製化一個material材質,因為 光線追蹤程式(rtTrace()) 是綁定material一起的 ,所以要一個個對material做設定 => 對個別3D物件material設定 closeset hit program (常用於上色的光線追蹤) 、 any hit program (常用於陰影追蹤) 等program (*closest hit這些tracing program都寫在cuda之中) => 透過context->createGeometryInstance()將3D物件與他的material綁定在一起,並丟到 GeometryInstance 的vector容器中 => 將每個GeometryInstance集結成一個Group送至 GeometryGroup 物件中(setChild()) => 將這個裝滿整個3D場景的Group送到cuda之中做tracing。 設定相機基本位置角度等資料 設定光源位置 顏色等相關資料,並傳入context context->validate()  ...

使用Visual Studio建置optix專案

圖片
Visual Studio 2015 建置OptiX專案 1. 安裝開發環境: Visual Studio IDE NVIDIA OptiX NVIDIA CUDA Toolkit (目前使用的版本為 VS2015、OptiX 5.1.0、CUDA Toolkit 9.2) 其中會使用到 optix_advanced_samples 中的檔案,請先使用camke裝好    開啟 VS 2015 ,新增專案 新增空白專案,輸入專案名稱,選擇建立專案位置   選擇要建置 main.cpp 的篩選條件,並對此資料夾按 ” 右鍵 ” ,在此篩選條件為 ” 原始程式檔 ” 建立 main.cpp 為了方便管理 CUDA 檔案,在專案內新增一個篩選條件 命名篩選條件  新增cuda檔案  命名.cu檔 設定組建  依照勾選CUDA 9.2  開始設定專案屬性  將平台設為x64  編輯其他include目錄 C:\ProgramData\NVIDIA Corporation\OptiX SDK 5.1.0\include C:\ProgramData\NVIDIA Corporation\OptiX SDK 5.1.0\include\optixu C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.2\include  填入 NOMINMAX  儲存設定 開啟專案資料夾  新增資料夾  新資料夾命名為 ptx  再新增一個資料夾,命名為lib  從建好的optix_advanced_samples檔中複製需要使用的library  在剛剛新增的lib資料夾中 貼上  再從安裝optix的位置複製optix.51.lib  在lib資料夾中貼上 再次設定屬性 設定ptx檔輸出位置,並產生ptx檔  不產生debug information在ptx檔中  設定library .\lib\su...