What API should I choose when impl a real time ray tracer?

I want to write a real-time interactive GPU lightmapper for my renderer, like https://www.gdcvault.com/play/1024801/.

I found that there are many related tutorials here. Some use DirectX 12(Unreal is using it), others use Vulkan or OpenCL(Unity is using it), etc.

I know Direct X 12 works for Windows only. and Vulkan for all platforms, and OpenCL for various GPUs.

If I want to implement my idea on Windows 10 with NVIDIA RTX cards, which API should I use? What advantages will it have? For example, can all three APIs utilize hardware RT core?

Both can use the hardware cores, and this is highly subjective, but luckily we already know the answer is always: use Vulkan :sunglasses: