Falcor | Real-Time Rendering Framework | Graphics library

 by   NVIDIAGameWorks C++ Version: 6.0-preview2 License: Non-SPDX

kandi X-RAY | Falcor Summary

kandi X-RAY | Falcor Summary

Falcor is a C++ library typically used in User Interface, Graphics, WebGL applications. Falcor has no bugs, it has no vulnerabilities and it has medium support. However Falcor has a Non-SPDX License. You can download it from GitHub.

Falcor is a real-time rendering framework supporting DirectX 12. It aims to improve productivity of research and prototype projects.
Support
    Quality
      Security
        License
          Reuse

            kandi-support Support

              Falcor has a medium active ecosystem.
              It has 2042 star(s) with 395 fork(s). There are 126 watchers for this library.
              There were 1 major release(s) in the last 12 months.
              There are 15 open issues and 216 have been closed. On average issues are closed in 935 days. There are 5 open pull requests and 0 closed requests.
              It has a neutral sentiment in the developer community.
              The latest version of Falcor is 6.0-preview2

            kandi-Quality Quality

              Falcor has 0 bugs and 0 code smells.

            kandi-Security Security

              Falcor has no vulnerabilities reported, and its dependent libraries have no vulnerabilities reported.
              Falcor code analysis shows 0 unresolved vulnerabilities.
              There are 0 security hotspots that need review.

            kandi-License License

              Falcor has a Non-SPDX License.
              Non-SPDX licenses can be open source with a non SPDX compliant license, or non open source licenses, and you need to review them closely before use.

            kandi-Reuse Reuse

              Falcor releases are available to install and integrate.
              Installation instructions, examples and code snippets are available.

            Top functions reviewed by kandi - BETA

            kandi's functional review helps you automatically verify the functionalities of the libraries and avoid rework.
            Currently covering the most popular Java, JavaScript and Python libraries. See a Sample of Falcor
            Get all kandi verified functions for this library.

            Falcor Key Features

            No Key Features are available at this moment for Falcor.

            Falcor Examples and Code Snippets

            No Code Snippets are available at this moment for Falcor.

            Community Discussions

            Trending Discussions on Falcor

            QUESTION

            DXR Descriptor Heap management for raytracing
            Asked 2021-Apr-21 at 05:12

            After watching videos and reading the documentation on DXR and DX12, I'm still not sure how to manage resources for DX12 raytracing (DXR).

            There is quite a difference between rasterizing and raytracing in terms of resource management, the main difference being that rasterizing has a lot of temporal resources that can be bound on the fly, and raytracing being in need of all resources being ready to go at the time of casting rays. The reason is obvious, a ray can hit anything in the whole scene, so we need to have every shader, every texture, every heap ready and filled with data before we cast a single ray.

            So far so good.

            My first test was adding all resources to a single heap - based on some DXR tutorials. The problem with this approach arises with objects having the same shaders but different textures. I defined 1 shader root signature for my single hit group, which I had to prepare before raytracing. But when creating a root signature, we have to exactly tell which position in the heap corresponds to the SRV where the texture is located. Since there are many textures with different positions in the heap, I would need to create 1 root signature per object with different textures. This of course is not preferred, since based on documentation and common sense, we should keep the root signature amount as small as possible. Therefore, I discarded this test.

            My second approach was creating a descriptor heap per object, which contained all local descriptors for this particular object (Textures, Constants etc..). The global resources = TLAS (Top Level Acceleration Structure), and the output and camera constant buffer were kept global in a separate heap. In this approach, I think I misunderstood the documentation by thinking I can add multiple heaps to a root signature. As I'm writing this post, I could not find a way of adding 2 separate heaps to a single root signature. If this is possible, I would love to know how, so any help is appreciated.

            Here the code I'm usign for my root signature (using dx12 helpers):

            ...

            ANSWER

            Answered 2021-Jan-20 at 10:23

            Dynamic indexing of HLSL 5.1 might be the solution to this issue.

            https://docs.microsoft.com/en-us/windows/win32/direct3d12/dynamic-indexing-using-hlsl-5-1

            • With dynamic indexing, we can create one heap containing all materials and use an index per object that will be used in the shader to take the correct material at run time
            • Therefore, we do not need multiple heaps of the same type, since it's not possible anyway. Only 1 heap per heap type is allowed at the same time

            Source https://stackoverflow.com/questions/65794461

            Community Discussions, Code Snippets contain sources that include Stack Exchange Network

            Vulnerabilities

            No vulnerabilities reported

            Install Falcor

            After cloning the repository, head over to https://developer.nvidia.com/nvapi and download the latest version of NVAPI (this build is tested against version R440). Extract the content of the zip file into Source/Externals/.packman/ and rename R440-developer to nvapi. Finally, set _ENABLE_NVAPI to true in Source/Falcor/Core/FalcorConfig.h.

            Support

            If you want to use CUDA C/C++ code as part of a Falcor project, then refer to the README located in the Source/Samples/CudaInterop/ for instructions on how to set up your environment to use CUDA with Falcor. If you want to execute Slang-based shader code through CUDA using CUDAProgram, then you will need to copy or link the root directory of the CUDA SDK under Source/Externals/.packman/, as a directory named CUDA. Then, set _ENABLE_CUDA to true in Source/Falcor/Core/FalcorConfig.h.
            Find more information at:

            Find, review, and download reusable Libraries, Code Snippets, Cloud APIs from over 650 million Knowledge Items

            Find more libraries
            CLONE
          • HTTPS

            https://github.com/NVIDIAGameWorks/Falcor.git

          • CLI

            gh repo clone NVIDIAGameWorks/Falcor

          • sshUrl

            git@github.com:NVIDIAGameWorks/Falcor.git

          • Stay Updated

            Subscribe to our newsletter for trending solutions and developer bootcamps

            Agree to Sign up and Terms & Conditions

            Share this Page

            share link

            Explore Related Topics

            Consider Popular Graphics Libraries

            three.js

            by mrdoob

            pixijs

            by pixijs

            pixi.js

            by pixijs

            tfjs

            by tensorflow

            filament

            by google

            Try Top Libraries by NVIDIAGameWorks

            kaolin

            by NVIDIAGameWorksPython

            PhysX

            by NVIDIAGameWorksC++

            PhysX-3.4

            by NVIDIAGameWorksC++

            kaolin-wisp

            by NVIDIAGameWorksPython

            DxrTutorials

            by NVIDIAGameWorksC++