Giter Site home page Giter Site logo

thomasbty / falcor Goto Github PK

View Code? Open in Web Editor NEW

This project forked from nvidia/falcor

0.0 1.0 0.0 100.37 MB

Real-time rendering research framework

License: BSD 3-Clause "New" or "Revised" License

Batchfile 0.02% C++ 28.50% Makefile 0.02% C 12.48% HLSL 0.01% Objective-C 0.38% HTML 45.75% Pascal 0.76% POV-Ray SDL 0.02% Groff 0.01% C# 9.64% Shell 0.02% Awk 0.01% Visual Basic 2.04% CMake 0.12% CSS 0.09% JavaScript 0.03% GLSL 0.07% Cuda 0.05%

falcor's Introduction

Falcor

Falcor is an OpenGL-based rendering framework. Its features include:

  • Abstract many common graphics operations, such as shader compilation, model loading and scene rendering.
  • VR support using OpenVR.
  • Common rendering effects such as shadows and post-processing effects.

Prerequisites

  • Visual Studio 2013.
  • NVIDIA® Geforce™ 900 series or better GPU. The project uses extentions which are supported only by NVIDIA GPUs.

Optional Modules

To create CUDA applications you will need to install the CUDA Toolkit 7.5. To create VR applications, you will need the SDK which came with your headset (SteamVR for Vive, Oculus SDK, etc.).

Sample Class

This is the bootstrapper class of the application. Your class should inherit from it and override its protected methods which serve as the callback functions. A good place to start would be the ModelViewer sample.

Build Configurations

Falcor has two build configurations:

  • Debug - This configuration will create an OpenGL debug context. By default, file logging and message boxes are enabled, and there is a lot of runtime error checking.
  • Release - This configuration creates a regular, non-debug context. Logging and most runtime error checks are disabled. Use this configuration to measure performance.

Falcor Configuration

FalcorConfig.h contains some flags which control Falcor's behavior.

  • _LOG_ENABLED - Enable/disable log messages. By default, this is false for release build and true for debug builds.
  • _PROFILING_ENABLED - Enable/Disable the internal CPU/GPU profiler. By default, this is false.

Data Files

Data files include shader files, textures and models. By default, Falcor looks for data files in the current locations:

  • The working directory. In some cases this is not the same as the executable directory. For example, if you launch the application from Visual Studio, by default the working directory is the directory containing the project file.
  • The executable directory.

Falcor will also look for a directory called "Data/" under those directories.
To search for a data file, call findFileInDataDirectories().
To add a new data directory, call addDataDirectory().

Falcor will also look for an optional environment variable named FALCOR_MEDIA_FOLDERS. It is a semicolon-separated list of folders Falcor will look in when searching for media files. If you have a common 3D models repository, it's a good practice to set this environment variable to point to these locations.

Deployment

The best practice is to create a directory called "Data/" next to your project file and place all your data files there (shaders/models). If that directory exists, Falcor will copy it to the output directory, making the output directory self-contained (you can zip only the output directory and it should work). If not, you will have to copy the data files yourself.

falcor's People

Contributors

nbentynv avatar apnv avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.