godotengine / godot

Godot Engine – Multi-platform 2D and 3D game engine
https://godotengine.org
MIT License
90.93k stars 21.15k forks source link

Integrate AMD Radeon Rays in GIProbe #21315

Closed sp82 closed 4 years ago

sp82 commented 6 years ago

Hi, Right now GIProbe use one and only one cpu core and no GPU power at all. I think AMD Radeon Rays can be a good solution to accelerate GI (and also AO) with GPUs and CPUs. It is a rays intersection acceleration library and it is also optimized for Realtime usage. The library is intentionally simple to use and vendor agnostic. The project is mature and used also in Radeon ProRender developed by AMD, last updates from AMD can be found here: https://www.youtube.com/watch?v=kZNznb-mJFE GPUOpen Article : https://gpuopen.com/gaming-product/radeon-rays/ Github: https://github.com/GPUOpen-LibrariesAndSDKs/RadeonRays_SDK WhitePaper: https://32ipi028l5q82yhj72224m8j-wpengine.netdna-ssl.com/wp-content/uploads/2016/08/169798-A_AMD_RadeonRays_Intro_FNL.pdf

Best Regards, Salvatore

CptPotato commented 6 years ago

Interesting stuff, thanks for bringing it up. I think this can be useful for quite a few things not only GI baking. And while I feel like there are a lot of other 3D / rendering related things that are more important right now, I'd love to see something like this implemented in the future.

OvermindDL1 commented 6 years ago

As a usage note, the latest steamaudio library uses the AMD Radeon Rays library as well to perform the audio occlusion testing and so forth so it has fairly major usage already.

DevMagicLord commented 6 years ago

Would this work with Nvidia 3D cards ? Or it is specific to AMD hardware ?

OvermindDL1 commented 6 years ago

Would this work with Nvidia 3D cards ? Or it is specific to AMD hardware ?

@DevMagicLord Unlike nVidia, AMD's gaming-oriented libraries actually work on everything.

reduz commented 6 years ago

It can be interesting, not for GIProbe (which uses voxels, so this is useless) but for lightmaps. Will see after 3.1 is out.

sp82 commented 6 years ago

http://www.luxrender.net/wiki/LuxRays is also a good contender, using some AI filter I think you can use this raytracers also in realtime for lighting.

EDIT: another contender in town based on vulkan compute: https://github.com/world8th/vRt

SiebrenW commented 5 years ago

It seems LuxRays' domain is expired. They may have migrated to https://luxcorerender.org/ since that's not expired and this would be the source link: https://github.com/LuxCoreRender/LuxCore . I see it's Apache licensed and has some Blender integration. It's OpenCL though, while Radeon Rays 2.0 can be used in Vulkan, which has better support (OpenCL on Nvidia is stuck on 1.1 and I believe it's even worse with Mesa3D on Linux) My preference would be with Radeon Rays.

OvermindDL1 commented 5 years ago

Mesa has OpenCL 1.1 full support with some support for 1.2, which is quite a bit better than nVidias drivers. Vulkan is the better modern method to use now overall.

clayjohn commented 4 years ago

Note: GIProbes now use mostly GPU. Also note that Radeon Rays is no longer open source.

Feature and improvement proposals for the Godot Engine are now being discussed and reviewed in a dedicated Godot Improvement Proposals (GIP) (godotengine/godot-proposals) issue tracker. The GIP tracker has a detailed issue template designed so that proposals include all the relevant information to start a productive discussion and help the community assess the validity of the proposal for the engine.

The main (godotengine/godot) tracker is now solely dedicated to bug reports and Pull Requests, enabling contributors to have a better focus on bug fixing work. Therefore, we are now closing all older feature proposals on the main issue tracker.

If you are interested in this feature proposal, please open a new proposal on the GIP tracker following the given issue template (after checking that it doesn't exist already). Be sure to reference this closed issue if it includes any relevant discussion (which you are also encouraged to summarize in the new proposal). Thanks in advance!