Posts

Showing posts with the label RTX

Forward, Deferred and Raytracing rendering in openFrameworks and web

Image
Currently, there are three basic approaches for rendering computer graphics scenes: forward rendering, deferred rendering, raytracing. 1. Forward rendering It's that OpenGL does, you create vertices, then make faces, and rasterize them, all passing via shaders. The rendering process is straightworward and fast, but rendering shadows, making degree-of-field effect and drawing clouds is hard here. Most of openFrameworks examples use forward rendering. 2. Deferred rendering It's the same as forward rendering, but additionally some extra data is rendered for computing shadows. The lighting pass is performed after the scene geometry is drawn. See detailed explanation here: https://learnopengl.com/Advanced-Lighting/Deferred-Shading Shadows, degree-of-field effect and some kind of reflections are possible with deferred rendering. Unreal Engine 4 and Unity currently (2019) are based on deferred rendering. openFrameworks: https://github.com/perevalovds...

Raytracing APIs

Raytracing is a most powerful technique for making photorealistic 3D images. It's based on literal tracing light's rays path, and requires a lot of computtional resources. See theory of raytracing in a sample chapter of the book Real-Time Rendering, Fourth Edition . Currently NVidia RTX videocards are dedicated to work with raytracing in realtime, and so realtime raytracing becomes the main tool for 3D graphics. There are two main directions for raytracing API: using NVidia RTX cards and Intel CPU. Withoud such special API, raytracing (and reymarching and raycasting) can be implemented directly, for example, in fragment shader, for example, see such shaders on Shadertoy site. NVidia RTX  NVidia RTX videocards allows to work with NVidia's OptiX or Microsoft DirectX: https://developer.nvidia.com/rtx Raytracing with NVidia OptiX raytracing engine: https://developer.nvidia.com/optix https://developer.nvidia.com/rtx/raytracing See tutorial: https:/...