發表文章

目前顯示的是 2018的文章

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()   使context準備完善 進入render loop =&g

使用 python3 -pillow module build a image converter

圖片
網路上找的3D model texture大多為.PNG 為了讓程式方便載入(懶得改寫 mtl loader😅),目前可以讀入的為 .PPM 使用python的pillow模組與image套件,讀入.PNG,再以.PPM儲存到資料夾中 已安裝: python (目前版本為3.7) 使用cmd就可以達成 1.系統管理員開啟cmd,安裝 pillow module 輸入: pip install pillow 2.以cmd 開啟python 輸入: python 3.import 需要使用的工具,在python中 輸入: from os import listdir from os.path import isfile,isdir,join from glob import glob from os.path import splitext from PIL import Image 4. 根據路徑位置讀取所有的png檔案名稱,再用字串切掉副檔名並加上".ppm" 輸入: pnglist = glob("filepath/*.[pP][nN][gG]") for png in pnglist:     im = Image.open(png)     ppm = splitext(png)[0]+".ppm"       im.save(ppm)      DONE! fully suppoerted format: JPG、PNG、PPM、TIFF..... 關於PIL的詳細支援格式  here

使用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\sutil_sdk.lib .\lib\optix.51.lib .\lib\imgui.lib .\lib\glfw3dll.lib opengl32.lib  儲存設定 設

Optix開張辣

圖片
以後可能會放點optix的東西,地方的圖學實驗生一起來自救