-1
我已經寫了一個C++的pathtracer,現在我想實時顯示渲染過程,所以我想知道最簡單/最好的方法是什麼。C++ - 顯示不斷更新的圖像
基本上,渲染的圖像在每次迭代後都會更新,所以我只需要檢索它,在單獨的窗口中顯示它並更新它。
我正在考慮使用DirectX,看來我可能也可以用OpenCV來做,但我只是尋找一種簡單的方法,不需要添加大量的新代碼。
我在Windows上使用C++。
我已經寫了一個C++的pathtracer,現在我想實時顯示渲染過程,所以我想知道最簡單/最好的方法是什麼。C++ - 顯示不斷更新的圖像
基本上,渲染的圖像在每次迭代後都會更新,所以我只需要檢索它,在單獨的窗口中顯示它並更新它。
我正在考慮使用DirectX,看來我可能也可以用OpenCV來做,但我只是尋找一種簡單的方法,不需要添加大量的新代碼。
我在Windows上使用C++。
如果我理解正確,你的路徑跟蹤器可能會爲每個發射的光線輸出一個顏色?如果是這樣,並且您正在考慮在單獨的窗口中顯示渲染圖像,我建議使用SDL2。有關於使用C++和SDL的實時圖形的教程很多,編號爲Lazy Foo' Productions。從官方SDL documentation採取
摘錄(不克魯夫特需要初始化Windows)關於SDL_Surface,你可能會被使用:
/* This is meant to show how to edit a surface's pixels on the CPU, but
normally you should use SDL_FillRect() to wipe a surface's contents. */
void WipeSurface(SDL_Surface *surface)
{
/* This is fast for surfaces that don't require locking. */
/* Once locked, surface->pixels is safe to access. */
SDL_LockSurface(surface);
/* This assumes that color value zero is black. Use
SDL_MapRGBA() for more robust surface color mapping! */
/* height times pitch is the size of the surface's whole buffer. */
SDL_memset(surface->pixels, 0, surface->h * surface->pitch);
SDL_UnlockSurface(surface);
}
我沒有使用OpenGL和OpenCL類似的東西。 – zindarod
它是2D還是3D路徑示蹤劑? – Asesh