2017-08-30 84 views
-1

我已經寫了一個C++的pathtracer,現在我想實時顯示渲染過程,所以我想知道最簡單/最好的方法是什麼。C++ - 顯示不斷更新的圖像

基本上,渲染的圖像在每次迭代後都會更新,所以我只需要檢索它,在單獨的窗口中顯示它並更新它。

我正在考慮使用DirectX,看來我可能也可以用OpenCV來做,但我只是尋找一種簡單的方法,不需要添加大量的新代碼。

我在Windows上使用C++。

+0

我沒有使用OpenGL和OpenCL類似的東西。 – zindarod

+0

它是2D還是3D路徑示蹤劑? – Asesh

回答

1

如果我理解正確,你的路徑跟蹤器可能會爲每個發射的光線輸出一個顏色?如果是這樣,並且您正在考慮在單獨的窗口中顯示渲染圖像,我建議使用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); 
}