Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

As a lover of ray/path tracing I'm obligated to point out: rasterisation gets its efficiency by amortising the cost of per-triangle setup over many pixels. This more or less forces you to do fixed-resolution rendering; it's very efficient at this, which is why even today with hardware RT, rasterisation remains the fastest and most power-efficient way to do visibility processing (under certain conditions). However, this efficiency starts to drop off as soon as you want to do things like stencil reflections, and especially shadow maps, to say nothing of global illumination.

While there are some recent'ish extensions to do variable-rate shading in rasterisation[0], this isn't variable-rate visibility determination (well, you can do stochastic rasterisation[1], but it's not implemented in hardware), and with ray tracing you can do as fine-grained distribution of rays as you like.

TL;DR for foveated rendering, ray tracing is the efficiency king, not rasterisation. But don't worry, ray tracing will eventually replace all rasterisation anyway :)

[0] https://developer.nvidia.com/vrworks/graphics/variableratesh...

[1] https://research.nvidia.com/sites/default/files/pubs/2010-06...



I think you could do foveated rendering efficiently with rasterization if you "simply" render twice at 2 different resolutions. A low resolution render over the entire FOV, and a higher resolution render in the fovea region. You would have overlap but overall it should be less pixels rendered.


I believe the standard way is to downgrade the sampling density outside the area you're looking, see https://docs.vulkan.org/samples/latest/samples/extensions/fr... . Optimally you could attach multiple buffers with different resolutions covering different parts of clipspace, saving vram bandwidth. Sadly this is not supported currently to my knowledge, so you have to write to a single giant buffer with lower sample resolution outside the detail area, and then just downsample it for the coarse layer.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: